commit fc3a66dc836765dcfb31a0cff6e93e9502aebe7b Author: rose_cat707 Date: Tue Jun 16 12:10:02 2026 +0000 feat: Prism HTTP/SOCKS5 代理网关及管理台 Go 控制面(SQLite + REST API)嵌入 Mihomo 数据面,Vue 3 多语言 Web 管理台。 含订阅/节点/规则/出站/监控/日志、OpenAPI、API Key、Gitea Actions CI(runs-on: ubuntu-latest) 与开源文档;镜像发布至 git.rc707blog.top Container Registry。 Co-authored-by: Cursor diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..db29fba --- /dev/null +++ b/.dockerignore @@ -0,0 +1,10 @@ +.git/ +dist/ +data/ +web/node_modules/ +web/dist/ +**/.DS_Store +*.md +!README.md +.cursor/ +agent-transcripts/ diff --git a/.gitea/act-runner/.env.example b/.gitea/act-runner/.env.example new file mode 100644 index 0000000..d7f68ca --- /dev/null +++ b/.gitea/act-runner/.env.example @@ -0,0 +1,3 @@ +GITEA_INSTANCE_URL=https://git.rc707blog.top +GITEA_RUNNER_REGISTRATION_TOKEN=从仓库_Settings_Actions_Runners_复制 +GITEA_RUNNER_NAME=prism-ci-runner diff --git a/.gitea/act-runner/README.md b/.gitea/act-runner/README.md new file mode 100644 index 0000000..bc8863d --- /dev/null +++ b/.gitea/act-runner/README.md @@ -0,0 +1,23 @@ +# act_runner 参考部署(可选) + +工作流 `.gitea/workflows/ci.yml` 使用 **`runs-on: ubuntu-latest`**。 + +Runners 页「**标签**」列应含 `ubuntu-latest`(与「名称」列无关)。 + +## 标签与 job 镜像 + +默认标签通常映射到带 Node.js 的镜像,例如: + +```yaml +ubuntu-latest:docker://node:16-bullseye +``` + +若 Checkout 报 `Cannot find: node in PATH`,说明 job 镜像无 Node,应改为: + +```yaml +ubuntu-latest:docker://catthehacker/ubuntu:act-22.04 +``` + +## Docker 构建 + +`docker` job 需要 runner 挂载宿主机 `/var/run/docker.sock`。 diff --git a/.gitea/act-runner/config.yaml b/.gitea/act-runner/config.yaml new file mode 100644 index 0000000..9349211 --- /dev/null +++ b/.gitea/act-runner/config.yaml @@ -0,0 +1,26 @@ +# act_runner 配置(可选参考部署) +# 工作流 runs-on: ubuntu-latest + +log: + level: info + +runner: + file: .runner + capacity: 2 + timeout: 3h + insecure: false + fetch_timeout: 5s + fetch_interval: 2s + labels: + - "ubuntu-latest:docker://catthehacker/ubuntu:act-22.04" + - "ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04" + +cache: + enabled: false + +container: + network: bridge + privileged: false + options: -v /var/run/docker.sock:/var/run/docker.sock + valid_volumes: + - /var/run/docker.sock diff --git a/.gitea/act-runner/docker-compose.yml b/.gitea/act-runner/docker-compose.yml new file mode 100644 index 0000000..cd192f1 --- /dev/null +++ b/.gitea/act-runner/docker-compose.yml @@ -0,0 +1,22 @@ +# Gitea act_runner — 可选参考部署(标签 default,与工作流一致) +# +# 若已在 Gitea 注册个人/仓库 runner 且标签为 default,无需使用本目录。 + +services: + act-runner: + image: docker.io/gitea/act_runner:0.2.12 + container_name: prism-act-runner + restart: unless-stopped + environment: + CONFIG_FILE: /config.yaml + GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL:-https://git.rc707blog.top} + GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN} + GITEA_RUNNER_NAME: ${GITEA_RUNNER_NAME:-prism-ci-runner} + volumes: + - ./config.yaml:/config.yaml:ro + - act-runner-data:/data + - /var/run/docker.sock:/var/run/docker.sock + working_dir: /data + +volumes: + act-runner-data: diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml new file mode 100644 index 0000000..b52898b --- /dev/null +++ b/.gitea/workflows/ci.yml @@ -0,0 +1,88 @@ +# Prism CI:单元测试 + 多架构镜像发布到 Gitea Container Registry +# +# 前置条件: +# 1. 在线 act_runner(runs-on: ubuntu-latest,与 Runners 页「标签」列一致) +# 2. 仓库 Secret:REGISTRY_TOKEN(write:package 权限的 PAT) +# +# 镜像命名:{REGISTRY}/{owner}/prism:{tag} +# 默认 REGISTRY=git.rc707blog.top(Gitea 实例域名,Container Registry 与代码仓库同域) + +name: CI + +on: + push: + branches: [main, master] + tags: ['v*'] + pull_request: + +env: + REGISTRY: git.rc707blog.top + IMAGE_NAME: prism + +jobs: + test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version-file: go.mod + cache: true + + - name: Run tests + run: go test ./... + + docker: + runs-on: ubuntu-latest + needs: test + if: gitea.event_name == 'push' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ gitea.actor }} + password: ${{ secrets.REGISTRY_TOKEN }} + + - name: Resolve image tags + id: meta + run: | + image="${REGISTRY}/${GITEA_REPOSITORY_OWNER}/${IMAGE_NAME}" + tags="${image}:sha-${GITEA_SHA:0:7}" + case "${GITEA_REF}" in + refs/heads/main|refs/heads/master) + tags="${tags},${image}:latest" + ;; + refs/tags/v*) + tag="${GITEA_REF#refs/tags/}" + tags="${tags},${image}:${tag}" + ;; + esac + echo "tags=${tags}" >> "${GITHUB_OUTPUT}" + env: + REGISTRY: ${{ env.REGISTRY }} + IMAGE_NAME: ${{ env.IMAGE_NAME }} + GITEA_SHA: ${{ gitea.sha }} + GITEA_REF: ${{ gitea.ref }} + GITEA_REPOSITORY_OWNER: ${{ gitea.repository_owner }} + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: ${{ steps.meta.outputs.tags }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..25db0ed --- /dev/null +++ b/.gitignore @@ -0,0 +1,45 @@ +# ---> Go +# If you prefer the allow list template instead of the deny list, see community template: +# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore +# +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +# vendor/ + +# Go workspace file +go.work +go.work.sum + +# env file +.env + +# data +data/ +dist/ +vendor/ + +# node +web/node_modules/ +web/dist/ +# gitignore template for Vue.js projects +# +# Recommended template: Node.gitignore + +# TODO: where does this rule come from? +docs/_book + +# TODO: where does this rule come from? +test/ + diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..18d1b1d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,96 @@ +# 贡献指南 + +感谢关注 Prism!本仓库托管于 [git.rc707blog.top](https://git.rc707blog.top/rose_cat707/Prism)。 + +## 开发环境 + +### 依赖 + +- Go 1.25+(见 `go.mod`) +- Node.js 20+(仅前端开发/构建) + +国内网络可使用仓库内已配置的镜像: + +- Go:`go.env` → `GOPROXY=https://goproxy.cn,direct` +- npm:`web/.npmrc` → `registry.npmmirror.com` + +海外用户可将 `GOPROXY` 改为 `https://proxy.golang.org,direct`,npm 使用默认 registry 即可。 + +### 启动 + +```bash +# 终端 1:后端 +make run + +# 终端 2:前端(Vite 代理 /api → :8080) +make dev-web +``` + +浏览器访问 http://localhost:5173 ,默认密码 `admin`。 + +### 测试与构建 + +```bash +make test # 运行 Go 单元测试 +make build # 构建含前端的单二进制 dist/prism +make docker-build # 本地 Docker 镜像 +``` + +## 提交规范 + +- 一个 PR 聚焦一个主题,避免混合无关重构 +- 涉及 API 变更时同步更新 `internal/api/openapi/spec.yaml` +- 涉及 UI 变更请参考 `UI-DESIGN-SYSTEM.md` +- 确保 `go test ./...` 通过 + +## CI / 镜像发布 + +仓库使用 **Gitea Actions**(`.gitea/workflows/ci.yml`): + +| 触发 | 行为 | +|------|------| +| Pull Request | 仅运行 `go test ./...` | +| 推送到 `main` / `master` | 测试 + 构建并推送 `latest` 与 `sha-xxxxxxx` 镜像 | +| 推送 tag `v*` | 测试 + 额外推送版本 tag 镜像 | + +镜像发布到 Gitea Container Registry: + +``` +git.rc707blog.top/{owner}/prism:{tag} +``` + +### 维护者:配置 CI Secret + +在仓库 **Settings → Secrets → Actions** 添加: + +| Secret | 说明 | +|--------|------| +| `REGISTRY_TOKEN` | 具有 `write:package` 权限的 Personal Access Token | + +> **注意:** Secret 名称不能以 `GITEA_` 或 `GITHUB_` 开头(Gitea 保留前缀),因此使用 `REGISTRY_TOKEN` 而非 `GITEA_TOKEN`。 + +> Gitea Actions 的 job token 暂不支持直接推送软件包,需使用 PAT。见 [Gitea 文档](https://docs.gitea.com/usage/actions/comparison#package-repository-authorization)。 + +### Runner 配置 + +CI 使用 **`runs-on: ubuntu-latest`**(须与 Runners 页「**标签**」列一致)。 + +1. **Settings → Actions → Runners** 确认 runner **在线**,标签含 `ubuntu-latest` +2. 标签映射的 job 镜像须含 **Node.js**(否则 `actions/checkout` 会报 `node not in PATH`) +3. 构建镜像 job 须挂载 `/var/run/docker.sock` + +## 目录结构 + +``` +cmd/prism/ 进程入口 +internal/api/ HTTP 层、OpenAPI、嵌入静态资源 +internal/store/ SQLite 与迁移 +internal/service/ 业务编排 +internal/configbuilder/ Mihomo YAML 合成 +web/ Vue 3 管理台 +.gitea/workflows/ CI 工作流 +``` + +## 许可 + +提交代码即表示你同意在 [MIT License](LICENSE) 下授权你的贡献。嵌入的 Mihomo 内核遵循其自身许可,见 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)。 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a9ff1d1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,66 @@ +# Prism 代理网关(Go 控制面 + 嵌入 Mihomo + Vue 管理台) +# +# 构建: +# docker build -t prism:latest . +# +# 运行: +# docker run -d --name prism \ +# -p 8080:8080 -p 7890:7890 -p 7891:7891 \ +# -v prism-data:/app/data \ +# prism:latest +# +# 多架构构建并推送: +# ./scripts/docker-build-push-multiarch.sh + +# syntax=docker/dockerfile:1 + +# 基础镜像使用 docker.1ms.run 公开镜像加速 +FROM --platform=$BUILDPLATFORM docker.1ms.run/library/node:20-alpine AS web-builder + +WORKDIR /src/web +COPY web/package.json web/package-lock.json web/.npmrc ./ +RUN npm ci +COPY web/ ./ +RUN npm run build + +FROM --platform=$BUILDPLATFORM docker.1ms.run/library/golang:1.25-alpine AS go-builder + +ARG TARGETARCH + +WORKDIR /src +COPY go.mod go.sum go.env ./ +RUN --mount=type=cache,target=/go/pkg/mod \ + go mod download + +COPY cmd/ ./cmd/ +COPY internal/ ./internal/ + +RUN rm -rf internal/api/static/* && mkdir -p internal/api/static +COPY --from=web-builder /src/web/dist/ ./internal/api/static/ + +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + CGO_ENABLED=0 GOOS=linux GOARCH="$TARGETARCH" \ + go build -ldflags="-w -s" -o /prism ./cmd/prism + +FROM docker.1ms.run/library/alpine:3.20 + +RUN apk add --no-cache ca-certificates tzdata \ + && addgroup -S prism \ + && adduser -S prism -G prism + +WORKDIR /app + +COPY --from=go-builder /prism /usr/local/bin/prism + +RUN mkdir -p /app/data/geo \ + && chown -R prism:prism /app + +USER prism + +VOLUME ["/app/data"] + +EXPOSE 8080 7890 7891 + +ENTRYPOINT ["/usr/local/bin/prism"] +CMD ["-data", "/app/data"] diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..05c4140 --- /dev/null +++ b/LICENSE @@ -0,0 +1,34 @@ +MIT License + +Copyright (c) 2026 Prism Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +--- + +## Embedded components + +This project statically links [Mihomo](https://github.com/MetaCubeX/mihomo) +(github.com/metacubex/mihomo) as the proxy data plane. Mihomo is dual-licensed +under **GPL-3.0 OR MIT** (recipient's choice). See the Mihomo repository and +[THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) for details. + +Prism control-plane code (`cmd/`, `internal/`, `web/`) is MIT-licensed as above. +When you distribute Prism binaries or container images, you must comply with +the license terms of Mihomo and all bundled dependencies. diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..0c59372 --- /dev/null +++ b/Makefile @@ -0,0 +1,33 @@ +.PHONY: dev dev-web build build-web run test clean + +dev: + @echo "Run backend and frontend in separate terminals:" + @echo " make run" + @echo " make dev-web" + +dev-web: + cd web && npm run dev + +build-web: + cd web && npm run build + rm -rf internal/api/static/* + cp -r web/dist/* internal/api/static/ + +build: build-web + go build -o dist/prism ./cmd/prism + +docker-build: + docker build -t prism:latest . + +docker-push: + ./scripts/docker-build-push-multiarch.sh + +run: + go run ./cmd/prism + +test: + go test ./... + +clean: + rm -rf dist web/dist internal/api/static/* + @echo 'Prism' > internal/api/static/index.html diff --git a/README.md b/README.md new file mode 100644 index 0000000..a2075b7 --- /dev/null +++ b/README.md @@ -0,0 +1,295 @@ +# Prism + +HTTP / SOCKS5 代理网关,带 Web 管理台。控制面自研(Go + SQLite),数据面嵌入 [Mihomo](https://github.com/MetaCubeX/mihomo)。 + +**源码仓库:** [git.rc707blog.top/rose_cat707/Prism](https://git.rc707blog.top/rose_cat707/Prism) + +管理台支持**简体中文、繁体中文、英文**三种界面语言,可在「系统设置 → 显示语言」中随时切换。 + +## 功能概览 + +| 模块 | 说明 | +|------|------| +| 订阅管理 | Clash YAML、节点链接、自动识别;定时拉取与热重载 | +| 代理节点 | 订阅/手动节点、国家标签、延迟测速、导入导出 | +| 出站管理 | 默认出站、策略组切换、国家 url-test 池 | +| 路由规则 | 手动高优先级规则、合成预览、命中测试、导入导出 | +| 监控大盘 | 实时速率、域名/节点流量、连接趋势 | +| 日志 | 请求日志、运行日志、审计日志(分页,单页最多 500 条) | +| 系统设置 | 端口、认证、Geo 数据、API Key、界面语言 | +| OpenAPI | `/api/docs` 交互文档,`/api/v1/openapi.json` | + +## 架构 + +``` +客户端 → Mihomo 入站 (HTTP/SOCKS5) → 规则引擎 → 出站节点 + ↑ + Prism 控制面 (配置合成 / REST API / Vue UI) + ↓ + SQLite + 内存缓存 +``` + +## 快速开始(开发) + +### 依赖 + +- Go 1.25+(见 `go.mod`) +- Node.js 20+(仅开发/构建前端) + +依赖镜像(已写入 `go.env`、`web/.npmrc`,国内网络友好): + +- Go:`GOPROXY=https://goproxy.cn,direct` +- npm:`registry=https://registry.npmmirror.com` + +海外用户可将 `GOPROXY` 改为 `https://proxy.golang.org,direct`,npm 使用默认 registry 即可。 + +### 启动 + +```bash +# 终端 1:后端 +make run + +# 终端 2:前端(Vite 代理 /api → :8080) +make dev-web +``` + +访问 http://localhost:5173 ,默认密码 `admin`(**首次登录后请立即修改**)。 + +```bash +make test # 运行单元测试 +make build # 构建 dist/prism +``` + +## 部署方案 + +### 方案一:二进制部署(推荐 VPS / 裸机) + +适合已有 Linux 服务器、希望资源占用最小的场景。 + +```bash +# 1. 构建(含前端静态资源嵌入) +make build + +# 2. 准备数据目录 +mkdir -p /opt/prism/data + +# 3. 前台运行(调试) +./dist/prism -data /opt/prism/data + +# 4. 生产建议使用 systemd(示例) +``` + +`/etc/systemd/system/prism.service` 示例: + +```ini +[Unit] +Description=Prism Proxy Gateway +After=network-online.target + +[Service] +Type=simple +User=prism +WorkingDirectory=/opt/prism +ExecStart=/opt/prism/prism -data /opt/prism/data +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target +``` + +**端口映射(默认)** + +| 服务 | 端口 | 说明 | +|------|------|------| +| 管理 API / Web UI | 8080 | 浏览器访问管理台 | +| HTTP 代理 | 7890 | 客户端 HTTP 代理 | +| SOCKS5 代理 | 7891 | 客户端 SOCKS5 代理 | +| Mihomo 内部 API | 9090 | 仅 127.0.0.1,勿对外暴露 | + +代理端口可在管理台「系统设置」修改并保存后重载内核;**管理 API 端口**修改后需重启进程。 + +**反向代理(可选)** + +若希望通过域名 + HTTPS 访问管理台,可在前面加 Nginx/Caddy,将 `/` 与 `/api` 反代到 `127.0.0.1:8080`。务必启用访问控制(VPN、IP 白名单或强密码 + 关闭公网入站代理端口)。 + +### 方案二:Docker 单容器 + +适合 NAS、面板一键部署、多架构(amd64/arm64)。 + +镜像由 Gitea Actions 自动构建,发布到 Gitea Container Registry: + +``` +git.rc707blog.top/rose_cat707/prism:{tag} +``` + +| Tag | 说明 | +|-----|------| +| `latest` | `main` / `master` 分支最新构建 | +| `sha-xxxxxxx` | 对应 commit 短 SHA | +| `v1.2.3` | 推送 Git tag `v1.2.3` 时发布 | + +```bash +# 本地构建 +make docker-build + +# 拉取 CI 构建镜像 +docker login git.rc707blog.top +docker pull git.rc707blog.top/rose_cat707/prism:latest + +docker run -d --name prism \ + --restart unless-stopped \ + -p 8080:8080 \ + -p 7890:7890 \ + -p 7891:7891 \ + -v prism-data:/app/data \ + git.rc707blog.top/rose_cat707/prism:latest +``` + +**本地多架构构建并推送** + +| 变量 | 默认值 | 说明 | +|------|--------|------| +| `REGISTRY` | `git.rc707blog.top` | Gitea 实例域名(Container Registry 与代码仓库同域) | +| `OWNER` | `rose_cat707` | 镜像 owner | +| `IMAGE` | `prism` | 镜像名 | +| `TAG` | `latest` | 标签 | +| `PLATFORM` | `linux/amd64,linux/arm64` | 目标架构 | + +```bash +make docker-push +# 或 +REGISTRY=git.rc707blog.top OWNER=rose_cat707 TAG=v1.0.0 ./scripts/docker-build-push-multiarch.sh +``` + +### 方案三:Docker Compose + +仓库已包含 `docker-compose.yml`: + +```bash +docker login git.rc707blog.top +docker compose pull +docker compose up -d +``` + +数据持久化在 `./data`,升级镜像时保留卷即可。 + +## 数据目录 + +`-data` 指定数据目录(默认 `./data`): + +``` +data/ +├── prism.db # SQLite:订阅、节点、规则、设置、日志 +└── geo/ # Country.mmdb、geoip.dat、geosite.dat +``` + +首次使用含 `GEOIP`/`GEOSITE` 规则时,可在「系统设置 → Geo 数据」一键下载,或手动放入 `data/geo/`。 + +## 使用攻略(简要) + +### 1. 首次登录 + +1. 打开 `http://<主机>:8080` +2. 默认密码 `admin`,登录后进入「系统设置」修改密码 +3. 按需切换「显示语言」 + +### 2. 添加订阅 + +1. 「订阅管理」→「添加订阅」 +2. 类型选 **自动识别**(兼容 Clash YAML、Base64 链接、短链) +3. 保存后自动拉取节点并重载内核 + +### 3. 配置出站 + +1. 「出站管理」设置**默认出站**(未命中规则时生效) +2. 在策略组中切换当前节点;国家池为自动测速选最快 + +### 4. 配置规则 + +1. 「路由规则」添加手动规则(优先级高于订阅规则) +2. 可将域名指向 `country:HK` 等国家池,或 `DIRECT` / `PROXY` +3. 使用「规则命中测试」验证 URL 走向 + +### 5. 客户端接入 + +| 类型 | 地址 | 默认 | +|------|------|------| +| HTTP 代理 | `<服务器IP>:7890` | 无认证(可在设置中启用) | +| SOCKS5 | `<服务器IP>:7891` | 同上 | + +本机 `127.0.0.1` 访问代理可免认证(若已配置入站认证)。 + +### 6. API 与自动化 + +- 交互文档:`http://<主机>:8080/api/docs` +- 登录获取 Token:`POST /api/v1/auth/login` +- 或在「系统设置」申请 **API Key**,请求头: + - `Authorization: Bearer ` 或 + - `X-API-Key: ` +- 修改配置后:`POST /api/v1/system/reload` 热重载内核 + +### 7. 日常运维 + +| 操作 | 位置 / API | +|------|------------| +| 查看流量与连接 | 监控大盘 | +| 节点测速 | 代理节点 → 全部测速 | +| 查看请求明细 | 请求日志 | +| 更新 Geo | 系统设置 → Geo 数据 | +| 重载配置 | 系统设置 → 重载内核 | + +## 订阅类型 + +| 类型 | 说明 | +|------|------| +| `auto` | 自动识别(推荐) | +| `clash` | Clash / Mihomo YAML | +| `links` | Base64 或纯文本节点链接 | + +## API 前缀 + +REST API:`/api/v1` +认证:`Authorization: Bearer ` 或 API Key。 + +主要端点:`/dashboard`、`/subscriptions`、`/proxies`、`/rules`、`/settings`、`/traffic-logs`、`/logs`、`/system/reload`。 + +## 项目结构 + +``` +cmd/prism/ # 进程入口 +internal/ + api/ # HTTP 层(按域拆分 handlers_*.go) + settings/ # 设置键名、展示/提交规范化、语言 + store/ # SQLite 与仓储 + service/ # 编排与热重载 + configbuilder/ # Mihomo YAML 合成 + subscription/ # 订阅拉取解析 +web/ # Vue 3 管理台 + src/i18n/ # 多语言资源 + src/views/ # 页面 + src/styles/ # 设计系统 theme.css +.gitea/workflows/ # Gitea Actions CI +``` + +## CI / 自动发布 + +推送代码到 `main` / `master` 或 tag `v*` 时,Gitea Actions 会: + +1. 运行 `go test ./...` +2. 构建 `linux/amd64` + `linux/arm64` 镜像 +3. 推送到 `git.rc707blog.top/rose_cat707/prism` + +维护者需:① 在线 runner(标签含 `ubuntu-latest`);② Secret `REGISTRY_TOKEN`。详见 [CONTRIBUTING.md](CONTRIBUTING.md)。 + +## 贡献与安全 + +- [CONTRIBUTING.md](CONTRIBUTING.md) — 开发环境、CI 配置、提交规范 +- [SECURITY.md](SECURITY.md) — 漏洞报告与部署安全建议 +- [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md) — 第三方组件与许可 + +## 许可 + +Prism 控制面代码采用 [MIT License](LICENSE)。 + +嵌入的 [Mihomo](https://github.com/MetaCubeX/mihomo) 内核采用 **GPL-3.0 OR MIT** 双重许可。分发二进制或容器镜像时,请保留相关版权声明并遵守 Mihomo 及全部依赖的许可条款。详见 [THIRD-PARTY-NOTICES.md](THIRD-PARTY-NOTICES.md)。 diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..63282b9 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,57 @@ +# 安全策略 + +## 支持的版本 + +| 版本 | 支持状态 | +|------|----------| +| 最新 `main` / `master` 分支 | ✅ 接受安全报告 | +| 最新发布的容器镜像 tag | ✅ 接受安全报告 | +| 更早版本 | ❌ 不保证修复 | + +## 报告漏洞 + +**请勿在公开 Issue 中披露可被利用的安全漏洞。** + +请通过以下方式私下联系维护者: + +- Gitea Issues 的「私有安全报告」功能(若实例已启用) +- 或仓库维护者提供的私密联系渠道 + +报告请尽量包含: + +1. 漏洞类型与影响范围 +2. 复现步骤或 PoC +3. 受影响版本 / 提交 +4. 建议修复思路(如有) + +我们会在确认后尽快回复,并在修复发布后公开致谢(除非你希望匿名)。 + +## 威胁模型说明 + +Prism 是**自托管代理网关**,默认设计面向受信任的内网或个人 VPS,而非多租户公网 SaaS。 + +部署时请注意: + +| 风险 | 说明 | 建议 | +|------|------|------| +| 默认管理密码 | 首次安装默认 `admin` | 登录后立即修改 | +| 管理 API 暴露 | 8080 端口可控制全部配置 | 勿对公网裸奔;使用 VPN / IP 白名单 / 反向代理 + HTTPS | +| 代理端口暴露 | 7890/7891 可被滥用为开放代理 | 启用入站认证;限制来源 IP | +| Mihomo 内部 API | 9090 仅应监听 127.0.0.1 | 勿映射到公网 | +| CORS `*` | 便于开发,生产需配合鉴权 | 管理台不要与不可信站点共享 Cookie 场景 | +| API Key / Token | 等同管理员权限 | 定期轮换,勿提交到版本库 | +| 订阅 URL | 可能含敏感节点信息 | 妥善保护数据库与备份 | + +## 依赖安全 + +- Go 依赖见 `go.mod` / `go.sum` +- 前端依赖见 `web/package-lock.json` +- 嵌入内核 [Mihomo](https://github.com/MetaCubeX/mihomo) 的安全更新需跟随上游版本升级 + +## 安全更新 + +安全修复将通过: + +1. 向 `main` / `master` 提交补丁 +2. 推送新容器镜像(`latest` 与对应版本 tag) +3. 在 Release / Issue 中简要说明(不含 exploit 细节) diff --git a/THIRD-PARTY-NOTICES.md b/THIRD-PARTY-NOTICES.md new file mode 100644 index 0000000..49a451b --- /dev/null +++ b/THIRD-PARTY-NOTICES.md @@ -0,0 +1,53 @@ +# 第三方组件与许可声明 + +Prism 在 MIT 许可下发布(见 [LICENSE](LICENSE))。以下列出主要直接依赖及嵌入组件。**完整依赖树**见 `go.mod`、`go.sum` 与 `web/package-lock.json`。 + +## 嵌入内核 + +| 组件 | 用途 | 许可 | +|------|------|------| +| [Mihomo](https://github.com/MetaCubeX/mihomo) | HTTP/SOCKS5 代理数据面(Go 静态链接嵌入) | GPL-3.0 **或** MIT(双重许可,由使用者选择) | + +### Mihomo 许可说明 + +Mihomo 以 **GPL-3.0 / MIT 双许可** 发布。分发包含 Mihomo 的 Prism 二进制或容器镜像时: + +1. **保留** Mihomo 及所有依赖的版权声明与许可全文 +2. 若选择 GPL-3.0 路径,需按 GPL-3.0 要求提供对应源码获取方式 +3. 若选择 MIT 路径(针对 Mihomo 部分),需保留 Mihomo 的 MIT 版权声明 + +Prism **自研控制面代码**(`cmd/`、`internal/`、`web/`)采用 MIT 许可,与 Mihomo 通过 Go 包导入方式组合为单一可执行文件。 + +## Go 直接依赖 + +| 组件 | 用途 | 许可 | +|------|------|------| +| [gin-gonic/gin](https://github.com/gin-gonic/gin) | HTTP 框架 | MIT | +| [pressly/goose](https://github.com/pressly/goose) | 数据库迁移 | MIT | +| [robfig/cron](https://github.com/robfig/cron) | 定时任务 | MIT | +| [golang.org/x/crypto](https://pkg.go.dev/golang.org/x/crypto) | bcrypt 等 | BSD-3-Clause | +| [gopkg.in/yaml.v3](https://github.com/go-yaml/yaml) | YAML 解析 | Apache-2.0 / MIT | +| [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | 纯 Go SQLite 驱动 | BSD-3-Clause | + +Mihomo 还引入大量间接依赖(Tailscale、gVisor、quic-go 等),其许可信息见 `vendor/`(若本地生成)或各模块仓库。 + +## 前端直接依赖 + +| 组件 | 用途 | 许可 | +|------|------|------| +| [Vue 3](https://vuejs.org/) | UI 框架 | MIT | +| [Element Plus](https://element-plus.org/) | 组件库 | MIT | +| [vue-i18n](https://vue-i18n.intlify.dev/) | 国际化 | MIT | +| [ECharts](https://echarts.apache.org/) | 图表 | Apache-2.0 | +| [axios](https://axios-http.com/) | HTTP 客户端 | MIT | +| [Vite](https://vitejs.dev/) | 构建工具 | MIT | + +## 生成 vendor 目录(可选) + +如需离线/可复现构建,可在本地执行: + +```bash +go mod vendor +``` + +`vendor/` 已加入 `.gitignore`,默认由 CI 与 Docker 构建在线拉取依赖。 diff --git a/UI-DESIGN-SYSTEM.md b/UI-DESIGN-SYSTEM.md new file mode 100644 index 0000000..c6adb10 --- /dev/null +++ b/UI-DESIGN-SYSTEM.md @@ -0,0 +1,2013 @@ +# UI 设计规范 + +> 适用范围:基于 Vue 3 + Element Plus 2.x 的后台管理系统 Web 页面 +> **本文档为唯一设计规范**:色彩、间距、布局、组件样式、全局 CSS 均定义于本文件(§6 分模块说明 + §8.9 完整 CSS)。项目实施时从本文档复制代码即可,不依赖其他设计资产文件。 + +--- + +## 目录 + +1. [页面整体风格](#1-页面整体风格) +2. [布局标准](#2-布局标准) +3. [字体标准](#3-字体标准) +4. [颜色规范](#4-颜色规范) +5. [图标使用规范](#5-图标使用规范) +6. [组件与页面标准样式](#6-组件与页面标准样式) +7. [交互原则](#7-交互原则) +8. [附录:复刻指南](#8-附录复刻指南) + +--- + +## 1. 页面整体风格 + +### 1.1 设计定位 + +本规范定义一套**浅色、克制、数据导向**的后台界面风格。视觉语言强调可读性与操作效率,避免装饰性元素喧宾夺主。 + +| 维度 | 规范 | +|------|------| +| 整体调性 | 专业、冷静、工具感;类似现代 SaaS 控制台 | +| 色彩策略 | 大面积中性灰白底 + 青绿品牌色点缀 | +| 层次表达 | 靠**字号阶梯**与**灰度阶梯**区分,不靠重阴影 | +| 容器形态 | 白底细边框卡片(`1px` + `8px` 圆角),无浮起阴影 | +| 信息密度 | 列表/表格偏紧凑(`size="small"`),表单区留白充分 | +| 技术底座 | Element Plus 组件 + 全局 CSS 变量覆盖 | + +### 1.2 核心设计原则 + +| 原则 | 说明 | +|------|------| +| **浅色优先** | 页面背景 `#f4f4f5`,内容区白卡片;禁止深色全屏侧栏 | +| **克制用色** | 主色青绿仅用于品牌、主按钮、导航激活态、关键正向状态 | +| **细边框卡片** | 白底 + `1px` 浅灰边框 + `8px` 圆角,禁止大面积 box-shadow | +| **8px 间距节奏** | 所有间距使用间距 Token(4px 仅用于极紧凑场景) | +| **层次靠字号与灰度** | 标题 `#18181b`,正文 `#3f3f46`,辅助 `#71717a` | +| **组件复用优先** | 使用 `PageHeader`、`AppCard`、`StatCard` 等标准壳层,禁止页面内自建容器体系 | +| **国际化友好** | 文案走 i18n;布局预留中英文长度差异(按钮组 `flex-wrap`) | + +### 1.3 视觉示意 + +``` +┌──────────────┬────────────────────────────────────┐ +│ Sidebar │ Topbar(52px,白底,底部分割线) │ +│ 240px ├────────────────────────────────────┤ +│ 半透明浅灰 │ Main Content(padding 24px) │ +│ 品牌区+导航 │ .page(max-width 1400px) │ +│ │ PageHeader → StatGrid → AppCard │ +└──────────────┴────────────────────────────────────┘ +``` + +登录页为独立全屏居中布局,无侧栏与顶栏。 + +--- + +## 2. 布局标准 + +### 2.1 栅格系统 + +#### PC 端(≥1025px) + +| 项目 | 规范 | +|------|------| +| 基准栅格 | **12 列**逻辑栅格(内容区 `max-width: 1400px` 内划分) | +| 列间距(gutter) | `16px`(`--space-4`) | +| 页面水平边距 | 主内容区内边距 `24px`(`--space-6`) | +| 典型列分配 | 统计卡 4×3 列;双栏内容 `1.4fr : 1fr` 或 `1fr : 1fr`;三栏等分 `1fr × 3` | + +常用网格类: + +| 类名 | PC 列数 | 说明 | +|------|---------|------| +| `.stat-grid` | 4 列 | 概览指标卡 | +| `.content-grid--2` | 2 列等宽 | 并列卡片 | +| `.content-grid--2-1` | 2 列(约 7:5) | 主内容 + 侧信息 | +| `.content-grid--3` | 3 列等宽 | 三列面板(按需扩展) | + +#### 平板(641px – 1024px) + +| 项目 | 规范 | +|------|------| +| 有效栅格 | **8 列**逻辑栅格 | +| `.stat-grid` | 2 列 | +| `.content-grid--*` | 全部折叠为 **1 列** | +| 主内容 padding | 保持 `24px` | + +#### 移动端(≤640px) + +| 项目 | 规范 | +|------|------| +| 有效栅格 | **4 列**逻辑栅格 | +| `.stat-grid` | 1 列 | +| `.page-header` | 纵向堆叠(标题在上,操作在下) | +| 主内容 padding | `16px`(`--space-4`) | +| 底部 Tab(若启用) | 固定底部,高度 `56px`,图标 `20px` + 文字 `10px` | + +> 默认以 PC 为主、移动端通过响应式折叠适配;若启用底部 Tab 导航,须使用本节尺寸,不得自定义高度。 + +### 2.2 间距体系(8px 基准) + +**硬性规则:页面级、组件级外边距与内边距必须使用间距 Token,禁止出现 5px、7px、10px、15px 等非体系数值。** + +| Token | 值 | 是否 8 的倍数 | 典型用途 | +|-------|-----|---------------|----------| +| `--space-1` | 4px | ½×8,仅紧凑场景 | 标题与副标题间距、行内 code 水平 padding | +| `--space-2` | 8px | ✓ | 按钮组 gap、导航项内边距、表格单元格垂直 padding | +| `--space-3` | 12px | — | 列表项间距、卡片底栏提示 | +| `--space-4` | 16px | ✓ | 卡片间距、工具栏下边距、移动端页面 padding | +| `--space-5` | 20px | — | 卡片水平内边距、统计卡内边距 | +| `--space-6` | 24px | ✓ | 页头下边距、主内容 padding、区块分隔 | +| `--space-8` | 32px | ✓ | 登录卡片内边距、大区块分隔 | + +**垂直节奏(页面级)** + +- `.page-header` 下方:`24px` +- `.stat-grid`、`.content-grid` 下方:`24px` +- 相邻 `.app-card` 间距:`16px`;页面最后一个卡片无底边距 + +**已知例外(保留,勿改)** + +| 位置 | 值 | 原因 | +|------|-----|------| +| `.form-hint` 的 `margin-top` | `6px` | 紧贴表单项控件底部,视觉上等同 8px 体系 | + +`--primary-hover` 已定义但未写独立 CSS 规则,主按钮 hover 由 Element Plus 通过 `--el-color-primary-dark-2` 自动处理。 + +### 2.3 布局组件尺寸 + +| 组件 | 尺寸 | 其他规则 | +|------|------|----------| +| **侧栏** `.sidebar` | 宽 `240px`(`15rem`) | 右边框 `1px`;背景半透明 + `backdrop-filter: blur(8px)` | +| **侧栏品牌区** `.sidebar-brand` | 高随内容;padding `20px 16px` | 品牌图标 `32×32px` | +| **导航项** `.nav-item` | 高随内容;padding `8px 12px`;margin 左右 `8px` | 圆角 `8px`;图标 `16px` | +| **导航分组标签** `.nav-group-label` | padding `16px 16px 8px` | 字号 `12px`,全大写 | +| **顶栏** `.topbar` | 高 **`52px`** | 左右 padding `24px`;白底 + 底边框 | +| **主内容** `.main-content` | flex 填满剩余高度 | padding `24px`(移动端 `16px`);纵向滚动 | +| **页面容器** `.page` | max-width **`1400px`** | 无水平居中强制(随主内容左对齐) | +| **底部 Tab**(预留) | 高 **`56px`** | 图标 `20px`,标签 `10px`,最多 5 项 | +| **登录卡片** `.login-card` | max-width 外层 `400px`;内边距 `32px` | 品牌图标 `48×48px`,圆角 `12px` | + +### 2.4 断点 + +| 断点 | 媒体查询 | 主要变化 | +|------|----------|----------| +| 平板 | `max-width: 1024px` | 统计 2 列;内容网格单列 | +| 手机 | `max-width: 640px` | 统计 1 列;页头纵向;主内容 16px padding | + +### 2.5 布局结构(ASCII) + +``` +PC (≥1025px) +┌─ sidebar 240px ─┬──────────── main-area ────────────────────┐ +│ [brand 32px] │ topbar 52px │ +│ [nav × N] ├───────────────────────────────────────────┤ +│ │ padding 24px │ +│ │ ┌─ page max 1400px ─────────────────┐ │ +│ │ │ page-header │ │ +│ │ │ stat-grid (4 col, gap 16) │ │ +│ │ │ app-card │ │ +│ │ └────────────────────────────────────┘ │ +└─────────────────┴───────────────────────────────────────────┘ + +Mobile (≤640px) +┌──────────────── main-area 100% ────────────────┐ +│ topbar 52px │ +├────────────────────────────────────────────────┤ +│ padding 16px │ +│ page-header (column) │ +│ stat-grid (1 col) │ +│ app-card │ +├────────────────────────────────────────────────┤ +│ [optional bottom-tab 56px] │ +└────────────────────────────────────────────────┘ +``` + +--- + +## 3. 字体标准 + +### 3.1 字体族 + +| 场景 | 字体栈 | +|------|--------| +| **中文界面** | `"PingFang SC"`, `"Microsoft YaHei"`, `"Noto Sans SC"`, `"Helvetica Neue"`, `Arial`, `sans-serif` | +| **英文界面** | `ui-sans-serif`, `system-ui`, `-apple-system`, `"Segoe UI"`, `Roboto`, `"Helvetica Neue"`, `Arial`, `sans-serif` | +| **合并栈(推荐默认)** | `ui-sans-serif`, `system-ui`, `-apple-system`, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif` | +| **等宽(代码/文件名)** | `ui-monospace`, `SFMono-Regular`, `Menlo`, `Monaco`, `Consolas`, monospace` | + +> 中英文共用同一 sans 栈:西文优先 system 字体,CJK 由系统自动 fallback 至苹方/微软雅黑。禁止为中文单独引入 Web Font,保持加载性能。 + +### 3.2 字号阶梯 + +根元素 `font-size: 14px`(`1rem = 14px`)。所有字号使用 `rem` 相对根字号。 + +| 层级 | 类名 / 场景 | 字号 | 字重 | 行高 | 颜色 | +|------|-------------|------|------|------|------| +| 页面标题 | `.page-title` | `1.5rem`(21px) | 600 | 默认 | `--foreground` | +| 登录品牌标题 | `.page-title`(登录页) | 同上 | 600 | 默认 | `--foreground` | +| 卡片标题 | `.app-card__title` | `0.9375rem`(13px) | 600 | 默认 | `--foreground` | +| 品牌名 | `.brand-name` | `1.125rem`(15.75px) | 600 | 默认 | `--foreground` | +| 统计数值 | `.stat-card__value` | `1.75rem`(24.5px) | 600 | 默认 | `--foreground` | +| 正文 / 导航 / 顶栏 | `.nav-item`, `.topbar-title`, 表格正文 | `0.875rem`(12.25px) | 400–500 | 1.4(表格) | `--el-text-color-regular` 或 `--muted-foreground` | +| 描述 / 标签说明 | `.page-desc`, `.stat-card__label` | `0.875rem` | 400 | 默认 | `--muted-foreground` | +| 表头 / 辅助 | 表头 `th`, `.form-hint`, `.nav-group-label` | `0.75rem`(10.5px) | 600(表头)/ 400 | 默认 | `--muted-foreground` | +| 极小说明 | `.form-hint`, `code.inline-code` | `0.75rem` | 400 | 默认 | `--muted-foreground` | +| 等宽数据 | `.kv-block code`, `.meta-list` | `0.8125rem` | 400 | 默认 | 继承 | + +### 3.3 字重与样式 + +| 样式 | 使用场景 | 禁止场景 | +|------|----------|----------| +| **600(Semibold)** | 页面标题、卡片标题、表头、导航激活态、分组标题 `.section-title` | 大段正文 | +| **500(Medium)** | 导航默认态、顶栏次要文字 | — | +| **400(Regular)** | 正文、描述、表单标签 | — | +| **加粗 ``** | 行内强调少量关键词 | 整段文字 | +| **斜体 ``** | 极少使用;仅引用或术语首次出现 | 按钮、导航、表头 | +| **`letter-spacing: -0.02em`** | 仅 `.page-title` | 其他文字 | +| **`text-transform: uppercase`** | 仅 `.nav-group-label` | 其他文字 | + +### 3.4 Element Plus 表单标签 + +| 场景 | `label-width` | +|------|---------------| +| 简单 CRUD 对话框 | `100px` | +| 字段名较长 | `110px` | +| 系统设置长表单 | `120px` | +| 嵌套子表单 | `90px` | +| 登录页 | `size="large"`(EP 默认大号控件) | + +--- + +## 4. 颜色规范 + +### 4.1 色彩角色一览 + +``` +品牌层:primary 系列(操作引导) +中性层:background / card / muted / border(结构) +语义层:success / warning / danger / info(状态) +文本层:foreground / regular / muted-foreground(可读性) +``` + +### 4.2 完整色板 + +#### 品牌色 + +| Token | 色值 | 用途 | +|-------|------|------| +| `--primary` | `#0f7a62` | 主按钮、品牌图标底、导航激活文字、链接强调 | +| `--primary-hover` | `#0d6b56` | 主按钮 hover | +| `--primary-foreground` | `#fafafa` | 主色背景上的文字/图标 | +| `--el-color-primary-light-3` | `#4da08c` | EP 组件浅色变体 | +| `--el-color-primary-light-5` | `#76b8a8` | — | +| `--el-color-primary-light-7` | `#a0d0c4` | — | +| `--el-color-primary-light-8` | `#b8dcd2` | — | +| `--el-color-primary-light-9` | `#d0e8e1` | 浅色背景提示 | +| `--el-color-primary-dark-2` | `#0c624e` | 主色按下/深色态 | + +#### 中性色 + +| Token | 色值 | 用途 | +|-------|------|------| +| `--background` | `#f4f4f5` | 页面底色、登录页背景 | +| `--foreground` | `#18181b` | 主标题、强强调正文 | +| `--card` | `#ffffff` | 卡片、顶栏、弹窗内容区背景 | +| `--card-foreground` | `#18181b` | 卡片上主文字 | +| `--muted` | `#f4f4f5` | 表头背景、内嵌块、行内 code 底 | +| `--muted-foreground` | `#71717a` | 描述、表头文字、顶栏标题、占位性文字 | +| `--border` | `#e4e4e7` | 卡片边框、分割线、顶栏底边 | +| `--input` | `#e4e4e7` | 输入框边框(与 border 一致) | + +#### 侧栏专用 + +| Token | 色值 | 用途 | +|-------|------|------| +| `--sidebar` | `rgba(250, 250, 250, 0.85)` | 侧栏背景(半透明) | +| `--sidebar-foreground` | `#18181b` | 侧栏主文字 | +| `--sidebar-accent` | `#f4f4f5` | 导航 hover / active 背景 | +| `--sidebar-border` | `#e4e4e7` | 侧栏右边框 | + +#### 语义色 + +| Token / 类名 | 色值 | 用途 | +|--------------|------|------| +| `--success` | `#047857` | 成功状态(与 EP success 同步) | +| `--warning` | `#b45309` | 警告状态 | +| `--danger` / `--destructive` | `#dc2626` | 危险、错误、删除 | +| `--info` | `#a1a1aa` | 中性、禁用、分类标签 | +| `--el-color-success` | `#047857` | `el-tag type="success"` | +| `--el-color-warning` | `#b45309` | `el-tag type="warning"` | +| `--el-color-danger` | `#dc2626` | `el-tag type="danger"` | +| `--el-color-info` | `#a1a1aa` | `el-tag type="info"` | +| `.status-good` | `#047857` | 数值/状态优良 | +| `.status-warn` | `#b45309` | 数值/状态偏高 | +| `.status-bad` | `#dc2626` | 数值/状态很差 | +| `.status-muted` | `--muted-foreground` | 无数据/超时/不可用 | +| `.meta-list__ok` | `var(--success)` | 列表项就绪 | +| `.meta-list__warn` | `var(--warning)` | 列表项缺失/警告 | + +#### 文本色(Element Plus 对齐) + +| Token | 色值 | 用途 | +|-------|------|------| +| `--el-text-color-primary` | `#18181b` | EP 主要文字 | +| `--el-text-color-regular` | `#3f3f46` | 表格正文 | +| `--el-text-color-secondary` | `#71717a` | EP 次要文字 | + +### 4.3 颜色使用规范 + +| 规则 | 说明 | +|------|------| +| **禁止硬编码色值** | 新样式必须使用 CSS 变量 | +| **主色克制** | 单屏主色面积不超过 15%;除主按钮与激活导航外不大面积铺主色 | +| **状态色统一** | 成功/失败/禁用一律用 `el-tag` 语义 type,不自创色块 | +| **边框优先于阴影** | 容器分隔用 `1px solid var(--border)`,不用阴影 | +| **危险操作** | 破坏性操作用 `type="danger"` + `link`(表格行内)或二次确认弹框 | +| **图表** | 遵循 [§6.16](#616-图表规范echarts) 配色与 grid 配置 | + +### 4.4 圆角 + +| Token | 值 | 用途 | +|-------|-----|------| +| `--radius` | `0.5rem`(8px) | 卡片、按钮、输入框、导航项、内嵌块 | +| 登录品牌图标 | `12px` | 仅 `.login-brand-icon`,略大以强化品牌 | + +--- + +## 5. 图标使用规范 + +### 5.1 图标体系 + +| 类型 | 来源 | 说明 | +|------|------|------| +| **品牌图标** | 项目自有 Logo(自行实现) | 产品标识;仅用于侧栏 `.brand-icon`、登录页 `.login-brand-icon`;**各项目图形不同,本文档不提供参考实现** | +| **功能图标** | `@element-plus/icons-vue` | 导航、操作提示;通过 `` 包裹 | +| **状态** | 优先 `el-tag` 文字 | 不以图标替代明确状态文案 | + +### 5.2 尺寸规范 + +| 场景 | 尺寸 | +|------|------| +| 侧栏品牌区 Logo | `20px` | +| 登录页品牌 Logo | `24px` | +| 侧栏导航图标 | `16px`(``) | +| 按钮内图标(若使用) | `14px` | +| 底部 Tab(预留) | `20px` | + +### 5.3 常见场景图标推荐 + +图标库统一使用 `@element-plus/icons-vue`(Outlined 线型)。下表为常见导航/功能场景的推荐映射,各项目可按业务替换,但须保持风格一致。 + +| 场景 | 推荐图标 | 含义 | +|------|----------|------| +| 首页 / 仪表盘 | `Odometer`、`HomeFilled` | 总览、监控 | +| 列表 / 规则 / 配置项 | `List`、`Menu` | 条目化管理 | +| 连接 / 网络 | `Connection`、`Share` | 链路、拓扑 | +| 外部关联 / 链接 | `Link` | 外部数据源 | +| 切换 / 路由 / 策略 | `Switch` | 分流、调度 | +| 日志 / 文档 | `Document`、`Tickets` | 记录、流水 | +| 用户 / 权限 | `User`、`Lock` | 身份、安全 | +| 系统设置 | `Setting` | 全局配置 | +| 新建 | `Plus` | 创建资源 | +| 编辑 | `Edit` | 修改 | +| 删除 | `Delete` | 移除(配合 danger 按钮,不单用图标) | +| 刷新 | `Refresh` | 重新加载 | +| 导入 / 导出 | `Upload`、`Download` | 数据交换 | + +### 5.4 使用原则 + +| 原则 | 说明 | +|------|------| +| **导航必带图标** | 侧栏每项左侧固定 `16px` 图标,增强扫读性 | +| **颜色跟随文字** | 图标 `currentColor`,不单独设色 | +| **禁止混用风格** | 统一 Outlined 线型图标(Element Plus Icons) | +| **操作按钮** | 主操作优先文字按钮;图标-only 按钮需 `aria-label` | +| **品牌图标不外借** | Logo 仅用于品牌区,不用于普通操作按钮 | + +--- + +## 6. 组件与页面标准样式 + +> 本节 6.1–6.14 为**分模块说明**(便于查阅);**合并后的完整全局 CSS 见 [§8.9](#89-完整全局样式一键复制)**。两处内容须保持一致。 + +### 6.0 技术栈与引入 + +| 项目 | 要求 | +|------|------| +| Vue | `^3.4` | +| Element Plus | `^2.4`(2.x 均可,须使用 CSS 变量主题) | +| 图标 | `@element-plus/icons-vue` | +| 图表(可选) | `echarts` `^5` | + +**`main.ts` 引入顺序(顺序不可颠倒):** + +```ts +import { createApp } from 'vue' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' // ① 先 Element Plus 基础样式 +import './styles/global.css' // ② 再将本文档 §8.9 复制为全局样式文件后引入 + +const app = createApp(App) +app.use(ElementPlus) // ③ 全量注册(或按需,但变量须生效) +app.mount('#app') +``` + +**依赖说明:** + +- 全局样式**仅来源于本文档 §8.9**,文件名与存放路径由项目自定(如 `global.css`、`app.css`)。 +- 按钮、输入框、弹框、Tabs 等**无需逐组件写 CSS**,通过 `:root` 中的 `--el-*` 变量与品牌色对齐。 +- 表格、卡片容器、布局壳层使用本文档自定义 class,须与 §8.1 壳层 DOM 结构配合。 + +### 6.1 设计 Token 与基础重置 + +```css +:root { + --background: #f4f4f5; + --foreground: #18181b; + --card: #ffffff; + --card-foreground: #18181b; + --primary: #0f7a62; + --primary-hover: #0d6b56; + --primary-foreground: #fafafa; + --muted: #f4f4f5; + --muted-foreground: #71717a; + --border: #e4e4e7; + --input: #e4e4e7; + --destructive: #dc2626; + --success: #047857; + --warning: #b45309; + --danger: #dc2626; + --info: #a1a1aa; + --sidebar: rgba(250, 250, 250, 0.85); + --sidebar-foreground: #18181b; + --sidebar-accent: #f4f4f5; + --sidebar-border: #e4e4e7; + --sidebar-width: 15rem; + --radius: 0.5rem; + --space-1: 4px; + --space-2: 8px; + --space-3: 12px; + --space-4: 16px; + --space-5: 20px; + --space-6: 24px; + --space-8: 32px; + + --el-color-primary: #0f7a62; + --el-color-primary-light-3: #4da08c; + --el-color-primary-light-5: #76b8a8; + --el-color-primary-light-7: #a0d0c4; + --el-color-primary-light-8: #b8dcd2; + --el-color-primary-light-9: #d0e8e1; + --el-color-primary-dark-2: #0c624e; + --el-color-success: #047857; + --el-color-warning: #b45309; + --el-color-danger: #dc2626; + --el-color-info: #a1a1aa; + --el-border-radius-base: 0.5rem; + --el-border-color: #e4e4e7; + --el-bg-color-page: #f4f4f5; + --el-text-color-primary: #18181b; + --el-text-color-regular: #3f3f46; + --el-text-color-secondary: #71717a; + --el-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; +} + +* { box-sizing: border-box; } + +html, body, #app { + margin: 0; + padding: 0; + height: 100%; + font-size: 14px; + font-family: var(--el-font-family); + background: var(--background); + color: var(--foreground); +} +``` + +### 6.2 布局壳层(侧栏 / 顶栏 / 主内容) + +```css +.layout { + display: flex; + height: 100vh; +} + +.sidebar { + width: var(--sidebar-width); + flex-shrink: 0; + background: var(--sidebar); + border-right: 1px solid var(--sidebar-border); + backdrop-filter: blur(8px); + display: flex; + flex-direction: column; + overflow-y: auto; +} + +.sidebar-brand { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-5) var(--space-4); +} + +.brand-icon { + width: 32px; + height: 32px; + border-radius: var(--radius); + background: var(--primary); + color: var(--primary-foreground); + display: flex; + align-items: center; + justify-content: center; +} + +.brand-name { + font-size: 1.125rem; + font-weight: 600; +} + +.nav-group-label { + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted-foreground); + padding: var(--space-4) var(--space-4) var(--space-2); +} + +.nav-item { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-2) var(--space-3); + margin: 0 var(--space-2); + border-radius: var(--radius); + color: var(--muted-foreground); + text-decoration: none; + font-size: 0.875rem; + font-weight: 500; +} + +.nav-item:hover { background: var(--sidebar-accent); } + +.nav-item.active { + background: var(--sidebar-accent); + color: var(--primary); + font-weight: 600; +} + +.main-area { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.topbar { + height: 52px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 var(--space-6); + background: var(--card); + border-bottom: 1px solid var(--border); +} + +.topbar-title { + font-size: 0.875rem; + color: var(--muted-foreground); +} + +.main-content { + flex: 1; + overflow-y: auto; + padding: var(--space-6); +} +``` + +### 6.3 页面头与网格 + +```css +.page { + max-width: 1400px; +} + +.page-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: var(--space-6); + gap: var(--space-4); +} + +.page-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-shrink: 0; + flex-wrap: wrap; +} + +.page-title { + font-size: 1.5rem; + font-weight: 600; + letter-spacing: -0.02em; + margin: 0 0 var(--space-1); +} + +.page-desc { + font-size: 0.875rem; + color: var(--muted-foreground); + margin: 0; +} + +.stat-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.stat-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-5); +} + +.stat-card__label { + font-size: 0.875rem; + color: var(--muted-foreground); + margin-bottom: var(--space-2); +} + +.stat-card__value { + font-size: 1.75rem; + font-weight: 600; +} + +.content-grid { + display: grid; + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.content-grid--2-1 { grid-template-columns: 1.4fr 1fr; } +.content-grid--2 { grid-template-columns: 1fr 1fr; } +.content-grid--3 { grid-template-columns: repeat(3, 1fr); } +``` + +### 6.4 卡片与工具栏 + +```css +.app-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + margin-bottom: var(--space-4); +} + +.page > .app-card:last-child, +.page > .content-grid:last-child { + margin-bottom: 0; +} + +.app-card__header { + padding: var(--space-4) var(--space-5); + border-bottom: 1px solid var(--border); +} + +.app-card__title { + font-size: 0.9375rem; + font-weight: 600; + margin: 0; +} + +.app-card__body--padded { padding: var(--space-5); } + +.card-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-4) var(--space-5) 0; + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.card-toolbar--desc { + align-items: flex-start; +} + +.card-pager { + padding: var(--space-4) var(--space-5); + display: flex; + justify-content: flex-end; +} + +.card-footer-hint { + padding: 0 var(--space-5) var(--space-3); + margin: 0; +} + +.card-footer-hint + .card-pager { + padding-top: var(--space-3); +} + +.card-inset-block { + margin: 0 var(--space-5) var(--space-4); + padding: var(--space-3); + background: var(--muted); + border-radius: var(--radius); + font-size: 0.875rem; +} + +.tabs-bar { + padding: 0 var(--space-5); + border-bottom: 1px solid var(--border); +} + +.tabs-bar .el-tabs__header { margin-bottom: 0; } + +.page-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.inline-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-wrap: wrap; +} + +.card-header-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--space-4); +} +``` + +### 6.5 表单、间距工具类 + +```css +.form-hint { + margin-top: 6px; + font-size: 0.75rem; + color: var(--muted-foreground); +} + +.form-hint--flush { margin-top: 0; } + +.u-mt-3 { margin-top: var(--space-3); } +.u-mt-4 { margin-top: var(--space-4); } +.u-mb-3 { margin-bottom: var(--space-3); } +.u-mb-4 { margin-bottom: var(--space-4); } +.u-mb-6 { margin-bottom: var(--space-6); } +.text-center { text-align: center; } +.w-full { width: 100%; } + +code.inline-code { + font-size: 0.75rem; + padding: 0 var(--space-1); + background: var(--muted); + border-radius: var(--radius); +} + +.section-title { + font-size: 0.875rem; + font-weight: 600; + margin-bottom: var(--space-4); +} + +.section-title:not(:first-child) { margin-top: var(--space-6); } + +.el-form .el-select { width: 100%; } +``` + +### 6.6 登录页 + +```css +.login-page { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: var(--background); + padding: var(--space-6); +} + +.login-wrap { max-width: 400px; width: 100%; text-align: center; } + +.login-brand-icon { + width: 48px; + height: 48px; + border-radius: 12px; + background: var(--primary); + color: var(--primary-foreground); + display: inline-flex; + align-items: center; + justify-content: center; + margin-bottom: var(--space-4); +} + +.login-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-8); + margin-top: var(--space-6); + text-align: left; +} +``` + +### 6.7 表格 + +```css +.app-card .el-table { + --el-table-header-bg-color: var(--muted); + font-size: 0.875rem; +} + +.app-card .el-table--small .el-table__cell { + padding: var(--space-2) var(--space-3); +} + +.app-card .el-table--small th.el-table__cell { + font-size: 0.75rem; + font-weight: 600; + color: var(--muted-foreground); +} + +.app-card .el-table--small td.el-table__cell { + color: var(--el-text-color-regular); +} + +.app-card .el-table--small .el-table__row { + height: 40px; +} + +.app-card .el-table .el-button.is-link { + padding: 0; + height: auto; +} + +.app-card .el-table .cell { + line-height: 1.4; +} + +.table-scroll--sm { max-height: 320px; } +.table-scroll--md { max-height: 360px; } +.table-scroll--lg { max-height: 480px; } + +.card-pager .el-pagination { + font-size: 0.875rem; +} +``` + +**表格列宽约定** + +| 列类型 | 宽度 | +|--------|------| +| 时间 | `168px` | +| 状态 / 布尔 | `80–100px` | +| 操作 | `120–160px`,`fixed="right"` | +| 主文本 | `min-width`,不设固定宽 | + +### 6.8 工具栏控件宽度 + +```css +.toolbar-select { width: 120px; } +.toolbar-select--country { width: 160px; } +.toolbar-select--wide { width: 280px; } +.toolbar-input { width: 200px; } +.toolbar-input--wide { width: 260px; } +.toolbar-input--grow { flex: 1; min-width: 200px; } +.table-cell-select { width: 100%; min-width: 200px; } + +.card-toolbar .toolbar-input--grow { + flex: 1; + min-width: 200px; +} +``` + +### 6.9 按钮规范(Element Plus 约定) + +| 场景 | 写法 | +|------|------| +| 页面主操作 | `` | +| 页头次要操作 | 默认按钮(无 type) | +| 表格行内操作 | `` | +| 表格行内删除 | `` | +| 顶栏退出 | `` | +| 登录提交 | `` | +| 加载中 | `:loading="true"`,禁止重复点击 | + +### 6.10 弹框与抽屉 + +| 类型 | 宽度 | 属性 | +|------|------|------| +| 简单 CRUD | `480–520px` | `destroy-on-close` | +| 导入/中等表单 | `560–640px` | 同上 | +| 复杂列表弹窗 | `720px` | 同上 | +| 二级编辑 | 抽屉 `50%` | — | + +**底部按钮顺序**:取消(默认)在左,确认(`type="primary"`)在右。 + +### 6.11 标签(Tag) + +统一 `size="small"`: + +| 语义 | type | +|------|------| +| 启用 / 成功 / 存活 | `success` | +| 禁用 / 中性 | `info` | +| 失败 / 错误 | `danger` | +| 警告 / 未就绪 | `warning` | +| 可选项高亮 | `primary` | + +### 6.12 状态色与辅助块 + +```css +.status-good { color: #047857; } +.status-warn { color: #b45309; } +.status-bad { color: #dc2626; } +.status-muted { color: var(--muted-foreground); } + +.kv-block p { + margin: 0 0 var(--space-2); +} + +.kv-block p:last-child { + margin-bottom: 0; +} + +.kv-block .label { + display: inline-block; + width: 5rem; + color: var(--muted-foreground); +} + +.kv-block code { + font-size: 0.8125rem; +} + +.cell-stack { + display: flex; + flex-direction: column; + gap: var(--space-2); + width: 100%; +} + +.meta-list { + margin: 0; + padding: 0; + list-style: none; + font-size: 0.8125rem; + color: var(--muted-foreground); +} + +.meta-list li { + display: flex; + justify-content: space-between; + gap: var(--space-3); + padding: var(--space-1) 0; +} + +.meta-list__mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; +} + +.meta-list__ok { color: var(--el-color-success); } +.meta-list__warn { color: var(--el-color-warning); } + +.chart-box { + height: 280px; +} +``` + +### 6.13 滚动条与响应式 + +```css +.custom-scrollbar { + scrollbar-width: thin; + scrollbar-color: #e4e4e7 transparent; +} + +.custom-scrollbar::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + background: #e4e4e7; + border-radius: 3px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +@media (max-width: 1024px) { + .stat-grid { grid-template-columns: repeat(2, 1fr); } + .content-grid--2-1, + .content-grid--2, + .content-grid--3 { grid-template-columns: 1fr; } +} + +@media (max-width: 640px) { + .stat-grid { grid-template-columns: 1fr; } + .main-content { padding: var(--space-4); } + .page-header { flex-direction: column; } +} +``` + +### 6.14 全局工具类速查 + +| 类名 | 用途 | +|------|------| +| `.card-toolbar` | 卡片内筛选行 | +| `.card-pager` | 卡片内分页(右对齐) | +| `.card-header-row` | 卡片头标题 + 右侧操作 | +| `.form-hint` | 表单项下方说明 | +| `.section-title` | 长表单分组标题 | +| `.page-toolbar` | 页内独立工具条 | +| `.tabs-bar` | 卡片内 Tab 容器 | +| `.toolbar-select` / `.toolbar-input` | 工具栏控件宽度 | +| `.table-scroll--sm/md/lg` | 表格最大高度 | +| `.w-full` | 宽度 100% | +| `.u-mb-4` / `.u-mt-3` 等 | 标准外边距 | +| `.status-good` / `.status-warn` / `.status-bad` | 行内数值/状态语义色 | +| `.kv-block` | 键值对结果展示(常配合 `.card-inset-block`) | +| `.cell-stack` | 表格单元格内纵向堆叠 | +| `.meta-list` | 元数据清单列表 | +| `.custom-scrollbar` | 细滚动条(Firefox + WebKit) | + +### 6.15 Element Plus 适配说明 + +以下组件**依靠 EP 默认样式 + `:root` 变量**即可,禁止重复覆盖(除非本节另有说明): + +| 组件 | 使用约定 | 自定义 CSS | +|------|----------|------------| +| `el-button` | 主操作 `type="primary"`;行内 `size="small" link` | 无(颜色来自 `--el-color-primary*`) | +| `el-input` / `el-select` | 表单内 select 宽度 `100%` | 仅 `.el-form .el-select { width: 100% }` | +| `el-dialog` | `destroy-on-close`;宽度见 §6.10 | 无 | +| `el-drawer` | 二级编辑 `size="50%"` | 无 | +| `el-tabs` | 放在 `.tabs-bar` 内 | 仅 `.tabs-bar .el-tabs__header { margin-bottom: 0 }`;激活色来自 `--el-color-primary` | +| `el-pagination` | 放在 `.card-pager` 内 | 仅 `font-size: 0.875rem` | +| `el-tag` | 统一 `size="small"` | 语义色来自 `--el-color-success` 等 | +| `el-message` / `el-message-box` | 操作反馈 | 无 | +| `el-form` | `label-width` 见 §3.4 | 无 | + +**Tabs 推荐结构:** + +```vue + +
+ + + + +
+ +
+``` + +**Dialog 推荐结构:** + +```vue + + + + +``` + +### 6.16 图表规范(ECharts) + +含折线图的统计页使用 `.chart-box` 容器(高度 `280px`)。图表配置须与品牌色一致: + +| 配置项 | 值 | +|--------|-----| +| 容器 class | `chart-box`(`height: 280px`) | +| 主系列色 | `#0f7a62`(`var(--primary)`) | +| 次系列色 | `#71717a`(`var(--muted-foreground)`) | +| 第三系列及以后 | `#4da08c`、`#76b8a8`、`#a0d0c4`(primary-light 阶梯) | +| `grid` | `{ left: 40, right: 16, top: 16, bottom: 24 }` | +| 坐标轴字号 | `12`(与 `0.857rem` 接近) | +| 坐标轴颜色 | `#71717a` | +| 分割线 | `#e4e4e7` | +| 折线 | `smooth: true`;线宽 `2` | +| tooltip | `trigger: 'axis'` | +| 图例 | 顶部或底部,字号 `12` | + +```ts +chart.setOption({ + grid: { left: 40, right: 16, top: 16, bottom: 24 }, + xAxis: { + type: 'category', + data: labels, + axisLabel: { color: '#71717a', fontSize: 12 }, + axisLine: { lineStyle: { color: '#e4e4e7' } }, + }, + yAxis: { + type: 'value', + axisLabel: { color: '#71717a', fontSize: 12 }, + splitLine: { lineStyle: { color: '#e4e4e7' } }, + }, + series: [ + { name: '主指标', type: 'line', smooth: true, data: a, color: '#0f7a62' }, + { name: '次指标', type: 'line', smooth: true, data: b, color: '#71717a' }, + ], + tooltip: { trigger: 'axis' }, +}) +``` + +--- + +## 7. 交互原则 + +### 7.1 反馈与状态 + +| 原则 | 规范 | +|------|------| +| **操作反馈** | 成功/失败使用消息提示(如 `ElMessage`);破坏性操作须二次确认(如 `ElMessageBox.confirm`) | +| **加载态** | 列表 `v-loading`;按钮 `:loading`;全页加载用卡片级 loading | +| **空状态** | 表格无数据依赖 EP 默认 empty;需文案时走 i18n | +| **禁用态** | 批量任务进行中禁用与之互斥的行内操作 | +| **乐观更新** | 不做乐观更新;等 API 成功后再刷新列表 | + +### 7.2 导航与层级 + +| 原则 | 规范 | +|------|------| +| **路由即导航** | 侧栏链接与当前路由同步,激活态高亮 | +| **顶栏标题** | 显示当前一级导航名称,非重复页面 H1 | +| **页内标题** | `PageHeader` 的 `title` 为页面 H1,描述可选 | +| **退出登录** | 顶栏右侧 `text` 按钮,清除会话后跳转登录页 | + +### 7.3 表单与对话框 + +| 原则 | 规范 | +|------|------| +| **关闭销毁** | 对话框统一 `destroy-on-close`,避免脏数据残留 | +| **提交防重** | 提交按钮 `loading` 期间禁止重复提交 | +| **取消不保存** | 取消仅关闭弹层,不触发 API | +| **密码字段** | `type="password"` + `show-password` | +| **字段说明** | 用 `.form-hint`,不用 placeholder 替代说明 | + +### 7.4 列表与表格 + +| 原则 | 规范 | +|------|------| +| **主操作位置** | 新建/导入放 `PageHeader#actions`;筛选放 `.card-toolbar` | +| **行内操作** | 链接式小按钮,删除放最右 | +| **分页** | 放 `.card-pager`,右对齐 | +| **刷新** | 提供显式「刷新」按钮;除监控大屏等实时场景外,不依赖隐式自动刷新 | +| **固定列** | 操作列 `fixed="right"` | + +### 7.5 动效与过渡 + +| 原则 | 规范 | +|------|------| +| **克制动效** | 仅使用 EP 默认过渡(对话框、下拉、Message) | +| **禁止花哨动画** | 不加自定义 page transition、弹跳、视差 | +| **侧栏** | 桌面端固定展开,不用折叠动画(移动端待扩展) | + +### 7.6 无障碍与可用性 + +| 原则 | 规范 | +|------|------| +| **对比度** | 正文与背景对比度 ≥ 4.5:1 | +| **焦点** | 依赖 EP 默认 focus ring,不自行移除 | +| **点击目标** | 按钮最小高度遵循 EP(默认 32px,large 40px) | +| **错误信息** | 接口错误映射为用户可读的本地化文案(如限流、权限不足) | + +### 7.7 国际化 + +| 原则 | 规范 | +|------|------| +| **文案** | 所有可见文字走国际化方案(如 i18n),禁止硬编码用户可见字符串 | +| **时间** | 显示格式 `YYYY-MM-DD HH:mm:ss`(ISO 替换 `T` 并截断) | +| **布局弹性** | 按钮组、工具栏 `flex-wrap: wrap` 适配长文案 | + +--- + +## 8. 附录:复刻指南 + +按以下顺序实施,可在新项目中复刻本文档定义的全部视觉(Vue 3 + Element Plus 2.x)。 + +### 8.1 壳层布局完整模板 + +**DOM 层级(class 名称不可改):** + +``` +.layout +├── .sidebar.custom-scrollbar +│ ├── .sidebar-brand +│ │ ├── .brand-icon → 项目自有 Logo(20px) +│ │ └── .brand-name +│ ├── .nav-group-label(可选分组) +│ └── a.nav-item[.active] × N(含 el-icon 16px) +└── .main-area + ├── header.topbar + │ ├── .topbar-title + │ └── 顶栏操作(如 el-button text) + └── main.main-content.custom-scrollbar + └── router-view → 各页面 .page +``` + +```vue + + + + +``` + +### 8.2 登录页完整模板 + +```vue + + + + +``` + +### 8.3 公共组件完整源码 + +```vue + + + + +``` + +```vue + + + + +``` + +```vue + + + + +``` + +品牌 Logo 由各项目自行提供,放入 `.brand-icon`(20px)与 `.login-brand-icon`(24px)容器即可;须使用 `currentColor` 或适配主色底上的 `--primary-foreground`。 + +### 8.4 标准页面模板 + +```vue + +``` + +### 8.5 带 Tab 的列表页 + +```vue + +
+ + + + +
+
+ +
+
+``` + +### 8.6 新页面 Checklist + +1. 将 §8.9 复制为项目全局样式文件,按 §6.0 顺序在 `main.ts` 中引入 +2. 复制 §8.1 壳层布局、§8.3 公共组件(文件名自定) +3. 页面根节点 `
` +4. `PageHeader`(标题 + 描述 + actions) +5. 主内容 `AppCard`;表单页加 `padded` +6. 列表筛选用 `.card-toolbar`,分页用 `.card-pager` +7. 间距与颜色仅使用 CSS 变量与全局类 +8. 在主布局中注册导航项与图标(§5.3) + +### 8.7 反模式 + +| 不要 | 应该 | +|------|------| +| 深色侧栏 | 浅色半透明侧栏 | +| 页面内裸 `el-card` 作主容器 | `AppCard` | +| 无标题直接上表格 | 先 `PageHeader` | +| 硬编码色值 | CSS 变量 | +| 重阴影 | 细边框 | +| 每页自定义 `.toolbar` / `.pager` | `.card-toolbar` / `.card-pager` | +| 表单卡片不加 `padded` | `AppCard padded` | +| `style="margin-top: 12px"` | `.u-mt-3` 等工具类 | +| 非 8px 倍数的随意间距 | 间距 Token | +| 在 EP 样式之前引入全局样式 | 先 `element-plus/dist/index.css`,再引入 §8.9 全局样式 | + +### 8.8 推荐目录结构(示例) + +``` +styles/global.css ← 由本文档 §8.9 复制生成,路径与文件名自定 +components/PageHeader.vue +components/StatCard.vue +components/AppCard.vue +layouts/MainLayout.vue ← 见 §8.1,文件名自定 +views/Login.vue ← 见 §8.2,文件名自定 +``` + +样式变更时,须同时更新本文档 **§6.1–6.14** 与 **§8.9** 两处 CSS,保持内容一致。 + +### 8.9 完整全局样式(一键复制) + +以下为**设计规范定义的完整全局 CSS**,直接复制到项目全局样式文件即可(§6.1–6.14 为分模块对照版,内容须与本节一致)。 + +```css +:root { + --background: #f4f4f5; + --foreground: #18181b; + --card: #ffffff; + --card-foreground: #18181b; + --primary: #0f7a62; + --primary-hover: #0d6b56; + --primary-foreground: #fafafa; + --muted: #f4f4f5; + --muted-foreground: #71717a; + --border: #e4e4e7; + --input: #e4e4e7; + --destructive: #dc2626; + --success: #047857; + --warning: #b45309; + --danger: #dc2626; + --info: #a1a1aa; + --sidebar: rgba(250, 250, 250, 0.85); + --sidebar-foreground: #18181b; + --sidebar-accent: #f4f4f5; + --sidebar-border: #e4e4e7; + --sidebar-width: 15rem; + --radius: 0.5rem; + --space-1: 4px; + --space-2: 8px; + --space-3: 12px; + --space-4: 16px; + --space-5: 20px; + --space-6: 24px; + --space-8: 32px; + + --el-color-primary: #0f7a62; + --el-color-primary-light-3: #4da08c; + --el-color-primary-light-5: #76b8a8; + --el-color-primary-light-7: #a0d0c4; + --el-color-primary-light-8: #b8dcd2; + --el-color-primary-light-9: #d0e8e1; + --el-color-primary-dark-2: #0c624e; + --el-color-success: #047857; + --el-color-warning: #b45309; + --el-color-danger: #dc2626; + --el-color-info: #a1a1aa; + --el-border-radius-base: 0.5rem; + --el-border-color: #e4e4e7; + --el-bg-color-page: #f4f4f5; + --el-text-color-primary: #18181b; + --el-text-color-regular: #3f3f46; + --el-text-color-secondary: #71717a; + --el-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; +} + +* { box-sizing: border-box; } + +html, body, #app { + margin: 0; + padding: 0; + height: 100%; + font-size: 14px; + font-family: var(--el-font-family); + background: var(--background); + color: var(--foreground); +} + +.layout { + display: flex; + height: 100vh; +} + +.sidebar { + width: var(--sidebar-width); + flex-shrink: 0; + background: var(--sidebar); + border-right: 1px solid var(--sidebar-border); + backdrop-filter: blur(8px); + display: flex; + flex-direction: column; + overflow-y: auto; +} + +.sidebar-brand { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-5) var(--space-4); +} + +.brand-icon { + width: 32px; + height: 32px; + border-radius: var(--radius); + background: var(--primary); + color: var(--primary-foreground); + display: flex; + align-items: center; + justify-content: center; +} + +.brand-name { + font-size: 1.125rem; + font-weight: 600; +} + +.nav-group-label { + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted-foreground); + padding: var(--space-4) var(--space-4) var(--space-2); +} + +.nav-item { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-2) var(--space-3); + margin: 0 var(--space-2); + border-radius: var(--radius); + color: var(--muted-foreground); + text-decoration: none; + font-size: 0.875rem; + font-weight: 500; +} + +.nav-item:hover { background: var(--sidebar-accent); } + +.nav-item.active { + background: var(--sidebar-accent); + color: var(--primary); + font-weight: 600; +} + +.main-area { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.topbar { + height: 52px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 var(--space-6); + background: var(--card); + border-bottom: 1px solid var(--border); +} + +.topbar-title { + font-size: 0.875rem; + color: var(--muted-foreground); +} + +.main-content { + flex: 1; + overflow-y: auto; + padding: var(--space-6); +} + +.page { + max-width: 1400px; +} + +.page-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: var(--space-6); + gap: var(--space-4); +} + +.page-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-shrink: 0; + flex-wrap: wrap; +} + +.page-title { + font-size: 1.5rem; + font-weight: 600; + letter-spacing: -0.02em; + margin: 0 0 var(--space-1); +} + +.page-desc { + font-size: 0.875rem; + color: var(--muted-foreground); + margin: 0; +} + +.stat-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.stat-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-5); +} + +.stat-card__label { + font-size: 0.875rem; + color: var(--muted-foreground); + margin-bottom: var(--space-2); +} + +.stat-card__value { + font-size: 1.75rem; + font-weight: 600; +} + +.app-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + margin-bottom: var(--space-4); +} + +.page > .app-card:last-child, +.page > .content-grid:last-child { + margin-bottom: 0; +} + +.app-card__header { + padding: var(--space-4) var(--space-5); + border-bottom: 1px solid var(--border); +} + +.app-card__title { + font-size: 0.9375rem; + font-weight: 600; + margin: 0; +} + +.app-card__body--padded { padding: var(--space-5); } + +.content-grid { + display: grid; + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.content-grid--2-1 { grid-template-columns: 1.4fr 1fr; } +.content-grid--2 { grid-template-columns: 1fr 1fr; } +.content-grid--3 { grid-template-columns: repeat(3, 1fr); } + +.card-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-4) var(--space-5) 0; + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.card-toolbar--desc { + align-items: flex-start; +} + +.card-pager { + padding: var(--space-4) var(--space-5); + display: flex; + justify-content: flex-end; +} + +.card-footer-hint { + padding: 0 var(--space-5) var(--space-3); + margin: 0; +} + +.card-footer-hint + .card-pager { + padding-top: var(--space-3); +} + +.card-inset-block { + margin: 0 var(--space-5) var(--space-4); + padding: var(--space-3); + background: var(--muted); + border-radius: var(--radius); + font-size: 0.875rem; +} + +.tabs-bar { + padding: 0 var(--space-5); + border-bottom: 1px solid var(--border); +} + +.tabs-bar .el-tabs__header { margin-bottom: 0; } + +.page-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.inline-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-wrap: wrap; +} + +.card-header-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--space-4); +} + +.form-hint { + margin-top: 6px; + font-size: 0.75rem; + color: var(--muted-foreground); +} + +.form-hint--flush { margin-top: 0; } + +.u-mt-3 { margin-top: var(--space-3); } +.u-mt-4 { margin-top: var(--space-4); } +.u-mb-3 { margin-bottom: var(--space-3); } +.u-mb-4 { margin-bottom: var(--space-4); } +.u-mb-6 { margin-bottom: var(--space-6); } +.text-center { text-align: center; } +.w-full { width: 100%; } + +code.inline-code { + font-size: 0.75rem; + padding: 0 var(--space-1); + background: var(--muted); + border-radius: var(--radius); +} + +.section-title { + font-size: 0.875rem; + font-weight: 600; + margin-bottom: var(--space-4); +} + +.section-title:not(:first-child) { margin-top: var(--space-6); } + +.login-page { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: var(--background); + padding: var(--space-6); +} + +.login-wrap { max-width: 400px; width: 100%; text-align: center; } + +.login-brand-icon { + width: 48px; + height: 48px; + border-radius: 12px; + background: var(--primary); + color: var(--primary-foreground); + display: inline-flex; + align-items: center; + justify-content: center; + margin-bottom: var(--space-4); +} + +.login-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-8); + margin-top: var(--space-6); + text-align: left; +} + +.status-good { color: #047857; } +.status-warn { color: #b45309; } +.status-bad { color: #dc2626; } +.status-muted { color: var(--muted-foreground); } + +.toolbar-select { width: 120px; } +.toolbar-select--country { width: 160px; } +.toolbar-select--wide { width: 280px; } +.toolbar-input { width: 200px; } +.toolbar-input--wide { width: 260px; } +.toolbar-input--grow { flex: 1; min-width: 200px; } +.table-cell-select { width: 100%; min-width: 200px; } + +.el-form .el-select { width: 100%; } + +.app-card .el-table { + --el-table-header-bg-color: var(--muted); + font-size: 0.875rem; +} + +.app-card .el-table--small .el-table__cell { + padding: var(--space-2) var(--space-3); +} + +.app-card .el-table--small th.el-table__cell { + font-size: 0.75rem; + font-weight: 600; + color: var(--muted-foreground); +} + +.app-card .el-table--small td.el-table__cell { + color: var(--el-text-color-regular); +} + +.app-card .el-table--small .el-table__row { + height: 40px; +} + +.app-card .el-table .el-button.is-link { + padding: 0; + height: auto; +} + +.app-card .el-table .cell { + line-height: 1.4; +} + +.table-scroll--sm { max-height: 320px; } +.table-scroll--md { max-height: 360px; } +.table-scroll--lg { max-height: 480px; } + +.card-toolbar .toolbar-input--grow { + flex: 1; + min-width: 200px; +} + +.card-pager .el-pagination { + font-size: 0.875rem; +} + +.kv-block p { + margin: 0 0 var(--space-2); +} + +.kv-block p:last-child { + margin-bottom: 0; +} + +.kv-block .label { + display: inline-block; + width: 5rem; + color: var(--muted-foreground); +} + +.kv-block code { + font-size: 0.8125rem; +} + +.cell-stack { + display: flex; + flex-direction: column; + gap: var(--space-2); + width: 100%; +} + +.meta-list { + margin: 0; + padding: 0; + list-style: none; + font-size: 0.8125rem; + color: var(--muted-foreground); +} + +.meta-list li { + display: flex; + justify-content: space-between; + gap: var(--space-3); + padding: var(--space-1) 0; +} + +.meta-list__mono { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; +} + +.meta-list__ok { color: var(--el-color-success); } +.meta-list__warn { color: var(--el-color-warning); } + +.chart-box { + height: 280px; +} + +.custom-scrollbar { + scrollbar-width: thin; + scrollbar-color: #e4e4e7 transparent; +} + +.custom-scrollbar::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + background: #e4e4e7; + border-radius: 3px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +@media (max-width: 1024px) { + .stat-grid { grid-template-columns: repeat(2, 1fr); } + .content-grid--2-1, + .content-grid--2, + .content-grid--3 { grid-template-columns: 1fr; } +} + +@media (max-width: 640px) { + .stat-grid { grid-template-columns: 1fr; } + .main-content { padding: var(--space-4); } + .page-header { flex-direction: column; } +} +``` + +--- + +*浅色后台管理系统 UI 设计规范* diff --git a/cmd/prism/geo.go b/cmd/prism/geo.go new file mode 100644 index 0000000..43d83dd --- /dev/null +++ b/cmd/prism/geo.go @@ -0,0 +1,10 @@ +package main + +import ( + "github.com/prism/proxy/internal/geodata" +) + +func applyGeoSettingsOnStart(dataDir string, settings map[string]string) { + geodata.InitHomeDir(dataDir) + geodata.ApplyMihomoURLs(geodata.ConfigFromSettings(settings)) +} diff --git a/cmd/prism/main.go b/cmd/prism/main.go new file mode 100644 index 0000000..5af8619 --- /dev/null +++ b/cmd/prism/main.go @@ -0,0 +1,183 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "net/http" + "os" + "os/signal" + "strconv" + "syscall" + "time" + + "github.com/robfig/cron/v3" + + "github.com/prism/proxy/internal/api" + "github.com/prism/proxy/internal/cache" + "github.com/prism/proxy/internal/configbuilder" + "github.com/prism/proxy/internal/core" + "github.com/prism/proxy/internal/geodata" + "github.com/prism/proxy/internal/health" + applog "github.com/prism/proxy/internal/log" + "github.com/prism/proxy/internal/metrics" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/service" + "github.com/prism/proxy/internal/store" + "github.com/prism/proxy/internal/subscription" + "github.com/prism/proxy/internal/trafficlog" +) + +func main() { + dataDir := flag.String("data", "data", "data directory") + flag.Parse() + + log.Printf("Prism starting, data dir: %s", *dataDir) + + if err := os.MkdirAll(*dataDir, 0o755); err != nil { + log.Fatal(err) + } + + st, err := store.Open(*dataDir) + if err != nil { + log.Fatal(err) + } + defer st.Close() + log.Printf("database ready") + + if n, err := st.BackfillNodeCountries(context.Background()); err != nil { + log.Printf("country backfill: %v", err) + } else if n > 0 { + log.Printf("country tags backfilled for %d nodes", n) + } + + core.InitDataDir(*dataDir) + + c := cache.New() + engine := core.NewEngine() + builder := configbuilder.New(st, *dataDir) + logCollector := applog.NewCollector(st, 5000, true) + subSvc := subscription.NewService(st) + + app := &service.App{ + Store: st, + Cache: c, + Engine: engine, + Builder: builder, + Subscription: subSvc, + Logs: logCollector, + DataDir: *dataDir, + } + + ctx := context.Background() + apiBase, secret, _ := app.MihomoAPIBase(ctx) + hc := health.NewChecker(st, c, apiBase, secret) + mc := metrics.NewCollector(st, c, apiBase, secret) + trafficCollector := trafficlog.NewCollector(st, 5000) + trafficCollector.Start(ctx, mihomoapi.New(apiBase, secret)) + + settings, _ := st.GetSettings(ctx) + applyGeoSettingsOnStart(*dataDir, settings) + if settings["geo_auto_download"] != "false" { + go func() { + log.Printf("checking geo data in background...") + cfg := geodata.ConfigFromSettings(settings) + if updated, err := geodata.Ensure(*dataDir, cfg, false); err != nil { + log.Printf("geo data: %v", err) + logCollector.Add("warn", "prism", "geo data: "+err.Error()) + } else if len(updated) > 0 { + log.Printf("geo data downloaded: %v", updated) + } + }() + } + + logCollector.Add("info", "prism", "Prism started") + log.Printf("loading proxy engine...") + + if err := app.ReloadEngine(ctx); err != nil { + log.Printf("initial engine reload: %v (will retry after config)", err) + } else { + log.Printf("proxy engine ready") + } + go func() { + warmCtx, cancel := context.WithTimeout(context.Background(), 8*time.Second) + defer cancel() + _, _ = mc.Refresh(warmCtx) + app.RefreshEngineStatusAsync() + }() + + srv := api.NewServer(app, hc, mc, subSvc, logCollector, trafficCollector) + router := srv.Router() + + apiPort := settings["api_port"] + if apiPort == "" { + apiPort = "8080" + } + + httpServer := &http.Server{ + Addr: ":" + apiPort, + Handler: router, + } + + cr := cron.New() + _, _ = cr.AddFunc("@every 1m", func() { + _, _ = mc.Refresh(context.Background()) + }) + _, _ = cr.AddFunc("@every 5m", func() { + settings, _ := st.GetSettings(context.Background()) + sec, _ := strconv.Atoi(settings["health_interval_sec"]) + if sec <= 0 { + sec = 300 + } + // health checker runs on its own schedule approximation + _ = hc.TestAll(context.Background(), nil) + }) + _, _ = cr.AddFunc("@every 10m", func() { + syncSubscriptions(app, subSvc) + }) + cr.Start() + + go func() { + log.Printf("Prism API listening on :%s", apiPort) + if err := httpServer.ListenAndServe(); err != nil && err != http.ErrServerClosed { + log.Fatal(err) + } + }() + + sig := make(chan os.Signal, 1) + signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM) + <-sig + + shutdownCtx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + _ = httpServer.Shutdown(shutdownCtx) + cr.Stop() + engine.Shutdown() +} + +func syncSubscriptions(app *service.App, subSvc *subscription.Service) { + ctx := context.Background() + settings, err := app.Store.GetSettings(ctx) + if err != nil || settings["sub_sync_enabled"] != "true" { + return + } + subs, err := app.Store.ListSubscriptions(ctx) + if err != nil { + return + } + now := time.Now() + for _, sub := range subs { + if !sub.Enabled { + continue + } + if sub.LastFetchAt != nil && now.Sub(*sub.LastFetchAt) < time.Duration(sub.IntervalSec)*time.Second { + continue + } + if err := subSvc.FetchAndStore(ctx, sub.ID); err != nil { + app.Logs.Add("error", "subscription", fmt.Sprintf("sync %s failed: %v", sub.Name, err)) + continue + } + } + _ = app.ReloadEngine(ctx) +} diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..08fa77a --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +# Prism 一键部署示例 +# 镜像由 Gitea Actions 构建并发布到 Container Registry +# +# docker compose pull && docker compose up -d + +services: + prism: + image: git.rc707blog.top/rose_cat707/prism:latest + container_name: prism + restart: unless-stopped + ports: + - "8080:8080" # 管理 API / Web UI + - "7890:7890" # HTTP 代理 + - "7891:7891" # SOCKS5 代理 + volumes: + - ./data:/app/data diff --git a/go.env b/go.env new file mode 100644 index 0000000..6465264 --- /dev/null +++ b/go.env @@ -0,0 +1,2 @@ +GOPROXY=https://goproxy.cn,direct +GOSUMDB=sum.golang.google.cn diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..ad2655e --- /dev/null +++ b/go.mod @@ -0,0 +1,179 @@ +module github.com/prism/proxy + +go 1.25.7 + +require ( + github.com/gin-gonic/gin v1.12.0 + github.com/metacubex/mihomo v1.19.27 + github.com/pressly/goose/v3 v3.27.1 + github.com/robfig/cron/v3 v3.0.1 + golang.org/x/crypto v0.53.0 + gopkg.in/yaml.v3 v3.0.1 + modernc.org/sqlite v1.52.0 +) + +require ( + github.com/RyuaNerin/go-krypto v1.3.0 // indirect + github.com/Yawning/aez v0.0.0-20211027044916-e49e68abd344 // indirect + github.com/ajg/form v1.5.1 // indirect + github.com/akutz/memconn v0.1.0 // indirect + github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa // indirect + github.com/andybalholm/brotli v1.2.1 // indirect + github.com/bahlo/generic-list-go v0.2.0 // indirect + github.com/bodgit/plumbing v1.3.0 // indirect + github.com/bodgit/windows v1.0.1 // indirect + github.com/bytedance/gopkg v0.1.3 // indirect + github.com/bytedance/sonic v1.15.0 // indirect + github.com/bytedance/sonic/loader v0.5.0 // indirect + github.com/cloudwego/base64x v0.1.6 // indirect + github.com/coder/websocket v1.8.14 // indirect + github.com/coreos/go-iptables v0.8.0 // indirect + github.com/dlclark/regexp2 v1.12.0 // indirect + github.com/dunglas/httpsfv v1.0.2 // indirect + github.com/dustin/go-humanize v1.0.1 // indirect + github.com/enfein/mieru/v3 v3.33.0 // indirect + github.com/ericlagergren/aegis v0.0.0-20250325060835-cd0defd64358 // indirect + github.com/ericlagergren/polyval v0.0.0-20220411101811-e25bc10ba391 // indirect + github.com/ericlagergren/siv v0.0.0-20220507050439-0b757b3aa5f1 // indirect + github.com/ericlagergren/subtle v0.0.0-20220507045147-890d697da010 // indirect + github.com/fsnotify/fsnotify v1.9.0 // indirect + github.com/fxamacker/cbor/v2 v2.9.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.12 // indirect + github.com/gaukas/godicttls v0.0.4 // indirect + github.com/gin-contrib/sse v1.1.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-playground/validator/v10 v10.30.1 // indirect + github.com/gobwas/httphead v0.1.0 // indirect + github.com/gobwas/pool v0.2.1 // indirect + github.com/gobwas/ws v1.4.0 // indirect + github.com/goccy/go-json v0.10.5 // indirect + github.com/goccy/go-yaml v1.19.2 // indirect + github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 // indirect + github.com/gofrs/uuid/v5 v5.4.0 // indirect + github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect + github.com/golang/snappy v1.0.0 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/huin/goupnp v1.3.0 // indirect + github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905 // indirect + github.com/josharian/native v1.1.0 // indirect + github.com/jsimonetti/rtnetlink v1.4.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.18.5 // indirect + github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/klauspost/reedsolomon v1.12.3 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/mattn/go-isatty v0.0.21 // indirect + github.com/mdlayher/netlink v1.7.2 // indirect + github.com/mdlayher/socket v0.5.1 // indirect + github.com/metacubex/age v0.0.0-20260603010618-28d156b4ea78 // indirect + github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d // indirect + github.com/metacubex/ascon v0.1.0 // indirect + github.com/metacubex/bart v0.26.0 // indirect + github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b // indirect + github.com/metacubex/blake3 v0.1.0 // indirect + github.com/metacubex/chacha v0.1.5 // indirect + github.com/metacubex/chi v0.1.0 // indirect + github.com/metacubex/connect-ip-go v0.0.0-20260412152424-e1625567920a // indirect + github.com/metacubex/cpu v0.1.1 // indirect + github.com/metacubex/edwards25519 v1.2.0 // indirect + github.com/metacubex/fswatch v0.1.1 // indirect + github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 // indirect + github.com/metacubex/gvisor v0.0.0-20251227095601-261ec1326fe8 // indirect + github.com/metacubex/hkdf v0.1.0 // indirect + github.com/metacubex/hpke v0.1.0 // indirect + github.com/metacubex/http v0.1.6 // indirect + github.com/metacubex/jsonv2 v0.0.0-20260518173308-f4597c22f1df // indirect + github.com/metacubex/kcp-go v0.0.0-20260105040817-550693377604 // indirect + github.com/metacubex/mhurl v0.1.0 // indirect + github.com/metacubex/mlkem v0.1.0 // indirect + github.com/metacubex/nftables v0.0.0-20260426003805-208c2c1ba2cb // indirect + github.com/metacubex/qpack v0.6.0 // indirect + github.com/metacubex/quic-go v0.59.1-0.20260520020949-fcd18c7b6ace // indirect + github.com/metacubex/randv2 v0.2.0 // indirect + github.com/metacubex/restls-client-go v0.1.7 // indirect + github.com/metacubex/sevenzip v1.6.4 // indirect + github.com/metacubex/sing v0.5.7 // indirect + github.com/metacubex/sing-mux v0.3.9 // indirect + github.com/metacubex/sing-quic v0.0.0-20260527143057-68e10a6afdc3 // indirect + github.com/metacubex/sing-shadowsocks v0.2.12 // indirect + github.com/metacubex/sing-shadowsocks2 v0.2.7 // indirect + github.com/metacubex/sing-shadowtls v0.0.0-20260517015314-c11c36474edc // indirect + github.com/metacubex/sing-tun v0.4.20 // indirect + github.com/metacubex/sing-vmess v0.2.5 // indirect + github.com/metacubex/sing-wireguard v0.0.0-20260520151737-7e7c7c1b854c // indirect + github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141 // indirect + github.com/metacubex/ssh v0.1.0 // indirect + github.com/metacubex/tailscale v0.0.0-20260520011538-f23132fac4b7 // indirect + github.com/metacubex/tailscale-wireguard-go v0.0.0-20260521124654-e1bf77ef79af // indirect + github.com/metacubex/tfo-go v0.0.0-20251130171125-413e892ac443 // indirect + github.com/metacubex/tls v0.1.6 // indirect + github.com/metacubex/utls v1.8.4 // indirect + github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f // indirect + github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49 // indirect + github.com/mfridman/interpolate v0.0.2 // indirect + github.com/miekg/dns v1.1.63 // indirect + github.com/mitchellh/go-ps v1.0.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/mroth/weightedrand/v2 v2.1.0 // indirect + github.com/ncruces/go-strftime v1.0.0 // indirect + github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 // indirect + github.com/openacid/low v0.1.21 // indirect + github.com/oschwald/maxminddb-golang v1.12.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.4 // indirect + github.com/pierrec/lz4/v4 v4.1.27 // indirect + github.com/pires/go-proxyproto v0.8.0 // indirect + github.com/quic-go/qpack v0.6.0 // indirect + github.com/quic-go/quic-go v0.59.0 // indirect + github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e // indirect + github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect + github.com/safchain/ethtool v0.3.0 // indirect + github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a // indirect + github.com/samber/lo v1.53.0 // indirect + github.com/sethvargo/go-retry v0.3.0 // indirect + github.com/sina-ghaderi/poly1305 v0.0.0-20220724002748-c5926b03988b // indirect + github.com/sina-ghaderi/rabaead v0.0.0-20220730151906-ab6e06b96e8c // indirect + github.com/sina-ghaderi/rabbitio v0.0.0-20220730151941-9ce26f4f872e // indirect + github.com/sirupsen/logrus v1.9.4 // indirect + github.com/stangelandcl/ppmd v0.1.1 // indirect + github.com/tailscale/certstore v0.1.1-0.20260409135935-3638fb84b77d // indirect + github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55 // indirect + github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a // indirect + github.com/tailscale/peercred v0.0.0-20250107143737-35a0c7bd7edc // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/u-root/uio v0.0.0-20230220225925-ffce2a382923 // indirect + github.com/ugorji/go/codec v1.3.1 // indirect + github.com/ulikunitz/xz v0.5.15 // indirect + github.com/vishvananda/netns v0.0.5 // indirect + github.com/vmihailenco/msgpack/v5 v5.4.1 // indirect + github.com/vmihailenco/tagparser/v2 v2.0.0 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/yosida95/uritemplate/v3 v3.0.2 // indirect + gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7 // indirect + gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec // indirect + go.mongodb.org/mongo-driver/v2 v2.5.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + go4.org/mem v0.0.0-20240501181205-ae6ca9944745 // indirect + go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect + golang.org/x/arch v0.22.0 // indirect + golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f // indirect + golang.org/x/mod v0.36.0 // indirect + golang.org/x/net v0.55.0 // indirect + golang.org/x/oauth2 v0.24.0 // indirect + golang.org/x/sync v0.21.0 // indirect + golang.org/x/sys v0.46.0 // indirect + golang.org/x/term v0.44.0 // indirect + golang.org/x/text v0.38.0 // indirect + golang.org/x/time v0.10.0 // indirect + golang.org/x/tools v0.45.0 // indirect + google.golang.org/protobuf v1.36.11 // indirect + modernc.org/libc v1.72.3 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..c56e691 --- /dev/null +++ b/go.sum @@ -0,0 +1,443 @@ +github.com/RyuaNerin/go-krypto v1.3.0 h1:smavTzSMAx8iuVlGb4pEwl9MD2qicqMzuXR2QWp2/Pg= +github.com/RyuaNerin/go-krypto v1.3.0/go.mod h1:9R9TU936laAIqAmjcHo/LsaXYOZlymudOAxjaBf62UM= +github.com/RyuaNerin/testingutil v0.1.0 h1:IYT6JL57RV3U2ml3dLHZsVtPOP6yNK7WUVdzzlpNrss= +github.com/RyuaNerin/testingutil v0.1.0/go.mod h1:yTqj6Ta/ycHMPJHRyO12Mz3VrvTloWOsy23WOZH19AA= +github.com/Yawning/aez v0.0.0-20211027044916-e49e68abd344 h1:cDVUiFo+npB0ZASqnw4q90ylaVAbnYyx0JYqK4YcGok= +github.com/Yawning/aez v0.0.0-20211027044916-e49e68abd344/go.mod h1:9pIqrY6SXNL8vjRQE5Hd/OL5GyK/9MrGUWs87z/eFfk= +github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU= +github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= +github.com/akutz/memconn v0.1.0 h1:NawI0TORU4hcOMsMr11g7vwlCdkYeLKXBcxWu2W/P8A= +github.com/akutz/memconn v0.1.0/go.mod h1:Jo8rI7m0NieZyLI5e2CDlRdRqRRB4S7Xp77ukDjH+Fw= +github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa h1:LHTHcTQiSGT7VVbI0o4wBRNQIgn917usHWOd6VAffYI= +github.com/alexbrainman/sspi v0.0.0-20231016080023-1a75b4708caa/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= +github.com/andybalholm/brotli v1.2.1 h1:R+f5xP285VArJDRgowrfb9DqL18yVK0gKAW/F+eTWro= +github.com/andybalholm/brotli v1.2.1/go.mod h1:rzTDkvFWvIrjDXZHkuS16NPggd91W3kUSvPlQ1pLaKY= +github.com/bahlo/generic-list-go v0.2.0 h1:5sz/EEAK+ls5wF+NeqDpk5+iNdMDXrh3z3nPnH1Wvgk= +github.com/bahlo/generic-list-go v0.2.0/go.mod h1:2KvAjgMlE5NNynlg/5iLrrCCZ2+5xWbdbCW3pNTGyYg= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bodgit/plumbing v1.3.0 h1:pf9Itz1JOQgn7vEOE7v7nlEfBykYqvUYioC61TwWCFU= +github.com/bodgit/plumbing v1.3.0/go.mod h1:JOTb4XiRu5xfnmdnDJo6GmSbSbtSyufrsyZFByMtKEs= +github.com/bodgit/windows v1.0.1 h1:tF7K6KOluPYygXa3Z2594zxlkbKPAOvqr97etrGNIz4= +github.com/bodgit/windows v1.0.1/go.mod h1:a6JLwrB4KrTR5hBpp8FI9/9W9jJfeQ2h4XDXU74ZCdM= +github.com/bytedance/gopkg v0.1.3 h1:TPBSwH8RsouGCBcMBktLt1AymVo2TVsBVCY4b6TnZ/M= +github.com/bytedance/gopkg v0.1.3/go.mod h1:576VvJ+eJgyCzdjS+c4+77QF3p7ubbtiKARP3TxducM= +github.com/bytedance/sonic v1.15.0 h1:/PXeWFaR5ElNcVE84U0dOHjiMHQOwNIx3K4ymzh/uSE= +github.com/bytedance/sonic v1.15.0/go.mod h1:tFkWrPz0/CUCLEF4ri4UkHekCIcdnkqXw9VduqpJh0k= +github.com/bytedance/sonic/loader v0.5.0 h1:gXH3KVnatgY7loH5/TkeVyXPfESoqSBSBEiDd5VjlgE= +github.com/bytedance/sonic/loader v0.5.0/go.mod h1:AR4NYCk5DdzZizZ5djGqQ92eEhCCcdf5x77udYiSJRo= +github.com/cilium/ebpf v0.12.3 h1:8ht6F9MquybnY97at+VDZb3eQQr8ev79RueWeVaEcG4= +github.com/cilium/ebpf v0.12.3/go.mod h1:TctK1ivibvI3znr66ljgi4hqOT8EYQjz1KWBfb1UVgM= +github.com/cloudwego/base64x v0.1.6 h1:t11wG9AECkCDk5fMSoxmufanudBtJ+/HemLstXDLI2M= +github.com/cloudwego/base64x v0.1.6/go.mod h1:OFcloc187FXDaYHvrNIjxSe8ncn0OOM8gEHfghB2IPU= +github.com/coder/websocket v1.8.14 h1:9L0p0iKiNOibykf283eHkKUHHrpG7f65OE3BhhO7v9g= +github.com/coder/websocket v1.8.14/go.mod h1:NX3SzP+inril6yawo5CQXx8+fk145lPDC6pumgx0mVg= +github.com/coreos/go-iptables v0.8.0 h1:MPc2P89IhuVpLI7ETL/2tx3XZ61VeICZjYqDEgNsPRc= +github.com/coreos/go-iptables v0.8.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dlclark/regexp2 v1.12.0 h1:0j4c5qQmnC6XOWNjP3PIXURXN2gWx76rd3KvgdPkCz8= +github.com/dlclark/regexp2 v1.12.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= +github.com/dunglas/httpsfv v1.0.2 h1:iERDp/YAfnojSDJ7PW3dj1AReJz4MrwbECSSE59JWL0= +github.com/dunglas/httpsfv v1.0.2/go.mod h1:zID2mqw9mFsnt7YC3vYQ9/cjq30q41W+1AnDwH8TiMg= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/enfein/mieru/v3 v3.33.0 h1:hv2jK8nqYHwpSG86U2rpZR2I8Aff1/J3ifRmd9NBbFc= +github.com/enfein/mieru/v3 v3.33.0/go.mod h1:zJBUCsi5rxyvHM8fjFf+GLaEl4OEjjBXr1s5F6Qd3hM= +github.com/ericlagergren/aegis v0.0.0-20250325060835-cd0defd64358 h1:kXYqH/sL8dS/FdoFjr12ePjnLPorPo2FsnrHNuXSDyo= +github.com/ericlagergren/aegis v0.0.0-20250325060835-cd0defd64358/go.mod h1:hkIFzoiIPZYxdFOOLyDho59b7SrDfo+w3h+yWdlg45I= +github.com/ericlagergren/polyval v0.0.0-20220411101811-e25bc10ba391 h1:8j2RH289RJplhA6WfdaPqzg1MjH2K8wX5e0uhAxrw2g= +github.com/ericlagergren/polyval v0.0.0-20220411101811-e25bc10ba391/go.mod h1:K2R7GhgxrlJzHw2qiPWsCZXf/kXEJN9PLnQK73Ll0po= +github.com/ericlagergren/saferand v0.0.0-20220206064634-960a4dd2bc5c h1:RUzBDdZ+e/HEe2Nh8lYsduiPAZygUfVXJn0Ncj5sHMg= +github.com/ericlagergren/saferand v0.0.0-20220206064634-960a4dd2bc5c/go.mod h1:ETASDWf/FmEb6Ysrtd1QhjNedUU/ZQxBCRLh60bQ/UI= +github.com/ericlagergren/siv v0.0.0-20220507050439-0b757b3aa5f1 h1:tlDMEdcPRQKBEz5nGDMvswiajqh7k8ogWRlhRwKy5mY= +github.com/ericlagergren/siv v0.0.0-20220507050439-0b757b3aa5f1/go.mod h1:4RfsapbGx2j/vU5xC/5/9qB3kn9Awp1YDiEnN43QrJ4= +github.com/ericlagergren/subtle v0.0.0-20220507045147-890d697da010 h1:fuGucgPk5dN6wzfnxl3D0D3rVLw4v2SbBT9jb4VnxzA= +github.com/ericlagergren/subtle v0.0.0-20220507045147-890d697da010/go.mod h1:JtBcj7sBuTTRupn7c2bFspMDIObMJsVK8TeUvpShPok= +github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k= +github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sapM= +github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= +github.com/gabriel-vasile/mimetype v1.4.12 h1:e9hWvmLYvtp846tLHam2o++qitpguFiYCKbn0w9jyqw= +github.com/gabriel-vasile/mimetype v1.4.12/go.mod h1:d+9Oxyo1wTzWdyVUPMmXFvp4F9tea18J8ufA774AB3s= +github.com/gaukas/godicttls v0.0.4 h1:NlRaXb3J6hAnTmWdsEKb9bcSBD6BvcIjdGdeb0zfXbk= +github.com/gaukas/godicttls v0.0.4/go.mod h1:l6EenT4TLWgTdwslVb4sEMOCf7Bv0JAK67deKr9/NCI= +github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= +github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= +github.com/gin-gonic/gin v1.12.0 h1:b3YAbrZtnf8N//yjKeU2+MQsh2mY5htkZidOM7O0wG8= +github.com/gin-gonic/gin v1.12.0/go.mod h1:VxccKfsSllpKshkBWgVgRniFFAzFb9csfngsqANjnLc= +github.com/github/fakeca v0.1.0 h1:Km/MVOFvclqxPM9dZBC4+QE564nU4gz4iZ0D9pMw28I= +github.com/github/fakeca v0.1.0/go.mod h1:+bormgoGMMuamOscx7N91aOuUST7wdaJ2rNjeohylyo= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.30.1 h1:f3zDSN/zOma+w6+1Wswgd9fLkdwy06ntQJp0BBvFG0w= +github.com/go-playground/validator/v10 v10.30.1/go.mod h1:oSuBIQzuJxL//3MelwSLD5hc2Tu889bF0Idm9Dg26cM= +github.com/gobwas/httphead v0.1.0 h1:exrUm0f4YX0L7EBwZHuCF4GDp8aJfVeBrlLQrs6NqWU= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.1 h1:xfeeEhW7pwmX8nuLVlqbzVc7udMDrwetjEv+TZIz1og= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.4.0 h1:CTaoG1tojrh4ucGPcoJFiAQUAsEWekEWvLy7GsVNqGs= +github.com/gobwas/ws v1.4.0/go.mod h1:G3gNqMNtPppf5XUz7O4shetPpcZ1VJ7zt18dlUeakrc= +github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4= +github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-yaml v1.19.2 h1:PmFC1S6h8ljIz6gMRBopkjP1TVT7xuwrButHID66PoM= +github.com/goccy/go-yaml v1.19.2/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= +github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466 h1:sQspH8M4niEijh3PFscJRLDnkL547IeP7kpPe3uUhEg= +github.com/godbus/dbus/v5 v5.1.1-0.20230522191255-76236955d466/go.mod h1:ZiQxhyQ+bbbfxUKVvjfO498oPYvtYhZzycal3G/NHmU= +github.com/gofrs/uuid/v5 v5.4.0 h1:EfbpCTjqMuGyq5ZJwxqzn3Cbr2d0rUZU7v5ycAk/e/0= +github.com/gofrs/uuid/v5 v5.4.0/go.mod h1:CDOjlDMVAtN56jqyRUZh58JT31Tiw7/oQyEXZV+9bD8= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 h1:f+oWsMOmNPc8JmEHVZIycC7hBoQxHH9pNKQORJNozsQ= +github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8/go.mod h1:wcDNUvekVysuuOpQKo3191zZyTpiI6se1N1ULghS0sw= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= +github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/tink/go v1.6.1 h1:t7JHqO8Ath2w2ig5vjwQYJzhGEZymedQc90lQXUBa4I= +github.com/google/tink/go v1.6.1/go.mod h1:IGW53kTgag+st5yPhKKwJ6u2l+SSp5/v9XF7spovjlY= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/huin/goupnp v1.3.0 h1:UvLUlWDNpoUdYzb2TCn+MuTWtcjXKSza2n6CBdQ0xXc= +github.com/huin/goupnp v1.3.0/go.mod h1:gnGPsThkYa7bFi/KWmEysQRf48l2dvR5bxr2OFckNX8= +github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905 h1:q3OEI9RaN/wwcx+qgGo6ZaoJkCiDYe/gjDLfq7lQQF4= +github.com/insomniacslk/dhcp v0.0.0-20250109001534-8abf58130905/go.mod h1:VvGYjkZoJyKqlmT1yzakUs4mfKMNB0XdODP0+rdml6k= +github.com/josharian/native v1.0.1-0.20221213033349-c1e37c09b531/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= +github.com/josharian/native v1.1.0 h1:uuaP0hAbW7Y4l0ZRQ6C9zfb7Mg1mbFKry/xzDAfmtLA= +github.com/josharian/native v1.1.0/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w= +github.com/jsimonetti/rtnetlink v1.4.0 h1:Z1BF0fRgcETPEa0Kt0MRk3yV5+kF1FWTni6KUFKrq2I= +github.com/jsimonetti/rtnetlink v1.4.0/go.mod h1:5W1jDvWdnthFJ7fxYX1GMK07BUpI4oskfOqvPteYS6E= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/klauspost/compress v1.18.5 h1:/h1gH5Ce+VWNLSWqPzOVn6XBO+vJbCNGvjoaGBFW2IE= +github.com/klauspost/compress v1.18.5/go.mod h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ= +github.com/klauspost/cpuid/v2 v2.3.0 h1:S4CRMLnYUhGeDFDqkGriYKdfoFlDnMtqTiI/sFzhA9Y= +github.com/klauspost/cpuid/v2 v2.3.0/go.mod h1:hqwkgyIinND0mEev00jJYCxPNVRVXFQeu1XKlok6oO0= +github.com/klauspost/reedsolomon v1.12.3 h1:tzUznbfc3OFwJaTebv/QdhnFf2Xvb7gZ24XaHLBPmdc= +github.com/klauspost/reedsolomon v1.12.3/go.mod h1:3K5rXwABAvzGeR01r6pWZieUALXO/Tq7bFKGIb4m4WI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/mattn/go-isatty v0.0.21 h1:xYae+lCNBP7QuW4PUnNG61ffM4hVIfm+zUzDuSzYLGs= +github.com/mattn/go-isatty v0.0.21/go.mod h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4= +github.com/mdlayher/netlink v1.7.2 h1:/UtM3ofJap7Vl4QWCPDGXY8d3GIY2UGSDbK+QWmY8/g= +github.com/mdlayher/netlink v1.7.2/go.mod h1:xraEF7uJbxLhc5fpHL4cPe221LI2bdttWlU+ZGLfQSw= +github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= +github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= +github.com/metacubex/age v0.0.0-20260603010618-28d156b4ea78 h1:LqWr0vb9zDNuQS+jJd4fnRYk/SEI7KJ7TDe/L4WFK48= +github.com/metacubex/age v0.0.0-20260603010618-28d156b4ea78/go.mod h1:BTBG/iVY7rg3qq5WdVCg0GFk58CSvCDSbjy8I7kEx/c= +github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d h1:vAJ0ZT4aO803F1uw2roIA9yH7Sxzox34tVVyye1bz6c= +github.com/metacubex/amneziawg-go v0.0.0-20251104174305-5a0e9f7e361d/go.mod h1:MsM/5czONyXMJ3PRr5DbQ4O/BxzAnJWOIcJdLzW6qHY= +github.com/metacubex/ascon v0.1.0 h1:6ZWxmXYszT1XXtwkf6nxfFhc/OTtQ9R3Vyj1jN32lGM= +github.com/metacubex/ascon v0.1.0/go.mod h1:eV5oim4cVPPdEL8/EYaTZ0iIKARH9pnhAK/fcT5Kacc= +github.com/metacubex/bart v0.26.0 h1:d/bBTvVatfVWGfQbiDpYKI1bXUJgjaabB2KpK1Tnk6w= +github.com/metacubex/bart v0.26.0/go.mod h1:DCcyfP4MC+Zy7sLK7XeGuMw+P5K9mIRsYOBgiE8icsI= +github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b h1:j7dadXD8I2KTmMt8jg1JcaP1ANL3JEObJPdANKcSYPY= +github.com/metacubex/bbolt v0.0.0-20250725135710-010dbbbb7a5b/go.mod h1:+WmP0VJZDkDszvpa83HzfUp6QzARl/IKkMorH4+nODw= +github.com/metacubex/blake3 v0.1.0 h1:KGnjh/56REO7U+cgZA8dnBhxdP7jByrG7hTP+bu6cqY= +github.com/metacubex/blake3 v0.1.0/go.mod h1:CCkLdzFrqf7xmxCdhQFvJsRRV2mwOLDoSPg6vUTB9Uk= +github.com/metacubex/chacha v0.1.5 h1:fKWMb/5c7ZrY8Uoqi79PPFxl+qwR7X/q0OrsAubyX2M= +github.com/metacubex/chacha v0.1.5/go.mod h1:Djn9bPZxLTXbJFSeyo0/qzEzQI+gUSSzttuzZM75GH8= +github.com/metacubex/chi v0.1.0 h1:rjNDyDj50nRpicG43CNkIw4ssiCbmDL8d7wJXKlUCsg= +github.com/metacubex/chi v0.1.0/go.mod h1:zM5u5oMQt8b2DjvDHvzadKrP6B2ztmasL1YHRMbVV+g= +github.com/metacubex/connect-ip-go v0.0.0-20260412152424-e1625567920a h1:Ph5UfTWDsGruZ+v95Df1ycTflQFmpZBFg2LUvj2kx/M= +github.com/metacubex/connect-ip-go v0.0.0-20260412152424-e1625567920a/go.mod h1:xYC8Ik7/rN6no+vTRuWMEziGwm3brA0wNM/zZP9qhOQ= +github.com/metacubex/cpu v0.1.1 h1:rRV5HGmeuGzjiKI3hYbL0dCd0qGwM7VUtk4ICXD06mI= +github.com/metacubex/cpu v0.1.1/go.mod h1:09VEt4dSRLR+bOA8l4w4NDuzGZ8n5dkMv7e8axgEeTU= +github.com/metacubex/edwards25519 v1.2.0 h1:pIQZLBsjQgg3Nl/c86YYFEUAbL5qQRnPq4LrgIw0KK4= +github.com/metacubex/edwards25519 v1.2.0/go.mod h1:NCQF3J/Ki7382FJuokwsywEIIEI/gro/3smyXgQJsx0= +github.com/metacubex/fswatch v0.1.1 h1:jqU7C/v+g0qc2RUFgmAOPoVvfl2BXXUXEumn6oQuxhU= +github.com/metacubex/fswatch v0.1.1/go.mod h1:czrTT7Zlbz7vWft8RQu9Qqh+JoX+Nnb+UabuyN1YsgI= +github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759 h1:cjd4biTvOzK9ubNCCkQ+ldc4YSH/rILn53l/xGBFHHI= +github.com/metacubex/gopacket v1.1.20-0.20230608035415-7e2f98a3e759/go.mod h1:UHOv2xu+RIgLwpXca7TLrXleEd4oR3sPatW6IF8wU88= +github.com/metacubex/gvisor v0.0.0-20251227095601-261ec1326fe8 h1:hUL81H0Ic/XIDkvtn9M1pmfDdfid7JzYQToY4Ps1TvQ= +github.com/metacubex/gvisor v0.0.0-20251227095601-261ec1326fe8/go.mod h1:8LpS0IJW1VmWzUm3ylb0e2SK5QDm5lO/2qwWLZgRpBU= +github.com/metacubex/hkdf v0.1.0 h1:fPA6VzXK8cU1foc/TOmGCDmSa7pZbxlnqhl3RNsthaA= +github.com/metacubex/hkdf v0.1.0/go.mod h1:3seEfds3smgTAXqUGn+tgEJH3uXdsUjOiduG/2EtvZ4= +github.com/metacubex/hpke v0.1.0 h1:gu2jUNhraehWi0P/z5HX2md3d7L1FhPQE6/Q0E9r9xQ= +github.com/metacubex/hpke v0.1.0/go.mod h1:vfDm6gfgrwlXUxKDkWbcE44hXtmc1uxLDm2BcR11b3U= +github.com/metacubex/http v0.1.6 h1:xvXuvXMCMxCWMF5nEJF4yiKvXL+p2atWMzs37e80m1I= +github.com/metacubex/http v0.1.6/go.mod h1:Nxx0zZAo2AhRfanyL+fmmK6ACMtVsfpwIl1aFAik2Eg= +github.com/metacubex/jsonv2 v0.0.0-20260518173308-f4597c22f1df h1:S0vBzqjXok24VopstOgPd1JdgglW9tXehrqvwpQWbQ8= +github.com/metacubex/jsonv2 v0.0.0-20260518173308-f4597c22f1df/go.mod h1:F4sVXat6QjPXkNsKRDyyG3BhSkxPFFnRPEIwmmyCgbg= +github.com/metacubex/kcp-go v0.0.0-20260105040817-550693377604 h1:hJwCVlE3ojViC35MGHB+FBr8TuIf3BUFn2EQ1VIamsI= +github.com/metacubex/kcp-go v0.0.0-20260105040817-550693377604/go.mod h1:lpmN3m269b3V5jFCWtffqBLS4U3QQoIid9ugtO+OhVc= +github.com/metacubex/mhurl v0.1.0 h1:ZdW4Zxe3j3uJ89gNytOazHu6kbHn5owutN/VfXOI8GE= +github.com/metacubex/mhurl v0.1.0/go.mod h1:2qpQImCbXoUs6GwJrjuEXKelPyoimsIXr07eNKZdS00= +github.com/metacubex/mihomo v1.19.27 h1:Yw0sep/yXiC5B/doFAqtLVt9D+NrwHyukcsoa+dU8C4= +github.com/metacubex/mihomo v1.19.27/go.mod h1:OPVY7SkbwJ24yBVBYGCLNRhK4bjIuXiKYyJKa9opv4Y= +github.com/metacubex/mlkem v0.1.0 h1:wFClitonSFcmipzzQvax75beLQU+D7JuC+VK1RzSL8I= +github.com/metacubex/mlkem v0.1.0/go.mod h1:amhaXZVeYNShuy9BILcR7P0gbeo/QLZsnqCdL8U2PDQ= +github.com/metacubex/nftables v0.0.0-20260426003805-208c2c1ba2cb h1:wk6mHYPURSUvWcUv72gNP79oiylFsscBSDPJ6ieV6Iw= +github.com/metacubex/nftables v0.0.0-20260426003805-208c2c1ba2cb/go.mod h1:73ZrCfhdkW4F2E2GAlta3km/S2RHhFNogCMtWZV2anQ= +github.com/metacubex/qpack v0.6.0 h1:YqClGIMOpiRYLjV1qOs483Od08MdPgRnHjt90FuaAKw= +github.com/metacubex/qpack v0.6.0/go.mod h1:lKGSi7Xk94IMvHGOmxS9eIei3bvIqpOAImEBsaOwTkA= +github.com/metacubex/quic-go v0.59.1-0.20260520020949-fcd18c7b6ace h1:KXacx7dp1GYVMgxezwXRt5BMsEbvAYuA6rPFUmdAvcQ= +github.com/metacubex/quic-go v0.59.1-0.20260520020949-fcd18c7b6ace/go.mod h1:2YEQEvFrZ5V76oynMBDTlN+4fdnSHCa2uNJxv3cm1HU= +github.com/metacubex/randv2 v0.2.0 h1:uP38uBvV2SxYfLj53kuvAjbND4RUDfFJjwr4UigMiLs= +github.com/metacubex/randv2 v0.2.0/go.mod h1:kFi2SzrQ5WuneuoLLCMkABtiBu6VRrMrWFqSPyj2cxY= +github.com/metacubex/restls-client-go v0.1.7 h1:eCwiXCTQb5WJu9IlgYvDBA1OgrINv58dEe7hcN5H15k= +github.com/metacubex/restls-client-go v0.1.7/go.mod h1:BN/U52vPw7j8VTSh2vleD/MnmVKCov84mS5VcjVHH4g= +github.com/metacubex/sevenzip v1.6.4 h1:OIL+DeOeSAbKNsjqxcYUMiarRmX6Kaxakb0GT7E9Oik= +github.com/metacubex/sevenzip v1.6.4/go.mod h1:FP3X9bzFKj9wPxifGN9B3w2fIEicMjzKYIGIhnu+1pw= +github.com/metacubex/sing v0.5.7 h1:8OC+fhKFSv/l9ehEhJRaZZAOuthfZo68SteBVLe8QqM= +github.com/metacubex/sing v0.5.7/go.mod h1:ypf0mjwlZm0sKdQSY+yQvmsbWa0hNPtkeqyRMGgoN+w= +github.com/metacubex/sing-mux v0.3.9 h1:/aoBD2+sK2qsXDlNDe3hkR0GZuFDtwIZhOeGUx9W0Yk= +github.com/metacubex/sing-mux v0.3.9/go.mod h1:8bT7ZKT3clRrJjYc/x5CRYibC1TX/bK73a3r3+2E+Fc= +github.com/metacubex/sing-quic v0.0.0-20260527143057-68e10a6afdc3 h1:PnMby5+kZXTl/CFDHfxMbMTaSRD+uMKMsrDYVQyAmX8= +github.com/metacubex/sing-quic v0.0.0-20260527143057-68e10a6afdc3/go.mod h1:6ayFGfzzBE85csgQkM3gf4neFq6s0losHlPRSxY+nuk= +github.com/metacubex/sing-shadowsocks v0.2.12 h1:Wqzo8bYXrK5aWqxu/TjlTnYZzAKtKsaFQBdr6IHFaBE= +github.com/metacubex/sing-shadowsocks v0.2.12/go.mod h1:2e5EIaw0rxKrm1YTRmiMnDulwbGxH9hAFlrwQLQMQkU= +github.com/metacubex/sing-shadowsocks2 v0.2.7 h1:hSuuc0YpsfiqYqt1o+fP4m34BQz4e6wVj3PPBVhor3A= +github.com/metacubex/sing-shadowsocks2 v0.2.7/go.mod h1:vOEbfKC60txi0ca+yUlqEwOGc3Obl6cnSgx9Gf45KjE= +github.com/metacubex/sing-shadowtls v0.0.0-20260517015314-c11c36474edc h1:8wLoFfYQ88iGPL+krQ5tJsI8IAmkFjKpQL2q+y3pvss= +github.com/metacubex/sing-shadowtls v0.0.0-20260517015314-c11c36474edc/go.mod h1:mbfboaXauKJNIHJYxQRa+NJs4JU9NZfkA+I33dS2+9E= +github.com/metacubex/sing-tun v0.4.20 h1:xdupzizRoZKyDzP0l68WAx5Sk4ooiuT1GiWsiJyOGPw= +github.com/metacubex/sing-tun v0.4.20/go.mod h1:g4I/JNplDBhXLF+aQWgFbhNeJPSXQOWS9HvLeNvkgeA= +github.com/metacubex/sing-vmess v0.2.5 h1:m9Zt5I27lB9fmLMZfism9sH2LcnAfShZfwSkf6/KJoE= +github.com/metacubex/sing-vmess v0.2.5/go.mod h1:AwtlzUgf8COe9tRYAKqWZ+leDH7p5U98a0ZUpYehl8Q= +github.com/metacubex/sing-wireguard v0.0.0-20260520151737-7e7c7c1b854c h1:tH9FuQW357zp2xAGzkoZTGpNGMVmEFZov0iV5M2S5ew= +github.com/metacubex/sing-wireguard v0.0.0-20260520151737-7e7c7c1b854c/go.mod h1:eQZDJTx+IH3k4mXqaOJ3VJ9h9ZqOl60F7TLi5wAU51Q= +github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141 h1:DK2l6m2Fc85H2BhiAPgbJygiWhesPlfGmF+9Vw6ARdk= +github.com/metacubex/smux v0.0.0-20260105030934-d0c8756d3141/go.mod h1:/yI4OiGOSn0SURhZdJF3CbtPg3nwK700bG8TZLMBvAg= +github.com/metacubex/ssh v0.1.0 h1:iGfr99qk/eMHzUnQ/0bTxXT8+8SWqLSHBWDHoAhngzw= +github.com/metacubex/ssh v0.1.0/go.mod h1:NUtl0d+/f2cG9ECEpMM8iCVOpmggQlC13oLeDUONDlU= +github.com/metacubex/tailscale v0.0.0-20260520011538-f23132fac4b7 h1:LoJR4NMyNKHeEJoeGDtcsao7sV0NRkzMeV5H/0J0MIE= +github.com/metacubex/tailscale v0.0.0-20260520011538-f23132fac4b7/go.mod h1:MAo3HhE7968rIwmDvYTYE8xCsV4x+hLnkChdXeP3X4c= +github.com/metacubex/tailscale-wireguard-go v0.0.0-20260521124654-e1bf77ef79af h1:c60IbBMUq2h1M2m7+grMJJmBmrObxL8SwvNtm6Ozbwk= +github.com/metacubex/tailscale-wireguard-go v0.0.0-20260521124654-e1bf77ef79af/go.mod h1:i3zLKytWkOnyT1i9OmiLevWvrN5J5HE1+yjE7UYNfcQ= +github.com/metacubex/tfo-go v0.0.0-20251130171125-413e892ac443 h1:H6TnfM12tOoTizYE/qBHH3nEuibIelmHI+BVSxVJr8o= +github.com/metacubex/tfo-go v0.0.0-20251130171125-413e892ac443/go.mod h1:l9oLnLoEXyGZ5RVLsh7QCC5XsouTUyKk4F2nLm2DHLw= +github.com/metacubex/tls v0.1.6 h1:t2ubLneYa4ceyIC++54a57BLqZFA/QYUrhdjLk2GPwo= +github.com/metacubex/tls v0.1.6/go.mod h1:0XeVdL0cBw+8i5Hqy3lVeP9IyD/LFTq02ExvHM6rzEM= +github.com/metacubex/utls v1.8.4 h1:HmL9nUApDdWSkgUyodfwF6hSjtiwCGGdyhaSpEejKpg= +github.com/metacubex/utls v1.8.4/go.mod h1:kncGGVhFaoGn5M3pFe3SXhZCzsbCJayNOH4UEqTKTko= +github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f h1:FGBPRb1zUabhPhDrlKEjQ9lgIwQ6cHL4x8M9lrERhbk= +github.com/metacubex/wireguard-go v0.0.0-20250820062549-a6cecdd7f57f/go.mod h1:oPGcV994OGJedmmxrcK9+ni7jUEMGhR+uVQAdaduIP4= +github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49 h1:lhlqpYHopuTLx9xQt22kSA9HtnyTDmk5XjjQVCGHe2E= +github.com/metacubex/yamux v0.0.0-20250918083631-dd5f17c0be49/go.mod h1:MBeEa9IVBphH7vc3LNtW6ZujVXFizotPo3OEiHQ+TNU= +github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= +github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= +github.com/miekg/dns v1.1.63 h1:8M5aAw6OMZfFXTT7K5V0Eu5YiiL8l7nUAkyN6C9YwaY= +github.com/miekg/dns v1.1.63/go.mod h1:6NGHfjhpmr5lt3XPLuyfDJi5AXbNIPM9PY6H6sF1Nfs= +github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/mroth/weightedrand/v2 v2.1.0 h1:o1ascnB1CIVzsqlfArQQjeMy1U0NcIbBO5rfd5E/OeU= +github.com/mroth/weightedrand/v2 v2.1.0/go.mod h1:f2faGsfOGOwc1p94wzHKKZyTpcJUW7OJ/9U4yfiNAOU= +github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= +github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= +github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 h1:1102pQc2SEPp5+xrS26wEaeb26sZy6k9/ZXlZN+eXE4= +github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7/go.mod h1:UqoUn6cHESlliMhOnKLWr+CBH+e3bazUPvFj1XZwAjs= +github.com/openacid/errors v0.8.1/go.mod h1:GUQEJJOJE3W9skHm8E8Y4phdl2LLEN8iD7c5gcGgdx0= +github.com/openacid/low v0.1.21 h1:Tr2GNu4N/+rGRYdOsEHOE89cxUIaDViZbVmKz29uKGo= +github.com/openacid/low v0.1.21/go.mod h1:q+MsKI6Pz2xsCkzV4BLj7NR5M4EX0sGz5AqotpZDVh0= +github.com/openacid/must v0.1.3/go.mod h1:luPiXCuJlEo3UUFQngVQokV0MPGryeYvtCbQPs3U1+I= +github.com/openacid/testkeys v0.1.6/go.mod h1:MfA7cACzBpbiwekivj8StqX0WIRmqlMsci1c37CA3Do= +github.com/oschwald/maxminddb-golang v1.12.0 h1:9FnTOD0YOhP7DGxGsq4glzpGy5+w7pq50AS6wALUMYs= +github.com/oschwald/maxminddb-golang v1.12.0/go.mod h1:q0Nob5lTCqyQ8WT6FYgS1L7PXKVVbgiymefNwIjPzgY= +github.com/pelletier/go-toml/v2 v2.2.4 h1:mye9XuhQ6gvn5h28+VilKrrPoQVanw5PMw/TB0t5Ec4= +github.com/pelletier/go-toml/v2 v2.2.4/go.mod h1:2gIqNv+qfxSVS7cM2xJQKtLSTLUE9V8t9Stt+h56mCY= +github.com/pierrec/lz4/v4 v4.1.14/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= +github.com/pierrec/lz4/v4 v4.1.27 h1:+PhzhWDrjRj89TH2sw43nE3+4+W8lSxIuQadEHZyjUk= +github.com/pierrec/lz4/v4 v4.1.27/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4= +github.com/pires/go-proxyproto v0.8.0 h1:5unRmEAPbHXHuLjDg01CxJWf91cw3lKHc/0xzKpXEe0= +github.com/pires/go-proxyproto v0.8.0/go.mod h1:iknsfgnH8EkjrMeMyvfKByp9TiBZCKZM0jx2xmKqnVY= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pressly/goose/v3 v3.27.1 h1:6uEvcprBybDmW4hcz3gYujhARhye+GoWKhEWyzD5sh4= +github.com/pressly/goose/v3 v3.27.1/go.mod h1:maruOxsPnIG2yHHyo8UqKWXYKFcH7Q76csUV7+7KYoM= +github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= +github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= +github.com/quic-go/quic-go v0.59.0 h1:OLJkp1Mlm/aS7dpKgTc6cnpynnD2Xg7C1pwL6vy/SAw= +github.com/quic-go/quic-go v0.59.0/go.mod h1:upnsH4Ju1YkqpLXC305eW3yDZ4NfnNbmQRCMWS58IKU= +github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e h1:dCWirM5F3wMY+cmRda/B1BiPsFtmzXqV9b0hLWtVBMs= +github.com/rasky/go-lzo v0.0.0-20200203143853-96a758eda86e/go.mod h1:9leZcVcItj6m9/CfHY5Em/iBrCz7js8LcRQGTKEEv2M= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= +github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= +github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= +github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= +github.com/safchain/ethtool v0.3.0 h1:gimQJpsI6sc1yIqP/y8GYgiXn/NjgvpM0RNoWLVVmP0= +github.com/safchain/ethtool v0.3.0/go.mod h1:SA9BwrgyAqNo7M+uaL6IYbxpm5wk3L7Mm6ocLW+CJUs= +github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a h1:ObwtHN2VpqE0ZNjr6sGeT00J8uU7JF4cNUdb44/Duis= +github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= +github.com/samber/lo v1.53.0 h1:t975lj2py4kJPQ6haz1QMgtId2gtmfktACxIXArw3HM= +github.com/samber/lo v1.53.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= +github.com/sethvargo/go-retry v0.3.0 h1:EEt31A35QhrcRZtrYFDTBg91cqZVnFL2navjDrah2SE= +github.com/sethvargo/go-retry v0.3.0/go.mod h1:mNX17F0C/HguQMyMyJxcnU471gOZGxCLyYaFyAZraas= +github.com/sina-ghaderi/poly1305 v0.0.0-20220724002748-c5926b03988b h1:rXHg9GrUEtWZhEkrykicdND3VPjlVbYiLdX9J7gimS8= +github.com/sina-ghaderi/poly1305 v0.0.0-20220724002748-c5926b03988b/go.mod h1:X7qrxNQViEaAN9LNZOPl9PfvQtp3V3c7LTo0dvGi0fM= +github.com/sina-ghaderi/rabaead v0.0.0-20220730151906-ab6e06b96e8c h1:DjKMC30y6yjG3IxDaeAj3PCoRr+IsO+bzyT+Se2m2Hk= +github.com/sina-ghaderi/rabaead v0.0.0-20220730151906-ab6e06b96e8c/go.mod h1:NV/a66PhhWYVmUMaotlXJ8fIEFB98u+c8l/CQIEFLrU= +github.com/sina-ghaderi/rabbitio v0.0.0-20220730151941-9ce26f4f872e h1:ur8uMsPIFG3i4Gi093BQITvwH9znsz2VUZmnmwHvpIo= +github.com/sina-ghaderi/rabbitio v0.0.0-20220730151941-9ce26f4f872e/go.mod h1:+e5fBW3bpPyo+3uLo513gIUblc03egGjMM0+5GKbzK8= +github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w= +github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= +github.com/stangelandcl/ppmd v0.1.1 h1:c25QazhlWUn5nmR1QOzafKhQxBicAr7GGCKER2aJ8H8= +github.com/stangelandcl/ppmd v0.1.1/go.mod h1:Rrv7M+/2P5jYr/GMLhBl7Ug3uJ1bUiVzr5LbbaV6xgY= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tailscale/certstore v0.1.1-0.20260409135935-3638fb84b77d h1:JcGKBZAL7ePLwOhUdN8qGQZlP5GueEiIZwY7R62pejE= +github.com/tailscale/certstore v0.1.1-0.20260409135935-3638fb84b77d/go.mod h1:XrBNfAFN+pwoWuksbFS9Ccxnopa15zJGgXRFN90l3K4= +github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55 h1:Gzfnfk2TWrk8Jj4P4c1a3CtQyMaTVCznlkLZI++hok4= +github.com/tailscale/go-winio v0.0.0-20231025203758-c4f33415bf55/go.mod h1:4k4QO+dQ3R5FofL+SanAUZe+/QfeK0+OIuwDIRu2vSg= +github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a h1:SJy1Pu0eH1C29XwJucQo73FrleVK6t4kYz4NVhp34Yw= +github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a/go.mod h1:DFSS3NAGHthKo1gTlmEcSBiZrRJXi28rLNd/1udP1c8= +github.com/tailscale/peercred v0.0.0-20250107143737-35a0c7bd7edc h1:24heQPtnFR+yfntqhI3oAu9i27nEojcQ4NuBQOo5ZFA= +github.com/tailscale/peercred v0.0.0-20250107143737-35a0c7bd7edc/go.mod h1:f93CXfllFsO9ZQVq+Zocb1Gp4G5Fz0b0rXHLOzt/Djc= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/u-root/uio v0.0.0-20230220225925-ffce2a382923 h1:tHNk7XK9GkmKUR6Gh8gVBKXc2MVSZ4G/NnWLtzw4gNA= +github.com/u-root/uio v0.0.0-20230220225925-ffce2a382923/go.mod h1:eLL9Nub3yfAho7qB0MzZizFhTU2QkLeoVsWdHtDW264= +github.com/ugorji/go/codec v1.3.1 h1:waO7eEiFDwidsBN6agj1vJQ4AG7lh2yqXyOXqhgQuyY= +github.com/ugorji/go/codec v1.3.1/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4= +github.com/ulikunitz/xz v0.5.15 h1:9DNdB5s+SgV3bQ2ApL10xRc35ck0DuIX/isZvIk+ubY= +github.com/ulikunitz/xz v0.5.15/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= +github.com/vishvananda/netns v0.0.5/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= +github.com/vmihailenco/msgpack/v5 v5.4.1 h1:cQriyiUvjTwOHg8QZaPihLWeRAAVoCpE00IUPn0Bjt8= +github.com/vmihailenco/msgpack/v5 v5.4.1/go.mod h1:GaZTsDaehaPpQVyxrf5mtQlH+pc21PIudVV/E3rRQok= +github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g= +github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae h1:J0GxkO96kL4WF+AIT3M4mfUVinOCPgf2uUWYFUzN0sM= +github.com/xtaci/lossyconn v0.0.0-20190602105132-8df528c0c9ae/go.mod h1:gXtu8J62kEgmN++bm9BVICuT/e8yiLI2KFobd/TRFsE= +github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU= +github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E= +github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= +github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= +gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7 h1:UNrDfkQqiEYzdMlNsVvBYOAJWZjdktqFE9tQh5BT2+4= +gitlab.com/go-extension/aes-ccm v0.0.0-20230221065045-e58665ef23c7/go.mod h1:E+rxHvJG9H6PUdzq9NRG6csuLN3XUx98BfGOVWNYnXs= +gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec h1:FpfFs4EhNehiVfzQttTuxanPIT43FtkkCFypIod8LHo= +gitlab.com/yawning/bsaes.git v0.0.0-20190805113838-0a714cd429ec/go.mod h1:BZ1RAoRPbCxum9Grlv5aeksu2H8BiKehBYooU2LFiOQ= +go.mongodb.org/mongo-driver/v2 v2.5.0 h1:yXUhImUjjAInNcpTcAlPHiT7bIXhshCTL3jVBkF3xaE= +go.mongodb.org/mongo-driver/v2 v2.5.0/go.mod h1:yOI9kBsufol30iFsl1slpdq1I0eHPzybRWdyYUs8K/0= +go.uber.org/mock v0.6.0 h1:hyF9dfmbgIX5EfOdasqLsWD6xqpNZlXblLB/Dbnwv3Y= +go.uber.org/mock v0.6.0/go.mod h1:KiVJ4BqZJaMj4svdfmHM0AUx4NJYO8ZNpPnZn1Z+BBU= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go4.org/mem v0.0.0-20240501181205-ae6ca9944745 h1:Tl++JLUCe4sxGu8cTpDzRLd3tN7US4hOxG5YpKCzkek= +go4.org/mem v0.0.0-20240501181205-ae6ca9944745/go.mod h1:reUoABIJ9ikfM5sgtSF3Wushcza7+WeD01VB9Lirh3g= +go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M= +go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= +golang.org/x/arch v0.22.0 h1:c/Zle32i5ttqRXjdLyyHZESLD/bB90DCU1g9l/0YBDI= +golang.org/x/arch v0.22.0/go.mod h1:dNHoOeKiyja7GTvF9NJS1l3Z2yntpQNzgrjh1cU103A= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto= +golang.org/x/crypto v0.53.0/go.mod h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f h1:W3F4c+6OLc6H2lb//N1q4WpJkhzJCK5J6kUi1NTVXfM= +golang.org/x/exp v0.0.0-20260410095643-746e56fc9e2f/go.mod h1:J1xhfL/vlindoeF/aINzNzt2Bket5bjo9sdOYzOsU80= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4= +golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.55.0 h1:bcvxaJn3e1U6InsFWt1JUq1aSjnRxLzT2rtD2KfkDF8= +golang.org/x/net v0.55.0/go.mod h1:L5U2KuzuOe1lY7Z+aWVIKK6qEeJXnXV9yzGA+WCHJww= +golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE= +golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM= +golang.org/x/sync v0.21.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190804053845-51ab0e2deafa/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220817070843-5a390386f1f2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw= +golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/term v0.44.0 h1:0rLvDRCtNj0gZkyIXhCyOb2OAzEhLVqc4B+hrsBhrmc= +golang.org/x/term v0.44.0/go.mod h1:7ze4MdzUzLXpSAoFP1H0bOI9aXDqveSvatT5vKcFh2Y= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.38.0 h1:sXmwo9DwP3OK9EZ7PqAdaooSGozfl/3a6/xJcbzPRhE= +golang.org/x/text v0.38.0/go.mod h1:YXZt3QhHUKYT53r2lLKFIVi6Ao1jdzrTR/KQ09qyxF4= +golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4= +golang.org/x/time v0.10.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.45.0 h1:18qN3FAooORvApf5XjCXgsuayZOEtXf6JK18I3+ONa8= +golang.org/x/tools v0.45.0/go.mod h1:LuUGqqaXcXMEFEruIVJVm5mgDD8vww/z/SR1gQ4uE/0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +modernc.org/cc/v4 v4.28.2 h1:3tQ0lf2ADtoby2EtSP+J7IE2SHwEJdP8ioR59wx7XpY= +modernc.org/cc/v4 v4.28.2/go.mod h1:OnovgIhbbMXMu1aISnJ0wvVD1KnW+cAUJkIrAWh+kVI= +modernc.org/ccgo/v4 v4.34.0 h1:yRLPFZieg532OT4rp4JFNIVcquwalMX26G95WQDqwCQ= +modernc.org/ccgo/v4 v4.34.0/go.mod h1:AS5WYMyBakQ+fhsHhtP8mWB82KTGPkNNJDGfGQCe0/A= +modernc.org/fileutil v1.4.0 h1:j6ZzNTftVS054gi281TyLjHPp6CPHr2KCxEXjEbD6SM= +modernc.org/fileutil v1.4.0/go.mod h1:EqdKFDxiByqxLk8ozOxObDSfcVOv/54xDs/DUHdvCUU= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/gc/v3 v3.1.2 h1:ZtDCnhonXSZexk/AYsegNRV1lJGgaNZJuKjJSWKyEqo= +modernc.org/gc/v3 v3.1.2/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY= +modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= +modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= +modernc.org/libc v1.72.3 h1:ZnDF4tXn4NBXFutMMQC4vtbTFSXhhKzR73fv0beZEAU= +modernc.org/libc v1.72.3/go.mod h1:dn0dZNnnn1clLyvRxLxYExxiKRZIRENOfqQ8XEeg4Qs= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.2.0 h1:tGyef5ApycA7FSEOMraay9SaTk5zmbx7Tu+cJs4QKZg= +modernc.org/opt v0.2.0/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.52.0 h1:p4dhYh2tXZCiyaqHwRVJDjIGKWyXayiQpThxgDzJaxo= +modernc.org/sqlite v1.52.0/go.mod h1:tcNzv5p84E0skkmJn038y+hWJbLQXQqEnQfeh5r2JLM= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= +software.sslmate.com/src/go-pkcs12 v0.2.1 h1:tbT1jjaeFOF230tzOIRJ6U5S1jNqpsSyNjzDd58H3J8= +software.sslmate.com/src/go-pkcs12 v0.2.1/go.mod h1:Qiz0EyvDRJjjxGyUQa2cCNZn/wMyzrRJ/qcDXOQazLI= diff --git a/internal/api/auth_token.go b/internal/api/auth_token.go new file mode 100644 index 0000000..cc40bc8 --- /dev/null +++ b/internal/api/auth_token.go @@ -0,0 +1,35 @@ +package api + +import ( + "crypto/hmac" + "crypto/sha256" + "encoding/hex" + "fmt" + "strconv" + "strings" + "time" +) + +func issueToken(secret string, ttl time.Duration) string { + exp := time.Now().Add(ttl).Unix() + return fmt.Sprintf("%d.%s", exp, signToken(secret, exp)) +} + +func verifyToken(secret, token string) bool { + parts := strings.SplitN(token, ".", 2) + if len(parts) != 2 { + return false + } + exp, err := strconv.ParseInt(parts[0], 10, 64) + if err != nil || time.Now().Unix() > exp { + return false + } + expected := signToken(secret, exp) + return hmac.Equal([]byte(parts[1]), []byte(expected)) +} + +func signToken(secret string, exp int64) string { + mac := hmac.New(sha256.New, []byte(secret)) + _, _ = mac.Write([]byte(strconv.FormatInt(exp, 10))) + return hex.EncodeToString(mac.Sum(nil)) +} diff --git a/internal/api/auth_token_test.go b/internal/api/auth_token_test.go new file mode 100644 index 0000000..4fce79b --- /dev/null +++ b/internal/api/auth_token_test.go @@ -0,0 +1,35 @@ +package api + +import ( + "fmt" + "testing" + "time" +) + +func TestIssueAndVerifyToken(t *testing.T) { + secret := "test-secret" + token := issueToken(secret, time.Hour) + if !verifyToken(secret, token) { + t.Fatal("expected valid token") + } +} + +func TestVerifyTokenWrongSecret(t *testing.T) { + token := issueToken("a", time.Hour) + if verifyToken("b", token) { + t.Fatal("expected invalid token for wrong secret") + } +} + +func TestVerifyTokenExpired(t *testing.T) { + secret := "test-secret" + exp := time.Now().Add(-time.Hour).Unix() + token := fmtToken(secret, exp) + if verifyToken(secret, token) { + t.Fatal("expected expired token to be rejected") + } +} + +func fmtToken(secret string, exp int64) string { + return fmt.Sprintf("%d.%s", exp, signToken(secret, exp)) +} diff --git a/internal/api/client_ip.go b/internal/api/client_ip.go new file mode 100644 index 0000000..0fa3e6f --- /dev/null +++ b/internal/api/client_ip.go @@ -0,0 +1,23 @@ +package api + +import ( + "net" + "strings" + + "github.com/gin-gonic/gin" +) + +func clientIP(c *gin.Context) string { + if xff := c.GetHeader("X-Forwarded-For"); xff != "" { + parts := strings.Split(xff, ",") + return strings.TrimSpace(parts[0]) + } + if xri := strings.TrimSpace(c.GetHeader("X-Real-IP")); xri != "" { + return xri + } + host, _, err := net.SplitHostPort(c.Request.RemoteAddr) + if err != nil { + return c.Request.RemoteAddr + } + return host +} diff --git a/internal/api/handlers.go b/internal/api/handlers.go new file mode 100644 index 0000000..33a93bc --- /dev/null +++ b/internal/api/handlers.go @@ -0,0 +1,498 @@ +package api + +import ( + "context" + "net/http" + "strconv" + "time" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/auth" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/health" + "github.com/prism/proxy/internal/metrics" + applog "github.com/prism/proxy/internal/log" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/service" + "github.com/prism/proxy/internal/store" + "github.com/prism/proxy/internal/subscription" + "github.com/prism/proxy/internal/trafficlog" +) + +type Server struct { + app *service.App + health *health.Checker + metrics *metrics.Collector + subscription *subscription.Service + logs *applog.Collector + traffic *trafficlog.Collector + loginLimiter *auth.LoginLimiter +} + +func NewServer(app *service.App, hc *health.Checker, mc *metrics.Collector, sub *subscription.Service, logs *applog.Collector, traffic *trafficlog.Collector) *Server { + return &Server{ + app: app, + health: hc, + metrics: mc, + subscription: sub, + logs: logs, + traffic: traffic, + loginLimiter: auth.NewLoginLimiter(app.Store), + } +} + +func (s *Server) syncMihomoClient(ctx context.Context) { + base, secret, err := s.app.MihomoAPIBase(ctx) + if err != nil { + return + } + s.health.UpdateAPIBase(base, secret) + s.metrics.UpdateAPIBase(base, secret) + if s.traffic != nil { + s.traffic.UpdateClient(mihomoapi.New(base, secret)) + } +} + +func (s *Server) Router() *gin.Engine { + gin.SetMode(gin.ReleaseMode) + r := gin.New() + r.Use(gin.Recovery(), s.corsMiddleware()) + + r.GET("/api/v1/openapi.json", s.serveOpenAPIJSON) + r.GET("/api/v1/openapi.yaml", s.serveOpenAPIYAML) + r.GET("/api/docs", s.serveOpenAPIDocs) + + api := r.Group("/api/v1") + api.POST("/auth/login", s.login) + api.GET("/auth/status", s.authStatus) + + protected := api.Group("") + protected.Use(s.authMiddleware()) + { + protected.GET("/dashboard", s.dashboard) + protected.GET("/connections", s.connections) + + protected.GET("/subscriptions", s.listSubscriptions) + protected.POST("/subscriptions", s.createSubscription) + protected.PUT("/subscriptions/:id", s.updateSubscription) + protected.DELETE("/subscriptions/:id", s.deleteSubscription) + protected.POST("/subscriptions/:id/refresh", s.refreshSubscription) + + protected.GET("/proxies", s.listProxies) + protected.POST("/proxies", s.createProxy) + protected.PUT("/proxies/:id", s.updateProxy) + protected.DELETE("/proxies/:id", s.deleteProxy) + protected.POST("/proxies/:id/test", s.testProxy) + protected.POST("/proxies/test-all", s.testAllProxies) + protected.POST("/proxies/rebuild-countries", s.rebuildCountries) + protected.GET("/proxies/export", s.exportProxies) + protected.POST("/proxies/import", s.importProxies) + protected.GET("/countries", s.listCountries) + + protected.GET("/outbound", s.outboundOverview) + protected.PUT("/outbound/groups/:name", s.selectOutboundGroup) + protected.PUT("/outbound/default-policy", s.setDefaultPolicy) + + protected.GET("/traffic-logs", s.listTrafficLogs) + + protected.GET("/rules", s.listRules) + protected.POST("/rules", s.createRule) + protected.PUT("/rules/:id", s.updateRule) + protected.DELETE("/rules/:id", s.deleteRule) + protected.GET("/rules/merged", s.mergedRules) + protected.POST("/rules/test", s.testRule) + protected.GET("/rules/export", s.exportRules) + protected.POST("/rules/import", s.importRules) + + protected.GET("/settings", s.getSettings) + protected.PUT("/settings", s.putSettings) + + protected.GET("/api-keys", s.listAPIKeys) + protected.POST("/api-keys", s.createAPIKey) + protected.DELETE("/api-keys/:id", s.deleteAPIKey) + + protected.GET("/logs", s.listLogs) + protected.GET("/audit-logs", s.listAuditLogs) + + protected.GET("/system/status", s.systemStatus) + protected.POST("/system/reload", s.systemReload) + protected.GET("/system/geo", s.geoStatus) + protected.POST("/system/geo/update", s.geoUpdate) + } + + r.NoRoute(s.serveSPA) + return r +} + +func (s *Server) corsMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + c.Header("Access-Control-Allow-Origin", "*") + c.Header("Access-Control-Allow-Headers", "Authorization, Content-Type, X-API-Key") + c.Header("Access-Control-Allow-Methods", "GET,POST,PUT,DELETE,OPTIONS") + if c.Request.Method == http.MethodOptions { + c.AbortWithStatus(204) + return + } + c.Next() + } +} + +func (s *Server) dashboard(c *gin.Context) { + ctx := c.Request.Context() + s.metrics.RefreshAsync(10 * time.Second) + s.app.RefreshEngineStatusAsync() + history, _ := s.app.Store.ListTrafficSnapshots(ctx, 60) + conns := s.metrics.CachedConnections() + policyGroups, _ := s.app.PolicyGroupRuntimes(ctx) + names, _ := s.app.ProxyDisplayNames(ctx) + liveDomainsAll, liveNodesAll := metrics.AggregateConnections(conns, policyGroups) + liveDomainsAll = metrics.ApplyDomainLabels(liveDomainsAll, names) + liveNodesAll = metrics.ApplyTrafficLabels(liveNodesAll, names) + + liveDomainLimit, liveDomainOffset := parseLimitOffset(c.DefaultQuery("live_domain_limit", "50"), c.DefaultQuery("live_domain_offset", "0")) + liveNodeLimit, liveNodeOffset := parseLimitOffset(c.DefaultQuery("live_node_limit", "50"), c.DefaultQuery("live_node_offset", "0")) + periodDomainLimit, periodDomainOffset := parseLimitOffset(c.DefaultQuery("period_domain_limit", "50"), c.DefaultQuery("period_domain_offset", "0")) + periodNodeLimit, periodNodeOffset := parseLimitOffset(c.DefaultQuery("period_node_limit", "50"), c.DefaultQuery("period_node_offset", "0")) + + liveDomains, liveDomainTotal := paginateSlice(liveDomainsAll, liveDomainLimit, liveDomainOffset) + liveNodes, liveNodeTotal := paginateSlice(liveNodesAll, liveNodeLimit, liveNodeOffset) + + hostNodeTotals, _ := s.app.Store.AggregateTrafficByHostNode(ctx, 24, periodDomainLimit, periodDomainOffset) + nodeTotals, _ := s.app.Store.AggregateTrafficByNode(ctx, 24, periodNodeLimit, periodNodeOffset) + periodDomainTotal, _ := s.app.Store.CountAggregateTrafficByHostNode(ctx, 24) + periodNodeTotal, _ := s.app.Store.CountAggregateTrafficByNode(ctx, 24) + periodDomains := metrics.TrafficHostNodeAggToItems(hostNodeTotals, names) + periodNodes := metrics.TrafficAggToItems(nodeTotals, names) + + c.JSON(http.StatusOK, gin.H{ + "snapshot": s.metrics.Snapshot(ctx), + "history": history, + "connections": conns, + "engine_running": s.app.EngineStatusCached(), + "live_domains": liveDomains, + "live_nodes": liveNodes, + "live_domain_total": liveDomainTotal, + "live_node_total": liveNodeTotal, + "period_domains": periodDomains, + "period_nodes": periodNodes, + "period_domain_total": periodDomainTotal, + "period_node_total": periodNodeTotal, + "period_hours": 24, + }) +} + +func (s *Server) connections(c *gin.Context) { + conns, err := s.metrics.GetConnectionsCached(8 * time.Second) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"connections": conns}) +} + +func (s *Server) listSubscriptions(c *gin.Context) { + items, err := s.app.Store.ListSubscriptions(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items}) +} + +func (s *Server) createSubscription(c *gin.Context) { + var sub store.Subscription + if err := c.ShouldBindJSON(&sub); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if sub.Type == "" { + sub.Type = "auto" + } + if sub.IntervalSec <= 0 { + sub.IntervalSec = 3600 + } + sub.Enabled = true + if err := s.app.Store.CreateSubscription(c.Request.Context(), &sub); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.Store.AddAuditLog(c.Request.Context(), "create", "subscription", sub.Name) + go func(id int64) { + ctx := context.Background() + _ = s.subscription.FetchAndStore(ctx, id) + _ = s.app.ReloadEngine(ctx) + }(sub.ID) + c.JSON(http.StatusCreated, sub) +} + +func (s *Server) updateSubscription(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + sub, err := s.app.Store.GetSubscription(c.Request.Context(), id) + if err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "not found"}) + return + } + if err := c.ShouldBindJSON(sub); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + sub.ID = id + if err := s.app.Store.UpdateSubscription(c.Request.Context(), sub); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, sub) +} + +func (s *Server) deleteSubscription(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + if err := s.app.Store.DeleteSubscription(c.Request.Context(), id); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) refreshSubscription(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + if err := s.subscription.FetchAndStore(c.Request.Context(), id); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + if err := s.app.ReloadEngine(c.Request.Context()); err != nil { + c.JSON(http.StatusOK, gin.H{"ok": true, "warning": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) listProxies(c *gin.Context) { + source := c.Query("source") + country := c.Query("country") + var subID *int64 + if v := c.Query("subscription_id"); v != "" { + id, _ := strconv.ParseInt(v, 10, 64) + subID = &id + } + limit, offset := parseLimitOffset(c.DefaultQuery("limit", "50"), c.DefaultQuery("offset", "0")) + items, err := s.app.Store.ListProxyNodesPage(c.Request.Context(), source, subID, country, limit, offset) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + total, err := s.app.Store.CountProxyNodes(c.Request.Context(), source, subID, country) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items, "total": total}) +} + +type proxyReq struct { + Name string `json:"name"` + Type string `json:"type"` + RawConfig string `json:"raw_config"` + Enabled *bool `json:"enabled"` +} + +func (s *Server) createProxy(c *gin.Context) { + var req proxyReq + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + n := store.ProxyNode{ + Name: req.Name, + RuntimeName: store.RuntimeName("manual", 0, req.Name), + Type: req.Type, + RawConfig: req.RawConfig, + Source: "manual", + Country: country.Detect(req.Name), + Enabled: true, + } + if req.Enabled != nil { + n.Enabled = *req.Enabled + } + if err := s.app.Store.CreateProxyNode(c.Request.Context(), &n); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusCreated, n) +} + +func (s *Server) updateProxy(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + n, err := s.app.Store.GetProxyNode(c.Request.Context(), id) + if err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "not found"}) + return + } + var req proxyReq + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if req.Name != "" { + n.Name = req.Name + n.Country = country.Detect(req.Name) + } + if req.Type != "" { + n.Type = req.Type + } + if req.RawConfig != "" { + n.RawConfig = req.RawConfig + } + if req.Enabled != nil { + n.Enabled = *req.Enabled + } + if err := s.app.Store.UpdateProxyNode(c.Request.Context(), n); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, n) +} + +func (s *Server) deleteProxy(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + n, err := s.app.Store.GetProxyNode(c.Request.Context(), id) + if err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "not found"}) + return + } + if n.Source != "manual" { + c.JSON(http.StatusBadRequest, gin.H{"error": "only manual proxies can be deleted"}) + return + } + if err := s.app.Store.DeleteProxyNode(c.Request.Context(), id); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) testProxy(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + latency, err := s.health.TestNode(c.Request.Context(), id, s.app.ReloadEngine) + if err != nil { + c.JSON(http.StatusOK, gin.H{"latency_ms": -1, "alive": false, "error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"latency_ms": latency, "alive": latency >= 0}) +} + +func (s *Server) testAllProxies(c *gin.Context) { + if err := s.health.TestAll(c.Request.Context(), s.app.ReloadEngine); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) listRules(c *gin.Context) { + source := c.DefaultQuery("source", "manual") + items, err := s.app.Store.ListRules(c.Request.Context(), source) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items}) +} + +func (s *Server) createRule(c *gin.Context) { + var r store.Rule + if err := c.ShouldBindJSON(&r); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + r.Source = "manual" + r.Enabled = true + if r.Priority <= 0 { + p, _ := s.app.Store.NextManualRulePriority(c.Request.Context()) + r.Priority = p + } + if err := s.app.Store.CreateRule(c.Request.Context(), &r); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusCreated, r) +} + +func (s *Server) updateRule(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + r, err := s.app.Store.GetRule(c.Request.Context(), id) + if err != nil { + c.JSON(http.StatusNotFound, gin.H{"error": "not found"}) + return + } + if err := c.ShouldBindJSON(r); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + r.ID = id + if err := s.app.Store.UpdateRule(c.Request.Context(), r); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, r) +} + +func (s *Server) deleteRule(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + if err := s.app.Store.DeleteRule(c.Request.Context(), id); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) listLogs(c *gin.Context) { + level := c.Query("level") + keyword := c.Query("keyword") + limit, offset := parseLimitOffset(c.DefaultQuery("limit", "50"), c.DefaultQuery("offset", "0")) + items, total, err := s.app.Store.ListRequestLogs(c.Request.Context(), level, keyword, limit, offset) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items, "total": total}) +} + +func (s *Server) listAuditLogs(c *gin.Context) { + limit, offset := parseLimitOffset(c.DefaultQuery("limit", "50"), c.DefaultQuery("offset", "0")) + items, err := s.app.Store.ListAuditLogs(c.Request.Context(), limit, offset) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + total, err := s.app.Store.CountAuditLogs(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items, "total": total}) +} + +func (s *Server) systemStatus(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "engine_running": s.app.EngineReachable(c.Request.Context()), + "has_config": len(s.app.Cache.GetLastYAML()) > 0, + "last_reload_error": s.app.LastReloadError, + }) +} + +func (s *Server) systemReload(c *gin.Context) { + if err := s.app.ReloadEngine(c.Request.Context()); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"ok": true}) +} diff --git a/internal/api/handlers_apikeys.go b/internal/api/handlers_apikeys.go new file mode 100644 index 0000000..4bbfdb4 --- /dev/null +++ b/internal/api/handlers_apikeys.go @@ -0,0 +1,96 @@ +package api + +import ( + "net/http" + "strconv" + "strings" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/auth" +) + +type createAPIKeyReq struct { + Name string `json:"name"` +} + +func (s *Server) listAPIKeys(c *gin.Context) { + items, err := s.app.Store.ListAPIKeys(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items}) +} + +func (s *Server) createAPIKey(c *gin.Context) { + var req createAPIKeyReq + _ = c.ShouldBindJSON(&req) + name := strings.TrimSpace(req.Name) + if name == "" { + name = "default" + } + + raw, err := auth.GenerateAPIKey() + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + item, err := s.app.Store.CreateAPIKey( + c.Request.Context(), + name, + auth.APIKeyDisplayPrefix(raw), + auth.HashAPIKey(raw), + ) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.Store.AddAuditLog(c.Request.Context(), "create", "api_key", name) + + c.JSON(http.StatusCreated, gin.H{ + "id": item.ID, + "name": item.Name, + "key": raw, + "key_prefix": item.KeyPrefix, + "created_at": item.CreatedAt, + }) +} + +func (s *Server) deleteAPIKey(c *gin.Context) { + id, _ := strconv.ParseInt(c.Param("id"), 10, 64) + if err := s.app.Store.DeleteAPIKey(c.Request.Context(), id); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.Store.AddAuditLog(c.Request.Context(), "delete", "api_key", strconv.FormatInt(id, 10)) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func (s *Server) authorizeRequest(c *gin.Context, settings map[string]string) bool { + if settings["auth_enabled"] != "true" { + return true + } + + ctx := c.Request.Context() + if key := strings.TrimSpace(c.GetHeader("X-API-Key")); key != "" { + if ok, _ := s.app.Store.VerifyAPIKey(ctx, auth.HashAPIKey(key)); ok { + return true + } + } + + header := c.GetHeader("Authorization") + if !strings.HasPrefix(header, "Bearer ") { + return false + } + token := strings.TrimSpace(strings.TrimPrefix(header, "Bearer ")) + if token == "" { + return false + } + if auth.IsAPIKeyFormat(token) { + ok, _ := s.app.Store.VerifyAPIKey(ctx, auth.HashAPIKey(token)) + return ok + } + return verifyToken(settings["admin_password"], token) +} diff --git a/internal/api/handlers_apikeys_test.go b/internal/api/handlers_apikeys_test.go new file mode 100644 index 0000000..21dd979 --- /dev/null +++ b/internal/api/handlers_apikeys_test.go @@ -0,0 +1,66 @@ +package api + +import ( + "context" + "net/http/httptest" + "path/filepath" + "testing" + + "github.com/gin-gonic/gin" + "github.com/prism/proxy/internal/auth" + "github.com/prism/proxy/internal/service" + "github.com/prism/proxy/internal/store" +) + +func TestAuthorizeRequestWithAPIKey(t *testing.T) { + gin.SetMode(gin.TestMode) + dir := t.TempDir() + st, err := store.Open(filepath.Join(dir, "test.db")) + if err != nil { + t.Fatal(err) + } + t.Cleanup(func() { st.Close() }) + + ctx := context.Background() + if err := st.SetSettings(ctx, map[string]string{ + "auth_enabled": "true", + "admin_password": "secret", + }); err != nil { + t.Fatal(err) + } + + raw, err := auth.GenerateAPIKey() + if err != nil { + t.Fatal(err) + } + if _, err := st.CreateAPIKey(ctx, "test", auth.APIKeyDisplayPrefix(raw), auth.HashAPIKey(raw)); err != nil { + t.Fatal(err) + } + + s := &Server{app: &service.App{Store: st}} + settings, _ := st.GetSettings(ctx) + + w := httptest.NewRecorder() + c, _ := gin.CreateTestContext(w) + c.Request = httptest.NewRequest("GET", "/api/v1/dashboard", nil) + c.Request.Header.Set("X-API-Key", raw) + if !s.authorizeRequest(c, settings) { + t.Fatal("expected api key to authorize") + } + + w2 := httptest.NewRecorder() + c2, _ := gin.CreateTestContext(w2) + c2.Request = httptest.NewRequest("GET", "/api/v1/dashboard", nil) + c2.Request.Header.Set("Authorization", "Bearer "+raw) + if !s.authorizeRequest(c2, settings) { + t.Fatal("expected bearer api key to authorize") + } + + w3 := httptest.NewRecorder() + c3, _ := gin.CreateTestContext(w3) + c3.Request = httptest.NewRequest("GET", "/api/v1/dashboard", nil) + c3.Request.Header.Set("Authorization", "Bearer prism_invalid") + if s.authorizeRequest(c3, settings) { + t.Fatal("expected invalid key to fail") + } +} diff --git a/internal/api/handlers_auth.go b/internal/api/handlers_auth.go new file mode 100644 index 0000000..5f642b9 --- /dev/null +++ b/internal/api/handlers_auth.go @@ -0,0 +1,116 @@ +package api + +import ( + "math/rand" + "net/http" + "strings" + "time" + + "github.com/gin-gonic/gin" + "golang.org/x/crypto/bcrypt" + + "github.com/prism/proxy/internal/auth" +) + +type loginReq struct { + Password string `json:"password"` +} + +func (s *Server) authMiddleware() gin.HandlerFunc { + return func(c *gin.Context) { + settings, err := s.app.Store.GetSettings(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + c.Abort() + return + } + if !s.authorizeRequest(c, settings) { + c.JSON(http.StatusUnauthorized, gin.H{"error": "unauthorized"}) + c.Abort() + return + } + c.Next() + } +} + +func (s *Server) authStatus(c *gin.Context) { + settings, err := s.app.Store.GetSettings(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"enabled": settings["auth_enabled"] == "true"}) +} + +func (s *Server) login(c *gin.Context) { + var req loginReq + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + ctx := c.Request.Context() + settings, err := s.app.Store.GetSettings(ctx) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + ip := clientIP(c) + cfg := auth.ParseLoginConfig(settings) + check, err := s.loginLimiter.Check(ctx, ip, cfg) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + if !check.Allowed { + writeLoginLocked(c, check.RetryAfter) + return + } + + hash := settings["admin_password"] + if !checkPassword(req.Password, hash) { + time.Sleep(loginFailureDelay()) + result, err := s.loginLimiter.RecordFailure(ctx, ip, cfg) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + if result.Locked { + writeLoginLocked(c, result.RetryAfter) + return + } + c.JSON(http.StatusUnauthorized, gin.H{ + "error": "invalid password", + "remaining": result.Remaining, + }) + return + } + if err := s.loginLimiter.RecordSuccess(ctx, ip); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + token := issueToken(hash, 24*time.Hour) + c.JSON(http.StatusOK, gin.H{"token": token}) +} + +func writeLoginLocked(c *gin.Context, retryAfter time.Duration) { + secs := int(retryAfter.Seconds()) + if secs < 1 { + secs = 1 + } + c.JSON(http.StatusTooManyRequests, gin.H{ + "error": "too many login attempts", + "retry_after": secs, + }) +} + +func loginFailureDelay() time.Duration { + return 300*time.Millisecond + time.Duration(rand.Intn(200))*time.Millisecond +} + +func checkPassword(password, stored string) bool { + if strings.HasPrefix(stored, "$2a$") { + return bcrypt.CompareHashAndPassword([]byte(stored), []byte(password)) == nil + } + return password == stored +} diff --git a/internal/api/handlers_country.go b/internal/api/handlers_country.go new file mode 100644 index 0000000..43b1283 --- /dev/null +++ b/internal/api/handlers_country.go @@ -0,0 +1,26 @@ +package api + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +func (s *Server) listCountries(c *gin.Context) { + items, err := s.app.Store.ListCountryStats(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items}) +} + +func (s *Server) rebuildCountries(c *gin.Context) { + n, err := s.app.Store.RebuildAllNodeCountries(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"updated": n}) +} diff --git a/internal/api/handlers_geo.go b/internal/api/handlers_geo.go new file mode 100644 index 0000000..290d212 --- /dev/null +++ b/internal/api/handlers_geo.go @@ -0,0 +1,79 @@ +package api + +import ( + "net/http" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/geodata" +) + +func (s *Server) geoStatus(c *gin.Context) { + ctx := c.Request.Context() + settings, err := s.app.Store.GetSettings(ctx) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + cfg := geodata.ConfigFromSettings(settings) + c.JSON(http.StatusOK, gin.H{ + "ready": geodata.Ready(s.app.DataDir), + "auto_download": settings["geo_auto_download"] != "false", + "files": geodata.Status(s.app.DataDir, cfg), + "default_urls": geodata.DefaultConfig(), + }) +} + +type geoUpdateReq struct { + Force bool `json:"force"` +} + +func (s *Server) geoUpdate(c *gin.Context) { + var req geoUpdateReq + _ = c.ShouldBindJSON(&req) + + ctx := c.Request.Context() + settings, err := s.app.Store.GetSettings(ctx) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + cfg := geodata.ConfigFromSettings(settings) + geodata.ApplyMihomoURLs(cfg) + + updated, err := geodata.Ensure(s.app.DataDir, cfg, req.Force) + if err != nil { + c.JSON(http.StatusBadGateway, gin.H{"error": err.Error()}) + return + } + _ = s.app.Store.AddAuditLog(ctx, "update", "geo", "updated: "+joinNames(updated)) + s.logs.Add("info", "prism", "geo data updated") + _ = s.app.ReloadEngine(ctx) + + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "updated": updated, + "ready": geodata.Ready(s.app.DataDir), + "files": geodata.Status(s.app.DataDir, cfg), + }) +} + +func joinNames(names []string) string { + if len(names) == 0 { + return "none (already present)" + } + out := names[0] + for i := 1; i < len(names); i++ { + out += ", " + names[i] + } + return out +} + +func geoDataReady(dataDir string) bool { + return geodata.Ready(dataDir) +} + +func applyGeoSettings(dataDir string, settings map[string]string) { + geodata.InitHomeDir(dataDir) + geodata.ApplyMihomoURLs(geodata.ConfigFromSettings(settings)) +} \ No newline at end of file diff --git a/internal/api/handlers_outbound.go b/internal/api/handlers_outbound.go new file mode 100644 index 0000000..c0691fb --- /dev/null +++ b/internal/api/handlers_outbound.go @@ -0,0 +1,52 @@ +package api + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +func (s *Server) outboundOverview(c *gin.Context) { + data, err := s.app.OutboundOverview(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, data) +} + +type selectOutboundReq struct { + Proxy string `json:"proxy"` +} + +func (s *Server) selectOutboundGroup(c *gin.Context) { + name := c.Param("name") + var req selectOutboundReq + if err := c.ShouldBindJSON(&req); err != nil || req.Proxy == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "proxy required"}) + return + } + if err := s.app.SelectOutboundGroup(c.Request.Context(), name, req.Proxy); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +type defaultPolicyReq struct { + Policy string `json:"policy"` +} + +func (s *Server) setDefaultPolicy(c *gin.Context) { + var req defaultPolicyReq + if err := c.ShouldBindJSON(&req); err != nil || req.Policy == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "policy required"}) + return + } + if err := s.app.SetDefaultPolicy(c.Request.Context(), req.Policy); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + s.syncMihomoClient(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} diff --git a/internal/api/handlers_proxies_io.go b/internal/api/handlers_proxies_io.go new file mode 100644 index 0000000..23d6270 --- /dev/null +++ b/internal/api/handlers_proxies_io.go @@ -0,0 +1,124 @@ +package api + +import ( + "io" + "net/http" + "strconv" + "strings" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/proxyio" + "github.com/prism/proxy/internal/store" +) + +func (s *Server) exportProxies(c *gin.Context) { + ctx := c.Request.Context() + items, err := s.app.Store.ListProxyNodes(ctx, "manual", nil) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + format := strings.ToLower(c.DefaultQuery("format", "json")) + filename := "prism-proxies" + switch format { + case "text", "txt", "links": + c.Header("Content-Type", "text/plain; charset=utf-8") + c.Header("Content-Disposition", `attachment; filename="`+filename+`.txt"`) + c.String(http.StatusOK, proxyio.ExportLinks(items)) + default: + data, err := proxyio.ExportJSON(items) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.Header("Content-Type", "application/json; charset=utf-8") + c.Header("Content-Disposition", `attachment; filename="`+filename+`.json"`) + c.Data(http.StatusOK, "application/json; charset=utf-8", data) + } +} + +type importProxiesReq struct { + Mode string `json:"mode"` + Text string `json:"text"` + Nodes []proxyio.ExportNode `json:"nodes"` +} + +func (s *Server) importProxies(c *gin.Context) { + ctx := c.Request.Context() + mode := strings.ToLower(strings.TrimSpace(c.DefaultQuery("mode", ""))) + + var nodes []store.ProxyNode + var parseErrors []string + + contentType := c.GetHeader("Content-Type") + if strings.Contains(contentType, "application/json") { + var req importProxiesReq + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if mode == "" { + mode = strings.ToLower(strings.TrimSpace(req.Mode)) + } + if len(req.Nodes) > 0 { + var valErrors []string + nodes, valErrors = proxyio.ToStoreNodes(req.Nodes) + parseErrors = append(parseErrors, valErrors...) + } else if strings.TrimSpace(req.Text) != "" { + nodes, parseErrors = proxyio.ParseText(req.Text) + } else { + c.JSON(http.StatusBadRequest, gin.H{"error": "nodes or text required"}) + return + } + } else { + body, err := io.ReadAll(c.Request.Body) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if mode == "" { + mode = "append" + } + nodes, parseErrors = proxyio.ParseText(string(body)) + } + + if mode == "" { + mode = "append" + } + if mode != "append" && mode != "replace" { + c.JSON(http.StatusBadRequest, gin.H{"error": "mode must be append or replace"}) + return + } + if len(nodes) == 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "no valid proxies", "errors": parseErrors}) + return + } + + if mode == "append" { + existing, _ := s.app.Store.ListProxyNodes(ctx, "manual", nil) + proxyio.AssignUniqueNames(nodes, proxyio.ReservedNames(existing)) + if err := s.app.Store.AppendManualProxies(ctx, nodes); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + } else { + proxyio.AssignUniqueNames(nodes, nil) + if err := s.app.Store.ReplaceManualProxies(ctx, nodes); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + } + + _ = s.app.Store.AddAuditLog(ctx, "import", "proxies", mode+": "+strconv.Itoa(len(nodes))) + _ = s.app.ReloadEngine(ctx) + + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "imported": len(nodes), + "skipped": len(parseErrors), + "errors": parseErrors, + "mode": mode, + }) +} diff --git a/internal/api/handlers_rules.go b/internal/api/handlers_rules.go new file mode 100644 index 0000000..3a21d2b --- /dev/null +++ b/internal/api/handlers_rules.go @@ -0,0 +1,70 @@ +package api + +import ( + "net/http" + "strconv" + "strings" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/rulematch" +) + +type testRuleReq struct { + URL string `json:"url"` +} + +func (s *Server) mergedRules(c *gin.Context) { + limit, offset := parseLimitOffset(c.DefaultQuery("limit", "50"), c.DefaultQuery("offset", "0")) + items, err := s.app.Store.ListMergedRulesPage(c.Request.Context(), limit, offset) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + total, err := s.app.Store.CountMergedRules(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + settings, _ := s.app.Store.GetSettings(c.Request.Context()) + policy := settings["default_policy"] + if policy == "" { + policy = "DIRECT" + } + c.JSON(http.StatusOK, gin.H{ + "items": items, + "total": total, + "limit": limit, + "offset": offset, + "default_policy": policy, + }) +} + +func (s *Server) testRule(c *gin.Context) { + var req testRuleReq + if err := c.ShouldBindJSON(&req); err != nil || strings.TrimSpace(req.URL) == "" { + c.JSON(http.StatusBadRequest, gin.H{"error": "url required"}) + return + } + ctx := c.Request.Context() + rules, err := s.app.Store.ListRules(ctx, "") + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + settings, _ := s.app.Store.GetSettings(ctx) + policy := settings["default_policy"] + geoReady := geoDataReady(s.app.DataDir) + result := rulematch.Match(rules, policy, req.URL, geoReady) + if result.SkippedGeo > 0 { + result.Note = appendNote(result.Note, "已跳过 "+strconv.Itoa(result.SkippedGeo)+" 条 Geo 规则(本地测试不支持 GEOIP/GEOSITE)") + } + c.JSON(http.StatusOK, result) +} + +func appendNote(existing, extra string) string { + if existing == "" { + return extra + } + return existing + ";" + extra +} diff --git a/internal/api/handlers_rules_io.go b/internal/api/handlers_rules_io.go new file mode 100644 index 0000000..2c383f0 --- /dev/null +++ b/internal/api/handlers_rules_io.go @@ -0,0 +1,142 @@ +package api + +import ( + "io" + "net/http" + "strconv" + "strings" + + "github.com/gin-gonic/gin" + + "github.com/prism/proxy/internal/ruleio" +) + +func (s *Server) exportRules(c *gin.Context) { + ctx := c.Request.Context() + items, err := s.app.Store.ListRules(ctx, "manual") + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + + format := strings.ToLower(c.DefaultQuery("format", "json")) + filename := "prism-rules" + switch format { + case "text", "txt", "clash": + c.Header("Content-Type", "text/plain; charset=utf-8") + c.Header("Content-Disposition", `attachment; filename="`+filename+`.txt"`) + c.String(http.StatusOK, ruleio.ExportText(items)) + default: + data, err := ruleio.ExportJSON(items) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.Header("Content-Type", "application/json; charset=utf-8") + c.Header("Content-Disposition", `attachment; filename="`+filename+`.json"`) + c.Data(http.StatusOK, "application/json; charset=utf-8", data) + } +} + +type importRulesReq struct { + Mode string `json:"mode"` + Text string `json:"text"` + Rules []ruleio.ExportRule `json:"rules"` +} + +func (s *Server) importRules(c *gin.Context) { + ctx := c.Request.Context() + mode := strings.ToLower(strings.TrimSpace(c.DefaultQuery("mode", ""))) + + var parsed []ruleio.ExportRule + var parseErrors []string + + contentType := c.GetHeader("Content-Type") + if strings.Contains(contentType, "application/json") { + var req importRulesReq + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if mode == "" { + mode = strings.ToLower(strings.TrimSpace(req.Mode)) + } + if len(req.Rules) > 0 { + parsed = req.Rules + } else if strings.TrimSpace(req.Text) != "" { + parsed, parseErrors = parseImportText(req.Text) + } else { + c.JSON(http.StatusBadRequest, gin.H{"error": "rules or text required"}) + return + } + } else { + body, err := io.ReadAll(c.Request.Body) + if err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if mode == "" { + mode = "append" + } + parsed, parseErrors = parseImportText(string(body)) + } + + if mode == "" { + mode = "append" + } + if mode != "append" && mode != "replace" { + c.JSON(http.StatusBadRequest, gin.H{"error": "mode must be append or replace"}) + return + } + if len(parsed) == 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "no valid rules", "errors": parseErrors}) + return + } + + rules, valErrors := ruleio.ToStoreRules(parsed) + allErrors := append(parseErrors, valErrors...) + if len(rules) == 0 { + c.JSON(http.StatusBadRequest, gin.H{"error": "no valid rules", "errors": allErrors}) + return + } + + if mode == "append" { + start, _ := s.app.Store.NextManualRulePriority(ctx) + ruleio.AssignPriorities(rules, start) + if err := s.app.Store.AppendManualRules(ctx, rules); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + } else { + ruleio.AssignPriorities(rules, 100) + if err := s.app.Store.ReplaceManualRules(ctx, rules); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + } + + _ = s.app.Store.AddAuditLog(ctx, "import", "rules", mode+": "+strconv.Itoa(len(rules))) + _ = s.app.ReloadEngine(ctx) + + c.JSON(http.StatusOK, gin.H{ + "ok": true, + "imported": len(rules), + "skipped": len(allErrors), + "errors": allErrors, + "mode": mode, + }) +} + +func parseImportText(text string) ([]ruleio.ExportRule, []string) { + text = strings.TrimSpace(text) + if text == "" { + return nil, nil + } + if strings.HasPrefix(text, "{") || strings.HasPrefix(text, "[") { + rules, err := ruleio.ParseJSON([]byte(text)) + if err == nil && len(rules) > 0 { + return rules, nil + } + } + return ruleio.ParseText(text) +} diff --git a/internal/api/handlers_settings.go b/internal/api/handlers_settings.go new file mode 100644 index 0000000..23efaa9 --- /dev/null +++ b/internal/api/handlers_settings.go @@ -0,0 +1,97 @@ +package api + +import ( + "context" + "fmt" + "net/http" + "strings" + + "github.com/gin-gonic/gin" + "golang.org/x/crypto/bcrypt" + + appsettings "github.com/prism/proxy/internal/settings" + "github.com/prism/proxy/internal/store" +) + +func (s *Server) getSettings(c *gin.Context) { + settings, err := s.app.Store.GetSettings(c.Request.Context()) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + safe := make(map[string]string) + for k, v := range settings { + if k == appsettings.KeyAdminPassword || k == appsettings.KeyProxyAuthPass { + safe[k] = "" + continue + } + safe[k] = v + } + c.JSON(http.StatusOK, appsettings.Display(safe)) +} + +func (s *Server) putSettings(c *gin.Context) { + var req map[string]string + if err := c.ShouldBindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + if pw, ok := req[appsettings.KeyAdminPassword]; ok && pw != "" { + hash, err := bcrypt.GenerateFromPassword([]byte(pw), bcrypt.DefaultCost) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + req[appsettings.KeyAdminPassword] = string(hash) + } else { + delete(req, appsettings.KeyAdminPassword) + } + if err := normalizeProxyAuthSettings(c.Request.Context(), s.app.Store, req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()}) + return + } + appsettings.NormalizeSubmit(req) + if err := s.app.Store.SetSettings(c.Request.Context(), req); err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + allSettings, _ := s.app.Store.GetSettings(c.Request.Context()) + applyGeoSettings(s.app.DataDir, allSettings) + base, secret, _ := s.app.MihomoAPIBase(c.Request.Context()) + s.health.UpdateAPIBase(base, secret) + s.metrics.UpdateAPIBase(base, secret) + s.syncMihomoClient(c.Request.Context()) + _ = s.app.ReloadEngine(c.Request.Context()) + c.JSON(http.StatusOK, gin.H{"ok": true}) +} + +func normalizeProxyAuthSettings(ctx context.Context, st *store.Store, req map[string]string) error { + user, hasUser := req["proxy_auth_user"] + pass, hasPass := req["proxy_auth_pass"] + if !hasUser && !hasPass { + return nil + } + user = strings.TrimSpace(user) + if user == "" { + req["proxy_auth_user"] = "" + req["proxy_auth_pass"] = "" + return nil + } + if strings.Contains(user, ":") { + return fmt.Errorf("代理用户名不能包含冒号") + } + req["proxy_auth_user"] = user + if !hasPass || pass == "" { + current, err := st.GetSettings(ctx) + if err != nil { + return err + } + if existing := current["proxy_auth_pass"]; existing != "" { + delete(req, "proxy_auth_pass") + return nil + } + return fmt.Errorf("请填写代理密码") + } + req["proxy_auth_pass"] = pass + return nil +} diff --git a/internal/api/handlers_traffic.go b/internal/api/handlers_traffic.go new file mode 100644 index 0000000..b7386b7 --- /dev/null +++ b/internal/api/handlers_traffic.go @@ -0,0 +1,18 @@ +package api + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +func (s *Server) listTrafficLogs(c *gin.Context) { + keyword := c.Query("keyword") + limit, offset := parseLimitOffset(c.DefaultQuery("limit", "50"), c.DefaultQuery("offset", "0")) + items, total, err := s.app.Store.ListProxyRequestLogs(c.Request.Context(), keyword, limit, offset) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"items": items, "total": total}) +} diff --git a/internal/api/openapi.go b/internal/api/openapi.go new file mode 100644 index 0000000..c4ad52d --- /dev/null +++ b/internal/api/openapi.go @@ -0,0 +1,51 @@ +package api + +import ( + _ "embed" + "encoding/json" + "net/http" + "sync" + + "github.com/gin-gonic/gin" + "gopkg.in/yaml.v3" +) + +//go:embed openapi/spec.yaml +var openAPISpecYAML []byte + +//go:embed openapi/docs.html +var openAPIDocsHTML []byte + +var ( + openAPIJSONOnce sync.Once + openAPIJSON []byte + openAPIJSONErr error +) + +func loadOpenAPIJSON() { + var doc any + if err := yaml.Unmarshal(openAPISpecYAML, &doc); err != nil { + openAPIJSONErr = err + return + } + openAPIJSON, openAPIJSONErr = json.Marshal(doc) +} + +func (s *Server) serveOpenAPIJSON(c *gin.Context) { + openAPIJSONOnce.Do(loadOpenAPIJSON) + if openAPIJSONErr != nil { + c.JSON(http.StatusInternalServerError, gin.H{"error": openAPIJSONErr.Error()}) + return + } + c.Header("Cache-Control", "public, max-age=300") + c.Data(http.StatusOK, "application/json; charset=utf-8", openAPIJSON) +} + +func (s *Server) serveOpenAPIYAML(c *gin.Context) { + c.Header("Cache-Control", "public, max-age=300") + c.Data(http.StatusOK, "application/yaml; charset=utf-8", openAPISpecYAML) +} + +func (s *Server) serveOpenAPIDocs(c *gin.Context) { + c.Data(http.StatusOK, "text/html; charset=utf-8", openAPIDocsHTML) +} diff --git a/internal/api/openapi/docs.html b/internal/api/openapi/docs.html new file mode 100644 index 0000000..0c32e03 --- /dev/null +++ b/internal/api/openapi/docs.html @@ -0,0 +1,30 @@ + + + + + + Prism API 文档 + + + + +
+ + + + diff --git a/internal/api/openapi/spec.yaml b/internal/api/openapi/spec.yaml new file mode 100644 index 0000000..94ee70e --- /dev/null +++ b/internal/api/openapi/spec.yaml @@ -0,0 +1,753 @@ +openapi: 3.0.3 +info: + title: Prism Management API + description: | + Prism 代理网关管理接口(默认端口 8080)。 + + 除 `auth/login`、`auth/status` 与 OpenAPI 文档外,启用登录后需在请求头携带以下任一凭证: + - `Authorization: Bearer `(登录接口返回的短期 token) + - `Authorization: Bearer ` 或 `X-API-Key: `(在系统设置中申请的 API Key) + version: 1.0.0 + contact: + name: Prism + +servers: + - url: /api/v1 + description: 管理 API v1 + +tags: + - name: Auth + - name: Dashboard + - name: Subscriptions + - name: Proxies + - name: Countries + - name: Outbound + - name: Rules + - name: TrafficLogs + - name: Settings + - name: System + - name: Logs + +paths: + /auth/login: + post: + tags: [Auth] + summary: 登录 + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [password] + properties: + password: + type: string + responses: + '200': + description: 登录成功 + content: + application/json: + schema: + type: object + properties: + token: + type: string + '401': + $ref: '#/components/responses/Unauthorized' + '429': + description: 登录尝试过多 + + /auth/status: + get: + tags: [Auth] + summary: 是否启用登录认证 + responses: + '200': + description: OK + content: + application/json: + schema: + type: object + properties: + enabled: + type: boolean + + /api-keys: + get: + tags: [Auth] + summary: API Key 列表 + security: + - bearerAuth: [] + responses: + '200': + description: OK + post: + tags: [Auth] + summary: 申请 API Key + description: 完整 Key 仅在创建响应中返回一次,请妥善保存 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + responses: + '201': + description: Created + + /api-keys/{id}: + parameters: + - $ref: '#/components/parameters/IdPath' + delete: + tags: [Auth] + summary: 吊销 API Key + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /dashboard: + get: + tags: [Dashboard] + summary: 监控大盘 + security: + - bearerAuth: [] + parameters: + - name: live_domain_limit + in: query + schema: + type: integer + default: 50 + maximum: 500 + - name: live_domain_offset + in: query + schema: + type: integer + default: 0 + - name: live_node_limit + in: query + schema: + type: integer + default: 50 + maximum: 500 + - name: live_node_offset + in: query + schema: + type: integer + default: 0 + - name: period_domain_limit + in: query + schema: + type: integer + default: 50 + maximum: 500 + - name: period_domain_offset + in: query + schema: + type: integer + default: 0 + - name: period_node_limit + in: query + schema: + type: integer + default: 50 + maximum: 500 + - name: period_node_offset + in: query + schema: + type: integer + default: 0 + responses: + '200': + description: OK + + /connections: + get: + tags: [Dashboard] + summary: 当前活跃连接 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /subscriptions: + get: + tags: [Subscriptions] + summary: 订阅列表 + security: + - bearerAuth: [] + responses: + '200': + description: OK + post: + tags: [Subscriptions] + summary: 创建订阅 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + responses: + '201': + description: Created + + /subscriptions/{id}: + parameters: + - $ref: '#/components/parameters/IdPath' + put: + tags: [Subscriptions] + summary: 更新订阅 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Subscription' + responses: + '200': + description: OK + delete: + tags: [Subscriptions] + summary: 删除订阅 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /subscriptions/{id}/refresh: + parameters: + - $ref: '#/components/parameters/IdPath' + post: + tags: [Subscriptions] + summary: 刷新订阅 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /proxies: + get: + tags: [Proxies] + summary: 节点列表 + security: + - bearerAuth: [] + parameters: + - name: source + in: query + schema: + type: string + enum: [manual, subscription] + - name: subscription_id + in: query + schema: + type: integer + - name: country + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + default: 50 + maximum: 500 + - name: offset + in: query + schema: + type: integer + default: 0 + responses: + '200': + description: OK + post: + tags: [Proxies] + summary: 添加手动节点 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + name: + type: string + type: + type: string + raw_config: + type: string + responses: + '201': + description: Created + + /proxies/export: + get: + tags: [Proxies] + summary: 导出手动节点 + security: + - bearerAuth: [] + parameters: + - name: format + in: query + schema: + type: string + enum: [json, links, text, txt] + default: json + responses: + '200': + description: 文件下载 + + /proxies/import: + post: + tags: [Proxies] + summary: 导入手动节点 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + mode: + type: string + enum: [append, replace] + text: + type: string + nodes: + type: array + items: + type: object + responses: + '200': + description: OK + + /proxies/{id}: + parameters: + - $ref: '#/components/parameters/IdPath' + put: + tags: [Proxies] + summary: 更新节点 + security: + - bearerAuth: [] + responses: + '200': + description: OK + delete: + tags: [Proxies] + summary: 删除手动节点 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /proxies/{id}/test: + parameters: + - $ref: '#/components/parameters/IdPath' + post: + tags: [Proxies] + summary: 单节点测速 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /proxies/test-all: + post: + tags: [Proxies] + summary: 全部节点测速 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /proxies/rebuild-countries: + post: + tags: [Proxies] + summary: 重新识别节点国家 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /countries: + get: + tags: [Countries] + summary: 国家统计 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /outbound: + get: + tags: [Outbound] + summary: 出站概览 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /outbound/groups/{name}: + parameters: + - name: name + in: path + required: true + schema: + type: string + put: + tags: [Outbound] + summary: 切换策略组节点 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + required: [proxy] + properties: + proxy: + type: string + responses: + '200': + description: OK + + /outbound/default-policy: + put: + tags: [Outbound] + summary: 设置默认出站 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + required: [policy] + properties: + policy: + type: string + responses: + '200': + description: OK + + /traffic-logs: + get: + tags: [TrafficLogs] + summary: 请求日志 + security: + - bearerAuth: [] + parameters: + - name: keyword + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + default: 50 + - name: offset + in: query + schema: + type: integer + default: 0 + responses: + '200': + description: OK + + /rules: + get: + tags: [Rules] + summary: 规则列表 + security: + - bearerAuth: [] + parameters: + - name: source + in: query + schema: + type: string + responses: + '200': + description: OK + post: + tags: [Rules] + summary: 添加手动规则 + security: + - bearerAuth: [] + responses: + '201': + description: Created + + /rules/export: + get: + tags: [Rules] + summary: 导出手动规则 + security: + - bearerAuth: [] + parameters: + - name: format + in: query + schema: + type: string + enum: [json, text, txt, clash] + default: json + responses: + '200': + description: 文件下载 + + /rules/import: + post: + tags: [Rules] + summary: 导入手动规则 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + mode: + type: string + enum: [append, replace] + text: + type: string + rules: + type: array + items: + type: object + responses: + '200': + description: OK + + /rules/merged: + get: + tags: [Rules] + summary: 合成规则预览 + security: + - bearerAuth: [] + parameters: + - name: limit + in: query + schema: + type: integer + - name: offset + in: query + schema: + type: integer + responses: + '200': + description: OK + + /rules/test: + post: + tags: [Rules] + summary: 规则命中测试 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + required: [url] + properties: + url: + type: string + responses: + '200': + description: OK + + /rules/{id}: + parameters: + - $ref: '#/components/parameters/IdPath' + put: + tags: [Rules] + summary: 更新规则 + security: + - bearerAuth: [] + responses: + '200': + description: OK + delete: + tags: [Rules] + summary: 删除手动规则 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /settings: + get: + tags: [Settings] + summary: 获取系统设置 + security: + - bearerAuth: [] + responses: + '200': + description: OK + put: + tags: [Settings] + summary: 更新系统设置 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + additionalProperties: + type: string + responses: + '200': + description: OK + + /logs: + get: + tags: [Logs] + summary: 运行日志 + security: + - bearerAuth: [] + parameters: + - name: level + in: query + schema: + type: string + - name: limit + in: query + schema: + type: integer + responses: + '200': + description: OK + + /audit-logs: + get: + tags: [Logs] + summary: 审计日志 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /system/status: + get: + tags: [System] + summary: 系统状态 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /system/reload: + post: + tags: [System] + summary: 重载内核 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /system/geo: + get: + tags: [System] + summary: Geo 数据状态 + security: + - bearerAuth: [] + responses: + '200': + description: OK + + /system/geo/update: + post: + tags: [System] + summary: 更新 Geo 数据 + security: + - bearerAuth: [] + requestBody: + content: + application/json: + schema: + type: object + properties: + force: + type: boolean + responses: + '200': + description: OK + +components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: 登录 token 或 API Key(prism_ 开头) + apiKeyAuth: + type: apiKey + in: header + name: X-API-Key + description: 系统设置中申请的 API Key + + parameters: + IdPath: + name: id + in: path + required: true + schema: + type: integer + format: int64 + + schemas: + Subscription: + type: object + properties: + name: + type: string + url: + type: string + type: + type: string + description: auto / clash / links + interval_sec: + type: integer + enabled: + type: boolean + + Error: + type: object + properties: + error: + type: string + + responses: + Unauthorized: + description: 未授权 + content: + application/json: + schema: + $ref: '#/components/schemas/Error' diff --git a/internal/api/openapi_test.go b/internal/api/openapi_test.go new file mode 100644 index 0000000..ba3792f --- /dev/null +++ b/internal/api/openapi_test.go @@ -0,0 +1,48 @@ +package api + +import ( + "encoding/json" + "net/http" + "net/http/httptest" + "strings" + "testing" +) + +func TestServeOpenAPIJSON(t *testing.T) { + s := &Server{} + r := s.Router() + + req := httptest.NewRequest(http.MethodGet, "/api/v1/openapi.json", nil) + w := httptest.NewRecorder() + r.ServeHTTP(w, req) + + if w.Code != http.StatusOK { + t.Fatalf("status %d: %s", w.Code, w.Body.String()) + } + if ct := w.Header().Get("Content-Type"); !strings.Contains(ct, "application/json") { + t.Fatalf("content-type: %s", ct) + } + var doc map[string]any + if err := json.Unmarshal(w.Body.Bytes(), &doc); err != nil { + t.Fatal(err) + } + if doc["openapi"] != "3.0.3" { + t.Fatalf("unexpected openapi version: %v", doc["openapi"]) + } +} + +func TestServeOpenAPIDocs(t *testing.T) { + s := &Server{} + r := s.Router() + + req := httptest.NewRequest(http.MethodGet, "/api/docs", nil) + w := httptest.NewRecorder() + r.ServeHTTP(w, req) + + if w.Code != http.StatusOK { + t.Fatalf("status %d", w.Code) + } + if !strings.Contains(w.Body.String(), "swagger-ui") { + t.Fatal("expected swagger ui html") + } +} diff --git a/internal/api/pagination.go b/internal/api/pagination.go new file mode 100644 index 0000000..81f7a7f --- /dev/null +++ b/internal/api/pagination.go @@ -0,0 +1,35 @@ +package api + +import "strconv" + +const ( + defaultPageLimit = 50 + maxPageLimit = 500 +) + +func parseLimitOffset(limitStr, offsetStr string) (limit, offset int) { + limit, _ = strconv.Atoi(limitStr) + offset, _ = strconv.Atoi(offsetStr) + if limit <= 0 { + limit = defaultPageLimit + } + if limit > maxPageLimit { + limit = maxPageLimit + } + if offset < 0 { + offset = 0 + } + return limit, offset +} + +func paginateSlice[T any](items []T, limit, offset int) ([]T, int) { + total := len(items) + if offset >= total { + return nil, total + } + end := offset + limit + if end > total { + end = total + } + return items[offset:end], total +} diff --git a/internal/api/static.go b/internal/api/static.go new file mode 100644 index 0000000..2fa0b59 --- /dev/null +++ b/internal/api/static.go @@ -0,0 +1,47 @@ +package api + +import ( + "embed" + "io/fs" + "net/http" + "strings" + + "github.com/gin-gonic/gin" +) + +//go:embed static/* +var staticFS embed.FS + +func (s *Server) serveSPA(c *gin.Context) { + if strings.HasPrefix(c.Request.URL.Path, "/api/") { + c.JSON(http.StatusNotFound, gin.H{"error": "not found"}) + return + } + sub, err := fs.Sub(staticFS, "static") + if err != nil { + c.String(http.StatusInternalServerError, "static fs error") + return + } + path := strings.TrimPrefix(c.Request.URL.Path, "/") + if path == "" { + path = "index.html" + } + data, err := fs.ReadFile(sub, path) + if err != nil { + data, err = fs.ReadFile(sub, "index.html") + if err != nil { + c.String(http.StatusNotFound, "not found") + return + } + } + contentType := "text/html; charset=utf-8" + switch { + case strings.HasSuffix(path, ".js"): + contentType = "application/javascript" + case strings.HasSuffix(path, ".css"): + contentType = "text/css" + case strings.HasSuffix(path, ".svg"): + contentType = "image/svg+xml" + } + c.Data(http.StatusOK, contentType, data) +} diff --git a/internal/api/static/assets/AppCard-ClnBgZ-s.js b/internal/api/static/assets/AppCard-ClnBgZ-s.js new file mode 100644 index 0000000..832ed78 --- /dev/null +++ b/internal/api/static/assets/AppCard-ClnBgZ-s.js @@ -0,0 +1 @@ +import{Kt as e,R as t,Ut as n,V as r,b as i,d as a,m as o,p as s}from"./client-CiT_nDm8.js";var c={class:`page-header`},l={class:`page-title`},u={key:0,class:`page-desc`},d={key:0,class:`page-actions`},f=i({__name:`PageHeader`,props:{title:{},description:{}},setup(n){return(i,f)=>(t(),o(`div`,c,[a(`div`,null,[a(`h1`,l,e(n.title),1),n.description?(t(),o(`p`,u,e(n.description),1)):s(``,!0)]),i.$slots.actions?(t(),o(`div`,d,[r(i.$slots,`actions`)])):s(``,!0)]))}}),p={class:`app-card`},m={key:0,class:`app-card__header`},h={class:`app-card__title`},g=i({__name:`AppCard`,props:{title:{},padded:{type:Boolean}},setup(i){return(c,l)=>(t(),o(`div`,p,[i.title||c.$slots.header?(t(),o(`div`,m,[r(c.$slots,`header`,{},()=>[a(`h3`,h,e(i.title),1)])])):s(``,!0),a(`div`,{class:n(i.padded?`app-card__body--padded`:``)},[r(c.$slots,`default`)],2)]))}});export{f as n,g as t}; \ No newline at end of file diff --git a/internal/api/static/assets/DashboardView-BVv1KNO9.js b/internal/api/static/assets/DashboardView-BVv1KNO9.js new file mode 100644 index 0000000..bbc849c --- /dev/null +++ b/internal/api/static/assets/DashboardView-BVv1KNO9.js @@ -0,0 +1,39 @@ +import{F as e,H as t,I as n,Kt as r,R as i,Xt as a,b as o,d as s,et as c,m as l,t as u,ut as d,v as f,y as p}from"./client-CiT_nDm8.js";import{n as m,t as h}from"./AppCard-ClnBgZ-s.js";var g=function(e,t){return g=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])},g(e,t)};function _(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);g(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var v=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),y=new(function(){function e(){this.browser=new v,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<`u`}return e}());typeof wx==`object`&&typeof wx.getSystemInfoSync==`function`?(y.wxa=!0,y.touchEventsSupported=!0):typeof document>`u`&&typeof self<`u`?y.worker=!0:!y.hasGlobalWindow||`Deno`in window||typeof navigator<`u`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Node.js`)>-1?(y.node=!0,y.svgSupported=!0):b(navigator.userAgent,y);function b(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 x=`12px sans-serif`,S=20,C=100,w=`007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N`;function T(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=ce&&(se=0),se++}function ue(){var e=[...arguments];typeof console<`u`&&console.error.apply(console,e)}function M(e){if(typeof e!=`object`||!e)return e;var t=e,n=A.call(e);if(n===`[object Array]`){if(!ze(e)){t=[];for(var r=0,i=e.length;r>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(){L(n,function(e){e.parentNode&&e.parentNode.removeChild(e)})},n}function Ot(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?xt(s,o):xt(o,s))}function kt(e){return e.nodeName.toUpperCase()===`CANVAS`}var At=/([&<>"'])/g,jt={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Mt(e){return e==null?``:(e+``).replace(At,function(e,t){return jt[t]})}var Nt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Pt=[],Ft=y.browser.firefox&&+y.browser.version.split(`.`)[0]<39;function It(e,t,n,r){return n||={},r?Lt(e,t,n):Ft&&t.layerX!=null&&t.layerX!==t.offsetX?(n.zrX=t.layerX,n.zrY=t.layerY):t.offsetX==null?Lt(e,t,n):(n.zrX=t.offsetX,n.zrY=t.offsetY),n}function Lt(e,t,n){if(y.domSupported&&e.getBoundingClientRect){var r=t.clientX,i=t.clientY;if(kt(e)){var a=e.getBoundingClientRect();n.zrX=r-a.left,n.zrY=i-a.top;return}else if(Et(Pt,e,r,i)){n.zrX=Pt[0],n.zrY=Pt[1];return}}n.zrX=n.zrY=0}function Rt(e){return e||window.event}function zt(e,t,n){if(t=Rt(t),t.zrX!=null)return t;var r=t.type;if(r&&r.indexOf(`touch`)>=0){var i=r===`touchend`?t.changedTouches[0]:t.targetTouches[0];i&&It(e,i,t,n)}else{It(e,t,t,n);var a=Bt(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var o=t.button;return t.which==null&&o!==void 0&&Nt.test(t.type)&&(t.which=o&1?1:o&2?3:o&4?2:0),t}function Bt(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 Vt(e,t,n,r){e.addEventListener(t,n,r)}function Ht(e,t,n,r){e.removeEventListener(t,n,r)}var Ut=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function Wt(e){return e.which===2||e.which===3}var Gt=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=Kt(r)/Kt(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=qt(r);return t.pinchX=o[0],t.pinchY=o[1],{type:`pinch`,target:e[0].target,event:t}}}}};function Yt(){return[1,0,0,1,0,0]}function Xt(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function Zt(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function Qt(e,t,n){var r=t[0]*n[0]+t[2]*n[1],i=t[1]*n[0]+t[3]*n[1],a=t[0]*n[2]+t[2]*n[3],o=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],c=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=r,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=c,e}function $t(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function en(e,t,n,r){r===void 0&&(r=[0,0]);var i=t[0],a=t[2],o=t[4],s=t[1],c=t[3],l=t[5],u=Math.sin(n),d=Math.cos(n);return e[0]=i*d+s*u,e[1]=-i*u+s*d,e[2]=a*d+c*u,e[3]=-a*u+d*c,e[4]=d*(o-r[0])+u*(l-r[1])+r[0],e[5]=d*(l-r[1])-u*(o-r[0])+r[1],e}function tn(e,t,n){var r=n[0],i=n[1];return e[0]=t[0]*r,e[1]=t[1]*i,e[2]=t[2]*r,e[3]=t[3]*i,e[4]=t[4]*r,e[5]=t[5]*i,e}function nn(e,t){var n=t[0],r=t[2],i=t[4],a=t[1],o=t[3],s=t[5],c=n*o-a*r;return c?(c=1/c,e[0]=o*c,e[1]=-a*c,e[2]=-r*c,e[3]=n*c,e[4]=(r*s-o*i)*c,e[5]=(a*i-n*s)*c,e):null}function rn(e){var t=Yt();return Zt(t,e),t}var q=function(){function e(e,t){this.x=e||0,this.y=t||0}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(e,t){return this.x=e,this.y=t,this},e.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},e.prototype.scale=function(e){this.x*=e,this.y*=e},e.prototype.scaleAndAdd=function(e,t){this.x+=e.x*t,this.y+=e.y*t},e.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},e.prototype.distance=function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},e.prototype.distanceSquare=function(e){var t=this.x-e.x,n=this.y-e.y;return t*t+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(e){if(e){var t=this.x,n=this.y;return this.x=e[0]*t+e[2]*n+e[4],this.y=e[1]*t+e[3]*n+e[5],this}},e.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},e.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},e.set=function(e,t,n){e.x=t,e.y=n},e.copy=function(e,t){e.x=t.x,e.y=t.y},e.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},e.lenSquare=function(e){return e.x*e.x+e.y*e.y},e.dot=function(e,t){return e.x*t.x+e.y*t.y},e.add=function(e,t,n){e.x=t.x+n.x,e.y=t.y+n.y},e.sub=function(e,t,n){e.x=t.x-n.x,e.y=t.y-n.y},e.scale=function(e,t,n){e.x=t.x*n,e.y=t.y*n},e.scaleAndAdd=function(e,t,n,r){e.x=t.x+n.x*r,e.y=t.y+n.y*r},e.lerp=function(e,t,n,r){var i=1-r;e.x=i*t.x+r*n.x,e.y=i*t.y+r*n.y},e}(),an=Math.min,on=Math.max,sn=Math.abs,cn=[`x`,`y`],ln=[`width`,`height`],un=new q,dn=new q,fn=new q,pn=new q,mn=On(),hn=mn.minTv,gn=mn.maxTv,_n=[0,0],J=function(){function e(e,t,n,r){yn(this,e,t,n,r)}return e.set=function(e,t,n,r,i){return r<0&&(t+=r,r=-r),i<0&&(n+=i,i=-i),e.x=t,e.y=n,e.width=r,e.height=i,e},e.prototype.union=function(e){var t=an(e.x,this.x),n=an(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=on(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=on(e.y+e.height,this.y+this.height)-n:this.height=e.height,this.x=t,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(e){return xn(Yt(),this,e)},e.prototype.intersect=function(t,n,r){return e.intersect(this,t,n,r)},e.intersect=function(t,n,r,i){r&&q.set(r,0,0);var a=i&&i.outIntersectRect||null,o=i&&i.clamp;if(a&&(a.x=a.y=a.width=a.height=NaN),!t||!n)return!1;t instanceof e||(t=yn(wn,t.x,t.y,t.width,t.height)),n instanceof e||(n=yn(Tn,n.x,n.y,n.width,n.height));var s=!!r;mn.reset(i,s);var c=mn.touchThreshold,l=t.x+c,u=t.x+t.width-c,d=t.y+c,f=t.y+t.height-c,p=n.x+c,m=n.x+n.width-c,h=n.y+c,g=n.y+n.height-c;if(l>u||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){bn(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&&bn(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}un.x=fn.x=t.x,un.y=pn.y=t.y,dn.x=pn.x=t.x+t.width,dn.y=fn.y=t.y+t.height,un.transform(n),pn.transform(n),dn.transform(n),fn.transform(n),e.x=an(un.x,dn.x,fn.x,pn.x),e.y=an(un.y,dn.y,fn.y,pn.y);var s=on(un.x,dn.x,fn.x,pn.x),c=on(un.y,dn.y,fn.y,pn.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=Xt(e||[]),$t(e,e,et(En,-t.x,-t.y)),tn(e,e,et(En,r,i)),$t(e,e,et(En,n.x,n.y)),e},e}(),vn=J.create,yn=J.set,bn=J.copy,xn=J.calculateTransform,Sn=J.applyTransform,Cn=J.contain,wn=new J(0,0,0,0),Tn=new J(0,0,0,0),En=[];function Dn(e,t,n,r,i,a,o,s){var c=sn(t-n),l=sn(r-e),u=an(c,l),d=cn[i],f=cn[1-i],p=ln[i];t=l||!mn.bidirectional)&&(hn[d]=-l,hn[f]=0,mn.useDir&&mn.calcDirMTV())))}function On(){var e=0,t=new q,n=new q,r={minTv:new q,maxTv:new q,useDir:!1,dirMinTv:new q,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,a){r.touchThreshold=0,i&&i.touchThreshold!=null&&(r.touchThreshold=on(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()=0;l--){var u=r[l];u!==n&&!u.ignore&&!u.ignoreCoarsePointer&&(!u.parent||!u.parent.ignoreCoarsePointer)&&(Fn.copy(u.getBoundingRect()),u.transform&&Fn.applyTransform(u.transform),Fn.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 Ln(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?kn:!0}return!1}function Rn(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=Ln(o,n,r))&&(!t.topTarget&&(t.topTarget=o),s!==kn)){t.target=o;break}}}function zn(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}var Bn=32,Vn=7;function Hn(e){for(var t=0;e>=Bn;)t|=e&1,e>>=1;return e+t}function Un(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 Wn(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 Kn(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 qn(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 Jn(e,t){var n=Vn,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]=Vn||m>=Vn);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-Kn(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=Vn||g>=Vn);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),Gn(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 Xn=!1;function Zn(){Xn||(Xn=!0,console.warn(`z / z2 / zlevel of displayable is invalid, which may cause unexpected errors`))}function Qn(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var $n=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=Qn}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}(),er=y.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)},tr={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-tr.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?tr.bounceIn(e*2)*.5:tr.bounceOut(e*2-1)*.5+.5}},nr=Math.pow,rr=Math.sqrt,ir=1e-8,ar=1e-4,or=rr(3),sr=1/3,cr=Ze(),lr=Ze(),ur=Ze();function dr(e){return e>-ir&&eir||e<-ir}function pr(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 mr(e,t,n,r,i){var a=1-i;return 3*(((t-e)*a+2*(n-t)*i)*a+(r-n)*i*i)}function hr(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(dr(u)&&dr(d))if(dr(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(dr(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=rr(h),y=u*s+1.5*o*(-d+v),b=u*s+1.5*o*(-d-v);y=y<0?-nr(-y,sr):nr(y,sr),b=b<0?-nr(-b,sr):nr(b,sr);var m=(-s-(y+b))/(3*o);m>=0&&m<=1&&(a[p++]=m)}else{var x=(2*u*s-3*o*d)/(2*rr(u*u*u)),S=Math.acos(x)/3,C=rr(u),w=Math.cos(S),m=(-s-2*C*w)/(3*o),_=(-s+C*(w+or*Math.sin(S)))/(3*o),T=(-s+C*(w-or*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 gr(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(dr(o)){if(fr(a)){var l=-s/a;l>=0&&l<=1&&(i[c++]=l)}}else{var u=a*a-4*o*s;if(dr(u))i[0]=-a/(2*o);else if(u>0){var d=rr(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 _r(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 vr(e,t,n,r,i,a,o,s,c,l,u){var d,f=.005,p=1/0,m,h,g,_;cr[0]=c,cr[1]=l;for(var v=0;v<1;v+=.05)lr[0]=pr(e,n,i,o,v),lr[1]=pr(t,r,a,s,v),g=dt(cr,lr),g=0&&g=0&&l<=1&&(i[c++]=l)}}else{var u=o*o-4*a*s;if(dr(u)){var l=-o/(2*a);l>=0&&l<=1&&(i[c++]=l)}else if(u>0){var d=rr(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 Cr(e,t,n){var r=e+n-2*t;return r===0?.5:(e-t)/r}function wr(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 Tr(e,t,n,r,i,a,o,s,c){var l,u=.005,d=1/0;cr[0]=o,cr[1]=s;for(var f=0;f<1;f+=.05){lr[0]=br(e,n,i,f),lr[1]=br(t,r,a,f);var p=dt(cr,lr);p=0&&p=1?1:hr(0,r,a,1,e,s)&&pr(0,i,o,1,s[0])}}}var kr=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||qe,this.ondestroy=e.ondestroy||qe,this.onrestart=e.onrestart||qe,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=V(e)?e:tr[e]||Or(e)},e}(),Ar=function(){function e(e){this.value=e}return e}(),jr=function(){function e(){this._len=0}return e.prototype.insert=function(e){var t=new Ar(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}(),Mr=function(){function e(e){this._list=new jr,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 Ar(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}(),Nr={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 Pr(e){return e=Math.round(e),e<0?0:e>255?255:e}function Fr(e){return e=Math.round(e),e<0?0:e>360?360:e}function Ir(e){return e<0?0:e>1?1:e}function Lr(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Pr(parseFloat(t)/100*255):Pr(parseInt(t,10))}function Rr(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Ir(parseFloat(t)/100):Ir(parseFloat(t))}function zr(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 Br(e,t,n){return e+(t-e)*n}function Vr(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function Hr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var Ur=new Mr(20),Wr=null;function Gr(e,t){Wr&&Hr(Wr,t),Wr=Ur.put(e,Wr||t.slice())}function Kr(e,t){if(e){t||=[];var n=Ur.get(e);if(n)return Hr(t,n);e+=``;var r=e.replace(/ /g,``).toLowerCase();if(r in Nr)return Hr(t,Nr[r]),Gr(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)){Vr(t,0,0,0,1);return}return Vr(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),Gr(e,t),t}else if(i===7||i===9){var a=parseInt(r.slice(1,7),16);if(!(a>=0&&a<=16777215)){Vr(t,0,0,0,1);return}return Vr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(r.slice(7),16)/255:1),Gr(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?Vr(t,+l[0],+l[1],+l[2],1):Vr(t,0,0,0,1);u=Rr(l.pop());case`rgb`:if(l.length>=3)return Vr(t,Lr(l[0]),Lr(l[1]),Lr(l[2]),l.length===3?u:Rr(l[3])),Gr(e,t),t;Vr(t,0,0,0,1);return;case`hsla`:if(l.length!==4){Vr(t,0,0,0,1);return}return l[3]=Rr(l[3]),qr(l,t),Gr(e,t),t;case`hsl`:if(l.length!==3){Vr(t,0,0,0,1);return}return qr(l,t),Gr(e,t),t;default:return}}Vr(t,0,0,0,1)}}function qr(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=Rr(e[1]),i=Rr(e[2]),a=i<=.5?i*(r+1):i+r-i*r,o=i*2-a;return t||=[],Vr(t,Pr(zr(o,a,n+1/3)*255),Pr(zr(o,a,n)*255),Pr(zr(o,a,n-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function Jr(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 Yr(e,t){var n=Kr(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 ei(n,n.length===4?`rgba`:`rgb`)}}function Xr(e,t,n){if(!(!(t&&t.length)||!(e>=0&&e<=1))){n||=[];var r=e*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=t[i],s=t[a],c=r-i;return n[0]=Pr(Br(o[0],s[0],c)),n[1]=Pr(Br(o[1],s[1],c)),n[2]=Pr(Br(o[2],s[2],c)),n[3]=Ir(Br(o[3],s[3],c)),n}}function Zr(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=Kr(t[i]),s=Kr(t[a]),c=r-i,l=ei([Pr(Br(o[0],s[0],c)),Pr(Br(o[1],s[1],c)),Pr(Br(o[2],s[2],c)),Ir(Br(o[3],s[3],c))],`rgba`);return n?{color:l,leftIndex:i,rightIndex:a,value:r}:l}}function Qr(e,t,n,r){var i=Kr(e);if(e)return i=Jr(i),t!=null&&(i[0]=Fr(V(t)?t(i[0]):t)),n!=null&&(i[1]=Rr(V(n)?n(i[1]):n)),r!=null&&(i[2]=Rr(V(r)?r(i[2]):r)),ei(qr(i),`rgba`)}function $r(e,t){var n=Kr(e);if(n&&t!=null)return n[3]=Ir(t),ei(n,`rgba`)}function ei(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 ti(e,t){var n=Kr(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}var ni=new Mr(100);function ri(e){if(H(e)){var t=ni.get(e);return t||(t=Yr(e,-.1),ni.put(e,t)),t}else if(De(e)){var n=P({},e);return n.colorStops=R(e.colorStops,function(e){return{offset:e.offset,color:Yr(e.color,-.1)}}),n}return e}var ii=Math.round;function ai(e){var t;if(!e||e===`transparent`)e=`none`;else if(typeof e==`string`&&e.indexOf(`rgba`)>-1){var n=Kr(e);n&&(e=`rgb(`+n[0]+`,`+n[1]+`,`+n[2]+`)`,t=n[3])}return{color:e,opacity:t??1}}var oi=1e-4;function si(e){return e-oi}function ci(e){return ii(e*1e3)/1e3}function li(e){return ii(e*1e4)/1e4}function ui(e){return`matrix(`+ci(e[0])+`,`+ci(e[1])+`,`+ci(e[2])+`,`+ci(e[3])+`,`+li(e[4])+`,`+li(e[5])+`)`}var di={left:`start`,right:`end`,center:`middle`,middle:`middle`};function fi(e,t,n){return n===`top`?e+=t/2:n===`bottom`&&(e-=t/2),e}function pi(e){return e&&(e.shadowBlur||e.shadowOffsetX||e.shadowOffsetY)}function mi(e){var t=e.style,n=e.getGlobalScale();return[t.shadowColor,(t.shadowBlur||0).toFixed(2),(t.shadowOffsetX||0).toFixed(2),(t.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(`,`)}function hi(e){return e&&!!e.image}function gi(e){return e&&!!e.svgElement}function _i(e){return hi(e)||gi(e)}function vi(e){return e.type===`linear`}function yi(e){return e.type===`radial`}function bi(e){return e&&(e.type===`linear`||e.type===`radial`)}function xi(e){return`url(#`+e+`)`}function Si(e){var t=e.getGlobalScale(),n=Math.max(t[0],t[1]);return Math.max(Math.ceil(Math.log(n)/Math.log(10)),1)}function Ci(e){var t=e.x||0,n=e.y||0,r=(e.rotation||0)*Je,i=W(e.scaleX,1),a=W(e.scaleY,1),o=e.skewX||0,s=e.skewY||0,c=[];return(t||n)&&c.push(`translate(`+t+`px,`+n+`px)`),r&&c.push(`rotate(`+r+`)`),(i!==1||a!==1)&&c.push(`scale(`+i+`,`+a+`)`),(o||s)&&c.push(`skew(`+ii(o*Je)+`deg, `+ii(s*Je)+`deg)`),c.join(` `)}var wi=(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}})(),Ti=Array.prototype.slice;function Ei(e,t,n){return(t-e)*n+e}function Di(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=Hi,s=t;if(he(t)){var c=Fi(t);o=c,(c===1&&!Ce(t[0])||c===2&&!Ce(t[0][0]))&&(a=!0)}else if(Ce(t)&&!Ae(t))o=Ii;else if(H(t))if(!isNaN(+t))o=Ii;else{var l=Kr(t);l&&(s=l,o=zi)}else if(De(t)){var u=P({},s);u.colorStops=R(t.colorStops,function(e){return{offset:e.offset,color:Kr(e.color)}}),vi(t)?o=Bi:yi(t)&&(o=Vi),s=u}i===0?this.valType=o:(o!==this.valType||o===Hi)&&(a=!0),this.discrete=this.discrete||a;var d={time:e,value:s,rawValue:t,percent:0};return n&&(d.easing=n,d.easingFunc=V(n)?n:tr[n]||Or(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=Wi(r),c=Ui(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?Gi:e[s];if((Wi(i)||c)&&!g&&(g=this._additiveValue=[]),this.discrete)e[s]=h<1?f.rawValue:p.rawValue;else if(Wi(i))i===Li?Di(g,f[r],p[r],h):Oi(g,f[r],p[r],h);else if(Ui(i)){var _=f[r],v=p[r],y=i===Bi;e[s]={type:y?`linear`:`radial`,x:Ei(_.x,v.x,h),y:Ei(_.y,v.y,h),colorStops:R(_.colorStops,function(e,t){var n=v.colorStops[t];return{offset:Ei(e.offset,n.offset,h),color:Pi(Di([],e.color,n.color,h))}}),global:v.global},y?(e[s].x2=Ei(_.x2,v.x2,h),e[s].y2=Ei(_.y2,v.y2,h)):e[s].r=Ei(_.r,v.r,h)}else if(c)Di(g,f[r],p[r],h),n||(e[s]=Pi(g));else{var b=Ei(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===Ii?e[n]=e[n]+r:t===zi?(Kr(e[n],Gi),ki(Gi,Gi,r,1),e[n]=Pi(Gi)):t===Li?ki(e[n],e[n],r,1):t===Ri&&Ai(e[n],e[n],r,1)},e}(),qi=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){ue(`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,ye(t),n)},e.prototype.whenWithKeys=function(e,t,n,r){for(var i=this._tracks,a=0;a0&&s.addKeyframe(0,Ni(c),r),this._trackKeys.push(o)}s.addKeyframe(e,Ni(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}();function Ji(){return new Date().getTime()}var Yi=function(e){Xe(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=Ji()-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&&(er(t),!e._paused&&e.update())}er(t)},t.prototype.start=function(){this._running||(this._time=Ji(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||=(this._pauseStart=Ji(),!0)},t.prototype.resume=function(){this._paused&&=(this._pausedTime+=Ji()-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 qi(e,t.loop);return this.addAnimator(n),n},t}(vt),Xi=300,Zi=y.domSupported,Qi=(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:R(e,function(e){var t=e.replace(`mouse`,`pointer`);return n.hasOwnProperty(t)?t:e})}})(),$i={mouse:[`mousemove`,`mouseup`],pointer:[`pointermove`,`pointerup`]},ea=!1;function ta(e){var t=e.pointerType;return t===`pen`||t===`touch`}function na(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 ra(e){e&&(e.zrByTouch=!0)}function ia(e,t){return zt(e.dom,new oa(e,t),!0)}function aa(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 oa=function(){function e(e,t){this.stopPropagation=qe,this.stopImmediatePropagation=qe,this.preventDefault=qe,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return e}(),sa={mousedown:function(e){e=zt(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger(`mousedown`,e)},mousemove:function(e){e=zt(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=zt(this.dom,e),this.__togglePointerCapture(!1),this.trigger(`mouseup`,e)},mouseout:function(e){e=zt(this.dom,e);var t=e.toElement||e.relatedTarget;aa(this,t)||(this.__pointerCapturing&&(e.zrEventControl=`no_globalout`),this.trigger(`mouseout`,e))},wheel:function(e){ea=!0,e=zt(this.dom,e),this.trigger(`mousewheel`,e)},mousewheel:function(e){ea||(e=zt(this.dom,e),this.trigger(`mousewheel`,e))},touchstart:function(e){e=zt(this.dom,e),ra(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,`start`),sa.mousemove.call(this,e),sa.mousedown.call(this,e)},touchmove:function(e){e=zt(this.dom,e),ra(e),this.handler.processGesture(e,`change`),sa.mousemove.call(this,e)},touchend:function(e){e=zt(this.dom,e),ra(e),this.handler.processGesture(e,`end`),sa.mouseup.call(this,e),new Date-+this.__lastTouchMomentSa||e<-Sa}var wa=[],Ta=[],Ea=Yt(),Da=Math.abs,Oa=function(){function e(){}return e.prototype.getLocalTransform=function(e){return ka(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 Ca(this.rotation)||Ca(this.x)||Ca(this.y)||Ca(this.scaleX-1)||Ca(this.scaleY-1)||Ca(this.skewX)||Ca(this.skewY)},e.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),n=this.transform;if(!(t||e)){n&&(xa(n),this.invTransform=null);return}n||=Yt(),t?this.getLocalTransform(n):xa(n),e&&(t?Qt(n,e,n):Zt(n,e)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||Yt(),nn(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(wa);var n=wa[0]<0?-1:1,r=wa[1]<0?-1:1,i=((wa[0]-n)*t+n)/wa[0]||0,a=((wa[1]-r)*t+r)/wa[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||Yt(),Qt(Ta,e.invTransform,t),t=Ta);var n=this.originX,r=this.originY;(n||r)&&(Ea[4]=n,Ea[5]=r,Qt(Ta,t,Ea),Ta[4]-=n,Ta[5]-=r,t=Ta),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&&pt(n,n,r),n},e.prototype.transformCoordToGlobal=function(e,t){var n=[e,t],r=this.transform;return r&&pt(n,n,r),n},e.prototype.getLineScale=function(){var e=this.transform;return e&&Da(e[0]-1)>1e-10&&Da(e[3]-1)>1e-10?Math.sqrt(Da(e[0]*e[3]-e[2]*e[1])):1},e.prototype.copyTransform=function(e){Ma(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&&en(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}(),ka=Oa.getLocalTransform;function Aa(){return new Oa}var ja=[`x`,`y`,`originX`,`originY`,`anchorX`,`anchorY`,`rotation`,`scaleX`,`scaleY`,`skewX`,`skewY`];function Ma(e,t){return fe(e,t,ja)}function Na(e){Pa||=new Mr(100),e||=`12px sans-serif`;var t=Pa.get(e);return t||(t={font:e,strWidthCache:new Mr(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:D.measureText(`国`,e).width,asciiCharWidth:D.measureText(`a`,e).width},Pa.put(e,t)),t}var Pa;function Fa(e){if(!(Ia>=La)){e||=`12px sans-serif`;for(var t=[],n=+new Date,r=0;r<=127;r++)t[r]=D.measureText(String.fromCharCode(r),e).width;var i=+new Date-n;return i>16?Ia=La:i>2&&Ia++,t}}var Ia=0,La=5;function Ra(e,t){return e.asciiWidthMapTried||=(e.asciiWidthMap=Fa(e.font),!0),0<=t&&t<=127?e.asciiWidthMap==null?e.asciiCharWidth:e.asciiWidthMap[t]:e.stWideCharWidth}function za(e,t){var n=e.strWidthCache,r=n.get(t);return r??(r=D.measureText(t,e.font).width,n.put(t,r)),r}function Ba(e,t,n,r){var i=za(Na(t),e),a=Wa(t);return new J(Ha(0,i,n),Ua(0,a,r),i,a)}function Va(e,t,n,r){var i=((e||``)+``).split(` +`);if(i.length===1)return Ba(i[0],t,n,r);for(var a=new J(0,0,0,0),o=0;o=0?parseFloat(e)/100*t:parseFloat(e):e}function Ka(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+=Ga(r[0],n.width),l+=Ga(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 qa=`__zr_normal__`,Ja=ja.concat([`ignore`]),Ya=ge(ja,function(e,t){return e[t]=!0,e},{ignore:!1}),Xa={},Za=new J(0,0,0,0),Qa=[],$a=function(){function e(e){this.id=le(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return e.prototype._init=function(e){this.attr(e)},e.prototype.drift=function(e,t,n){switch(this.draggable){case`horizontal`:t=0;break;case`vertical`:e=0;break}var r=this.transform;r||=this.transform=[1,0,0,1,0,0],r[4]+=e,r[5]+=t,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(e){var t=this._textContent;if(t&&(!t.ignore||e)){this.textConfig||={};var n=this.textConfig,r=n.local,i=t.innerTransformable,a=void 0,o=void 0,s=!1;i.parent=r?this:null;var c=!1;i.copyTransform(t);var l=n.position!=null,u=n.autoOverflowArea,d=void 0;if((u||l)&&(d=Za,n.layoutRect?d.copy(n.layoutRect):d.copy(this.getBoundingRect()),r||d.applyTransform(this.transform)),l){this.calculateTextPosition?this.calculateTextPosition(Xa,n,d):Ka(Xa,n,d),i.x=Xa.x,i.y=Xa.y,a=Xa.align,o=Xa.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var p=void 0,m=void 0;f===`center`?(p=d.width*.5,m=d.height*.5):(p=Ga(f[0],d.width),m=Ga(f[1],d.height)),c=!0,i.originX=-i.x+p+(r?0:d.x),i.originY=-i.y+m+(r?0:d.y)}}n.rotation!=null&&(i.rotation=n.rotation);var h=n.offset;h&&(i.x+=h[0],i.y+=h[1],c||(i.originX=-h[0],i.originY=-h[1]));var g=this._innerTextDefaultStyle||={};if(u){var _=g.overflowRect=g.overflowRect||new J(0,0,0,0);i.getLocalTransform(Qa),nn(Qa,Qa),J.copy(_,d),_.applyTransform(Qa)}else g.overflowRect=null;var v=n.inside==null?typeof n.position==`string`&&n.position.indexOf(`inside`)>=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()?ya:va},e.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),n=typeof t==`string`&&Kr(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,ei(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||{},P(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(U(e))for(var n=ye(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(qa,!1,e)},e.prototype.useState=function(e,t,n,r){var i=e===qa;if(!(!this.hasState()&&i)){var a=this.currentStates,o=this.stateTransition;if(!(I(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){ue(`State `+e+` not exists.`);return}i||this.saveCurrentToNormalState(s);var c=this._textContent,l=so(this,c,s,r);l&&!this.__inHover&&(this.__inHover=l),this._applyStateObj(e,s,this._normalState,t,lo(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=I(r,e),a=I(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 Y=function(e){Xe(t,e);function t(t){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(t),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(e){return this._children[e]},t.prototype.childOfName=function(e){for(var t=this._children,n=0;n=0&&(n.splice(r,0,e),this._doAdd(e))}return this},t.prototype.replace=function(e,t){var n=I(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=I(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;n0&&(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;t0){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 X=Io;function Io(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 Lo(e,t,n)}function Lo(e,t,n){return H(e)?zo(e)?parseFloat(e)/100*t+(n||0):parseFloat(e):e==null?NaN:+e}function Ro(e){return H(e)&&zo(e)}function zo(e){return!!Co(e).match(/%$/)}function Bo(e,t,n){return isNaN(t)?n?``+e:+e:(t=wo(To(0,t),So),e=(+e).toFixed(t),n?e:+e)}function Vo(e){return e.sort(function(e,t){return e-t}),e}function Ho(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,n=0;n<15;n++,t*=10)if(Do(e*t)/t===e)return n}return Uo(e)}function Uo(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 To(0,(a<0?0:i-1-a)-r)}function Wo(e,t,n){var r=Eo(e[1]-e[0]);if(!isFinite(r)||r===0)return NaN;var i=jo(2*Eo(n||1)*Eo(r))/Mo,a=jo(Eo(t))/Mo,o=To(0,ko(-i+a));return isFinite(o)||(o=NaN),o}function Go(e,t){var n=ge(e,function(e,t){return e+(isNaN(t)?0:t)},0);if(n===0)return[];for(var r=Ao(10,t),i=R(e,function(e){return(isNaN(e)?0:e)/n*r*100}),a=r*100,o=R(i,function(e){return Oo(e)}),s=ge(o,function(e,t){return e+t},0),c=R(i,function(e,t){return e-o[t]});sl&&(l=c[d],u=d);++o[u],c[u]=0,++s}return R(o,function(e){return e/r})}function Ko(e,t){var n=To(Ho(e),Ho(t)),r=e+t;return n>So?r:Bo(r,n)}var qo=Ao(2,53)-1;function Jo(e){var t=No*2;return(e%t+t)%t}function Yo(e){return e>-xo&&e=10&&t++,t}function es(e,t){var n=$o(e),r=Ao(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,Bo(e,-n)}function ts(e,t){var n=(e.length-1)*t+1,r=Oo(n),i=+e[r-1],a=n-r;return a?i+a*(e[r]-i):i}function ns(e){e.sort(function(e,t){return s(e,t,0)?-1:1});for(var t=-1/0,n=1,r=0;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 ec(e){e.option=e.parentModel=e.ecModel=null}function tc(){return[1/0,-1/0]}function nc(e,t){oc(t)&&(te[1]&&(e[1]=t))}function rc(e,t){oc(t)&&te[1]&&(e[1]=t)}function ac(e,t){sc(t[0],t[1])&&(t[0]e[1]&&(e[1]=t[1]))}function oc(e){return e!=null&&isFinite(e)}function sc(e,t){return oc(e)&&oc(t)&&e<=t}function cc(e){var t=e[1]-e[0];return isFinite(t)&&t>=0}function lc(e){sc(e[0],e[1])&&e[0]>e[1]&&(e[0]=e[1])}function uc(){var e=`__ec_once_`+ dc++;return function(t,n){K(t,e)||(t[e]=1,n())}}var dc=as();function fc(e,t,n){var r=G(),i=0;L(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 pc(e){return e.value+``}function mc(e){return e+``}function hc(e,t){return W(t,!0)?e.seriesIndex+2:0}function gc(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 _c(e,t){return{seriesType:e,overallReset:t}}function vc(e){return{overallReset:e}}var yc=`.`,bc=`___EC__COMPONENT__CONTAINER___`,xc=`___EC__EXTENDED_CLASS___`;function Sc(e){var t={main:``,sub:``};if(e){var n=e.split(yc);t.main=n[0]||``,t.sub=n[1]||``}return t}function Cc(e){Fe(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),`componentType "`+e+`" illegal`)}function wc(e){return!!(e&&e[xc])}function Tc(e,t){e.$constructor=e,e.extend=function(e){var t=this,n;return Ec(t)?n=function(e){_(t,e);function t(){return e.apply(this,arguments)||this}return t}(t):(n=function(){(e.$constructor||t).apply(this,arguments)},pe(n,this)),P(n.prototype,e),n[xc]=!0,n.extend=this.extend,n.superCall=Ac,n.superApply=jc,n.superClass=t,n}}function Ec(e){return V(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function Dc(e,t){e.extend=t.extend}var Oc=Math.round(Math.random()*10);function kc(e){var t=[`__\0is_clz`,Oc++].join(`_`);e.prototype[t]=!0,e.isInstance=function(e){return!!(e&&e[t])}}function Ac(e,t){var n=[...arguments].slice(2);return this.superClass.prototype[t].apply(e,n)}function jc(e,t,n){return this.superClass.prototype[t].apply(e,n)}function Mc(e){var t={};e.registerClass=function(e){var r=e.type||e.prototype.type;if(r){Cc(r),e.prototype.type=r;var i=Sc(r);if(!i.sub)t[i.main]=e;else if(i.sub!==bc){var a=n(i);a[i.sub]=e}}return e},e.getClass=function(e,n,r){var i=t[e];if(i&&i[bc]&&(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=Sc(e),r=[],i=t[n.main];return i&&i[bc]?L(i,function(e,t){t!==bc&&r.push(e)}):r.push(i),r},e.hasClass=function(e){return!!t[Sc(e).main]},e.getAllClassMainTypes=function(){var e=[];return L(t,function(t,n){e.push(n)}),e},e.hasSubTypes=function(e){var n=t[Sc(e).main];return n&&n[bc]};function n(e){var n=t[e.main];return(!n||!n[bc])&&(n=t[e.main]={},n[bc]=!0),n}}function Nc(e,t){for(var n=0;n=0||i&&I(i,s)<0)){var c=n.getShallow(s,t);c!=null&&(a[e[o][0]]=c)}}return a}}var Pc=Nc([[`fill`,`color`],[`shadowBlur`],[`shadowOffsetX`],[`shadowOffsetY`],[`opacity`],[`shadowColor`]]),Fc=function(){function e(){}return e.prototype.getAreaStyle=function(e,t){return Pc(this,e,t)},e}(),Ic=new Mr(50);function Lc(e){if(typeof e==`string`){var t=Ic.get(e);return t&&t.image}else return e}function Rc(e,t,n,r,i){if(!e)return t;if(typeof e==`string`){if(t&&t.__zrImageSrc===e||!n)return t;var a=Ic.get(e),o={hostEl:n,cb:r,cbPayload:i};return a?(t=a.image,!Bc(t)&&a.pending.push(o)):(t=D.loadImage(e,zc,zc),t.__zrImageSrc=e,Ic.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e}function zc(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=s;l++)c-=s;var u=za(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 Wc(e,t,n){var r=n.containerWidth,i=n.contentWidth,a=n.fontMeasureInfo;if(!r){e.textLine=``,e.isTruncated=!1;return}var o=za(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?Gc(t,i,a):o>0?Math.floor(t.length*i/o):0;t=t.substr(0,c),o=za(a,t)}t===``&&(t=n.placeholder),e.textLine=t,e.isTruncated=!0}function Gc(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=Uc(h,l,t.ellipsis,{minChar:t.truncateMinChar,placeholder:t.placeholder}),x={},S=0;S<_.length;S++)Wc(x,_[S],b),_[S]=x.textLine,m||=x.isTruncated;for(var C=g,w=0,T=Na(l),S=0;S<_.length;S++)w=Math.max(za(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 qc=function(){function e(){}return e}(),Jc=function(){function e(e){this.tokens=[],e&&(this.tokens=e)}return e}(),Yc=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 Xc(e,t,n,r,i){var a=new Yc,o=al(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=Vc.lastIndex=0,h;(h=Vc.exec(o))!=null;){var g=h.index;g>m&&Zc(a,o.substring(m,g),t,p),Zc(a,h[2],t,p,h[1]),m=Vc.lastIndex}md){var re=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=tl(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=Na(c),_=0;_=32&&t<=591||t>=880&&t<=4351||t>=4608&&t<=5119||t>=7680&&t<=8303}var $c=ge(`,&?/;] `.split(``),function(e,t){return e[t]=!0,e},{});function el(e){return Qc(e)?!!$c[e]:!0}function tl(e,t,n,r,i){for(var a=[],o=[],s=``,c=``,l=0,u=0,d=Na(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 nl(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;J.set(rl,Ha(n,o,i),Ua(r,s,a),o,s),J.intersect(t,rl,null,il);var c=il.outIntersectRect;e.outerWidth=c.width,e.outerHeight=c.height,e.baseX=Ha(c.x,c.width,i,!0),e.baseY=Ua(c.y,c.height,a,!0)}}var rl=new J(0,0,0,0),il={outIntersectRect:{},clamp:!0};function al(e){return e==null?e=``:e+=``}function ol(e){var t=al(e.text),n=e.font;return sl(e,za(Na(n),t),Wa(n),null)}function sl(e,t,n,r){var i=new J(Ha(e.x||0,t,e.textAlign),Ua(e.y||0,n,e.textBaseline),t,n),a=r??(cl(e)?e.lineWidth:0);return a>0&&(i.x-=a/2,i.y-=a/2,i.width+=a,i.height+=a),i}function cl(e){var t=e.stroke;return t!=null&&t!==`none`&&e.lineWidth>0}var ll=`__zr_style_`+Math.round(Math.random()*10),ul={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:`#000`,opacity:1,blend:`source-over`},dl={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ul[ll]=!0;var fl=[`z`,`z2`,`invisible`],pl=[`invisible`],ml=function(e){Xe(t,e);function t(t){return e.call(this,t)||this}return t.prototype._init=function(t){for(var n=ye(t),r=0;r1e-4){s[0]=e-n,s[1]=t-r,c[0]=e+n,c[1]=t+r;return}if(Cl[0]=xl(i)*n+e,Cl[1]=bl(i)*r+t,wl[0]=xl(a)*n+e,wl[1]=bl(a)*r+t,l(s,Cl,wl),u(c,Cl,wl),i%=Sl,i<0&&(i+=Sl),a%=Sl,a<0&&(a+=Sl),i>a&&!o?a+=Sl:ii&&(Tl[0]=xl(p)*n+e,Tl[1]=bl(p)*r+t,l(s,Tl,s),u(c,Tl,c))}var Nl={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Pl=[],Fl=[],Il=[],Ll=[],Rl=[],zl=[],Bl=Math.min,Vl=Math.max,Hl=Math.cos,Ul=Math.sin,Wl=Math.abs,Gl=Math.PI,Kl=Gl*2,ql=typeof Float32Array<`u`,Jl=[];function Yl(e){return Math.round(e/Gl*1e8)/1e8%2*Gl}function Xl(e,t){var n=Yl(e[0]);n<0&&(n+=Kl);var r=n-e[0],i=e[1];i+=r,!t&&i-n>=Kl?i=n+Kl:t&&n-i>=Kl?i=n-Kl:!t&&n>i?i=n+(Kl-Yl(n-i)):t&&n0&&(this._ux=Wl(n/ga/e)||0,this._uy=Wl(n/ga/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(Nl.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=Wl(e-this._xi),r=Wl(t-this._yi),i=n>this._ux||r>this._uy;if(this.addData(Nl.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(Nl.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(Nl.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(),Jl[0]=r,Jl[1]=i,Xl(Jl,a),r=Jl[0],i=Jl[1];var o=i-r;return this.addData(Nl.A,e,t,n,n,r,o,0,+!a),this._ctx&&this._ctx.arc(e,t,n,r,i,a),this._xi=Hl(i)*n+e,this._yi=Ul(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(Nl.R,e,t,n,r),this},e.prototype.closePath=function(){this._drawPendingPt(),this.addData(Nl.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)&&ql&&(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(){Il[0]=Il[1]=Rl[0]=Rl[1]=Number.MAX_VALUE,Ll[0]=Ll[1]=zl[0]=zl[1]=-Number.MAX_VALUE;var e=this.data,t=0,n=0,r=0,i=0,a;for(a=0;an||Wl(v)>r||d===t-1)&&(m=Math.sqrt(_*_+v*v),i=h,a=g);break;case Nl.C:var y=e[d++],b=e[d++],h=e[d++],g=e[d++],x=e[d++],S=e[d++];m=yr(i,a,y,b,h,g,x,S,10),i=x,a=S;break;case Nl.Q:var y=e[d++],b=e[d++],h=e[d++],g=e[d++];m=Er(i,a,y,b,h,g,10),i=h,a=g;break;case Nl.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=Hl(D)*T+C,s=Ul(D)*E+w),m=Vl(T,E)*Bl(Kl,Math.abs(O)),i=Hl(k)*T+C,a=Ul(k)*E+w;break;case Nl.R:o=i=e[d++],s=a=e[d++];var A=e[d++],j=e[d++];m=A*2+j*2;break;case Nl.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 Nl.M:o=c=n[x++],s=l=n[x++],e.moveTo(c,l);break;case Nl.L:u=n[x++],d=n[x++];var w=Wl(u-c),T=Wl(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 Nl.C:var k=n[x++],A=n[x++],j=n[x++],ee=n[x++],te=n[x++],ne=n[x++];if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;_r(c,k,j,te,D,Pl),_r(l,A,ee,ne,D,Fl),e.bezierCurveTo(Pl[1],Fl[1],Pl[2],Fl[2],Pl[3],Fl[3]);break lo}h+=E}e.bezierCurveTo(k,A,j,ee,te,ne),c=te,l=ne;break;case Nl.Q:var k=n[x++],A=n[x++],j=n[x++],ee=n[x++];if(f){var E=p[g++];if(h+E>_){var D=(_-h)/E;wr(c,k,j,D,Pl),wr(l,A,ee,D,Fl),e.quadraticCurveTo(Pl[1],Fl[1],Pl[2],Fl[2]);break lo}h+=E}e.quadraticCurveTo(k,A,j,ee),c=j,l=ee;break;case Nl.A:var re=n[x++],ie=n[x++],ae=n[x++],oe=n[x++],se=n[x++],ce=n[x++],le=n[x++],ue=!n[x++],M=ae>oe?ae:oe,N=Wl(ae-oe)>.001,de=se+ce,P=!1;if(f){var E=p[g++];h+E>_&&(de=se+ce*(_-h)/E,P=!0),h+=E}if(N&&e.ellipse?e.ellipse(re,ie,ae,oe,le,se,de,ue):e.arc(re,ie,M,se,de,ue),P)break lo;C&&(o=Hl(se)*ae+re,s=Ul(se)*oe+ie),c=Hl(de)*ae+re,l=Ul(de)*oe+ie;break;case Nl.R:o=c=n[x],s=l=n[x+1],u=n[x++],d=n[x++];var fe=n[x++],F=n[x++];if(f){var E=p[g++];if(h+E>_){var I=_-h;e.moveTo(u,d),e.lineTo(u+Bl(I,fe),d),I-=fe,I>0&&e.lineTo(u+fe,d+Bl(I,F)),I-=F,I>0&&e.lineTo(u+Vl(fe-I,0),d+F),I-=fe,I>0&&e.lineTo(u,d+Vl(F-I,0));break lo}h+=E}e.rect(u,d,fe,F);break;case Nl.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=Nl,e.initDefaultProps=(function(){var t=e.prototype;t._saveData=!0,t._ux=0,t._uy=0,t._pendingPtDist=0,t._version=0})(),e}();function Ql(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+=ru);var f=Math.atan2(c,s);return f<0&&(f+=ru),f>=r&&f<=i||f+ru>=r&&f+ru<=i}function au(e,t,n,r,i,a){if(a>t&&a>r||ai?s:0}var ou=Zl.CMD,su=Math.PI*2,cu=1e-4;function lu(e,t){return Math.abs(e-t)t&&l>r&&l>a&&l>s||l1&&fu(),p=pr(t,r,a,s,du[0]),f>1&&(m=pr(t,r,a,s,du[1]))),f===2?gt&&s>r&&s>a||s=0&&l<=1){for(var u=0,d=br(t,r,a,l),f=0;fn||s<-n)return 0;var c=Math.sqrt(n*n-s*s);uu[0]=-c,uu[1]=c;var l=Math.abs(r-i);if(l<1e-4)return 0;if(l>=su-1e-4){r=0,i=su;var u=a?1:-1;return o>=uu[0]+e&&o<=uu[1]+e?u:0}if(r>i){var d=r;r=i,i=d}r<0&&(r+=su,i+=su);for(var f=0,p=0;p<2;p++){var m=uu[p];if(m+e>o){var h=Math.atan2(s,m),u=a?1:-1;h<0&&(h=su+h),(h>=r&&h<=i||h+su>=r&&h+su<=i)&&(h>Math.PI/2&&h1&&(n||(s+=au(c,l,u,d,r,i))),g&&(c=a[m],l=a[m+1],u=c,d=l),h){case ou.M:u=a[m++],d=a[m++],c=u,l=d;break;case ou.L:if(n){if(Ql(c,l,a[m],a[m+1],t,r,i))return!0}else s+=au(c,l,a[m],a[m+1],r,i)||0;c=a[m++],l=a[m++];break;case ou.C:if(n){if($l(c,l,a[m++],a[m++],a[m++],a[m++],a[m],a[m+1],t,r,i))return!0}else s+=pu(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 ou.Q:if(n){if(eu(c,l,a[m++],a[m++],a[m],a[m+1],t,r,i))return!0}else s+=mu(c,l,a[m++],a[m++],a[m],a[m+1],r,i)||0;c=a[m++],l=a[m++];break;case ou.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+=au(c,l,f,p,r,i);var w=(r-_)*b/y+_;if(n){if(iu(_,v,b,x,x+S,C,t,w,i))return!0}else s+=hu(_,v,b,x,x+S,C,w,i);c=Math.cos(x+S)*y+_,l=Math.sin(x+S)*b+v;break;case ou.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(Ql(u,d,f,d,t,r,i)||Ql(f,d,f,p,t,r,i)||Ql(f,p,u,p,t,r,i)||Ql(u,p,u,d,t,r,i))return!0}else s+=au(f,d,f,p,r,i),s+=au(u,p,u,d,r,i);break;case ou.Z:if(n){if(Ql(c,l,u,d,t,r,i))return!0}else s+=au(c,l,u,d,r,i);c=u,l=d;break}}return!n&&!lu(l,d)&&(s+=au(c,l,u,d,r,i)||0),s!==0}function _u(e,t,n){return gu(e,0,!1,t,n)}function vu(e,t,n,r){return gu(e,t,!0,n,r)}var yu=F({fill:`#000`,stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:`butt`,miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ul),bu={style:F({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},dl.style)},xu=ja.concat([`invisible`,`culling`,`z`,`z2`,`zlevel`,`parent`]),Su=function(e){Xe(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?va:t>.2?ba:ya}else if(e)return ya}return va},t.prototype.getInsideTextStroke=function(e){var t=this.style.fill;if(H(t)){var n=this.__zr;if(!!(n&&n.isDarkMode())==ti(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 Zl(!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)),vu(a,o/s,e,t)))return!0}if(this.hasFill())return _u(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:P(n,e),this.dirtyShape(),this},t.prototype.shapeChanged=function(){return!!(this.__dirty&4)},t.prototype.createStyle=function(e){return Ge(yu,e)},t.prototype._innerSaveToNormal=function(t){e.prototype._innerSaveToNormal.call(this,t);var n=this._normalState;t.shape&&!n.shape&&(n.shape=P({},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=P({},r.shape),P(c,n.shape)):(c=P({},i?this.shape:r.shape),P(c,n.shape)):s&&(c=r.shape),c)if(a){this.shape=P({},this.shape);for(var l={},u=ye(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 Au=Math.round;function ju(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?(Au(r*2)===Au(i*2)&&(e.x1=e.x2=Nu(r,s,!0)),Au(a*2)===Au(o*2)&&(e.y1=e.y2=Nu(a,s,!0)),e):e}}function Mu(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=Nu(r,s,!0),e.y=Nu(i,s,!0),e.width=Math.max(Nu(r+a,s,!1)-e.x,a===0?0:1),e.height=Math.max(Nu(i+o,s,!1)-e.y,o===0?0:1),e):e}}function Nu(e,t,n){if(!t)return e;var r=Au(e*2);return(r+Au(t))%2==0?r/2:(r+(n?1:-1))/2}var Pu=function(){function e(){this.x=0,this.y=0,this.width=0,this.height=0}return e}(),Fu={},Iu=function(e){Xe(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new Pu},t.prototype.buildPath=function(e,t){var n,r,i,a;if(this.subPixelOptimize){var o=Mu(Fu,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?ku(e,t):e.rect(n,r,i,a)},t.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},t}(Su);Iu.prototype.type=`rect`;var Lu={fill:`#000`},Ru=2,zu={},Bu={style:F({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},dl.style)},Vu=function(e){Xe(t,e);function t(t){var n=e.call(this)||this;return n.type=`text`,n._children=[],n._defaultStyle=Lu,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&&ed(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=Qu(i,a,d),l-=e.height/2-d[0]-e.innerHeight/2);var f=this._getOrCreateChild(wu),p=f.createStyle();f.useStyle(p);var m=this._defaultStyle,h=!1,g=0,_=!1,v=Zu(`fill`in s?s.fill:`fill`in t?t.fill:(h=!0,m.fill)),y=Xu(`stroke`in s?s.stroke:`stroke`in t?t.stroke:!u&&!o&&(!m.autoStroke||h)?(g=Ru,_=!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=Me(s.opacity,t.opacity,1),Ku(p,s),y&&(p.lineWidth=Me(s.lineWidth,t.lineWidth,g),p.lineDash=W(s.lineDash,t.lineDash),p.lineDashOffset=t.lineDashOffset||0,p.stroke=y),v&&(p.fill=v),f.setBoundingRect(sl(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(Iu),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=W(e.fillOpacity,1)}else if(l){m=this._getOrCreateChild(Ou),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=W(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=Me(e.opacity,t.opacity,1)},t.makeFont=function(e){var t=``;return qu(e)&&(t=[e.fontStyle,e.fontWeight,Gu(e.fontSize),e.fontFamily||`sans-serif`].join(` `)),t&&Ie(t)||e.textFont||e.font},t}(ml),Hu={left:!0,right:1,center:1},Uu={top:1,bottom:1,middle:1},Wu=[`fontStyle`,`fontWeight`,`fontSize`,`fontFamily`];function Gu(e){return typeof e==`string`&&(e.indexOf(`px`)!==-1||e.indexOf(`rem`)!==-1||e.indexOf(`em`)!==-1)?e:isNaN(+e)?`12px`:e+`px`}function Ku(e,t){for(var n=0;n=0,a=!1;if(e instanceof Su){var o=_d(e),s=i&&o.selectFill||o.normalFill,c=i&&o.selectStroke||o.normalStroke;if(Dd(s)||Dd(c)){r||={};var l=r.style||{};l.fill===`inherit`?(a=!0,r=P({},r),l=P({},l),l.fill=s):!Dd(l.fill)&&Dd(s)?(a=!0,r=P({},r),l=P({},l),l.fill=ri(s)):!Dd(l.stroke)&&Dd(c)&&(a||(r=P({},r),l=P({},l)),l.stroke=ri(c)),r.style=l}}if(r&&r.z2==null){a||(r=P({},r));var u=e.z2EmphasisLift;r.z2=e.z2+(u??10)}return r}function Bd(e,t,n){if(n&&n.z2==null){n=P({},n);var r=e.z2SelectLift;n.z2=e.z2+(r??9)}return n}function Vd(e,t,n){var r=I(e.currentStates,t)>=0,i=e.style.opacity,a=r?null:Rd(e,[`opacity`],t,{opacity:1});n||={};var o=n.style||{};return o.opacity??(n=P({},n),o=P({opacity:r?i:a.opacity*.1},o),n.style=o),n}function Hd(e,t){var n=this.states[e];if(this.style){if(e===`emphasis`)return zd(this,e,t,n);if(e===`blur`)return Vd(this,e,n);if(e===`select`)return Bd(this,e,n)}return n}function Ud(e){e.stateProxy=Hd;var t=e.getTextContent(),n=e.getTextGuideLine();t&&(t.stateProxy=Hd),n&&(n.stateProxy=Hd)}function Wd(e,t){!Qd(e,t)&&!e.__highByOuter&&Id(e,kd)}function Gd(e,t){!Qd(e,t)&&!e.__highByOuter&&Id(e,Ad)}function Kd(e,t){e.__highByOuter|=1<<(t||0),Id(e,kd)}function qd(e,t){!(e.__highByOuter&=~(1<<(t||0)))&&Id(e,Ad)}function Jd(e){Id(e,jd)}function Yd(e){Id(e,Md)}function Xd(e){Id(e,Nd)}function Zd(e){Id(e,Pd)}function Qd(e,t){return e.__highDownSilentOnTouch&&t.zrByTouch}function $d(e){var t=e.getModel(),n=[],r=[];t.eachComponent(function(t,i){var a=vd(i),o=md(e,i),s=t===`series`;!s&&r.push(o),a.isBlured&&(o.group.traverse(function(e){Md(e)}),s&&n.push(i)),a.isBlured=!1}),L(r,function(e){e&&e.toggleBlurSeries&&e.toggleBlurSeries(n,!1,t)})}function ef(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 uf(e,t,n){_f(e,!0),Id(e,Ud),pf(e,t,n)}function df(e){_f(e,!1)}function ff(e,t,n,r){r?df(e):uf(e,t,n)}function pf(e,t,n){var r=Z(e);t==null?r.focus&&=null:(r.focus=t,r.blurScope=n)}var mf=[`emphasis`,`blur`,`select`],hf={itemStyle:`getItemStyle`,lineStyle:`getLineStyle`,areaStyle:`getAreaStyle`};function gf(e,t,n,r){n||=`itemStyle`;for(var i=0;i1&&(o*=kf(m),s*=kf(m));var h=(i===a?-1:1)*kf((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+jf(d)*g-Af(d)*_,y=(t+r)/2+Af(d)*g+jf(d)*_,b=Ff([1,0],[(f-g)/o,(p-_)/s]),x=[(f-g)/o,(p-_)/s],S=[(-1*f-g)/o,(-1*p-_)/s],C=Ff(x,S);if(Pf(x,S)<=-1&&(C=Mf),Pf(x,S)>=1&&(C=0),C<0){var w=Math.round(C/Mf*1e6)/1e6;C=Mf*2+w%2*Mf}u.addData(l,v,y,o,s,b,C,d,a)}var Lf=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,Rf=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;function zf(e){var t=new Zl;if(!e)return t;var n=0,r=0,i=n,a=r,o,s=Zl.CMD,c=e.match(Lf);if(!c)return t;for(var l=0;lA*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 up(e){var t;if(B(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 dp(e,t){var n,r=ap(t.r,0),i=ap(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=rp(c-s),p=f>Qf&&f%Qf;if(p>sp&&(f=p),!(r>sp))e.moveTo(l,u);else if(f>Qf-sp)e.moveTo(l+r*ep(s),u+r*$f(s)),e.arc(l,u,r,s,c,!d),i>sp&&(e.moveTo(l+i*ep(c),u+i*$f(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*ep(s),j=r*$f(s),ee=i*ep(c),te=i*$f(c),ne=f>sp;if(ne){var re=t.cornerRadius;re&&(n=up(re),m=n[0],h=n[1],g=n[2],_=n[3]);var ie=rp(r-i)/2;if(v=op(ie,g),y=op(ie,_),b=op(ie,m),x=op(ie,h),w=S=ap(v,y),T=C=ap(b,x),(S>sp||C>sp)&&(E=r*ep(c),D=r*$f(c),O=i*ep(s),k=i*$f(s),fsp){var N=op(g,w),de=op(_,w),P=lp(O,k,A,j,r,N,d),fe=lp(E,D,ee,te,r,de,d);e.moveTo(l+P.cx+P.x0,u+P.cy+P.y0),w0&&e.arc(l+P.cx,u+P.cy,N,np(P.y0,P.x0),np(P.y1,P.x1),!d),e.arc(l,u,r,np(P.cy+P.y1,P.cx+P.x1),np(fe.cy+fe.y1,fe.cx+fe.x1),!d),de>0&&e.arc(l+fe.cx,u+fe.cy,de,np(fe.y1,fe.x1),np(fe.y0,fe.x0),!d))}else e.moveTo(l+A,u+j),e.arc(l,u,r,s,c,!d);if(!(i>sp)||!ne)e.lineTo(l+ee,u+te);else if(T>sp){var N=op(m,T),de=op(h,T),P=lp(ee,te,E,D,i,-de,d),fe=lp(A,j,O,k,i,-N,d);e.lineTo(l+P.cx+P.x0,u+P.cy+P.y0),T0&&e.arc(l+P.cx,u+P.cy,de,np(P.y0,P.x0),np(P.y1,P.x1),!d),e.arc(l,u,i,np(P.cy+P.y1,P.cx+P.x1),np(fe.cy+fe.y1,fe.cx+fe.x1),d),N>0&&e.arc(l+fe.cx,u+fe.cy,N,np(fe.y1,fe.x1),np(fe.y0,fe.x0),!d))}else e.lineTo(l+ee,u+te),e.arc(l,u,i,c,s,d)}e.closePath()}}}var fp=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}(),pp=function(e){Xe(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new fp},t.prototype.buildPath=function(e,t){dp(e,t)},t.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},t}(Su);pp.prototype.type=`sector`;var mp=function(){function e(){this.cx=0,this.cy=0,this.r=0,this.r0=0}return e}(),hp=function(e){Xe(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new mp},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}(Su);hp.prototype.type=`ring`;function gp(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=gp(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;szp[1]){if(i=!1,Bp.negativeSize||n)return i;var s=Lp(zp[0]-Rp[1]),c=Lp(Rp[0]-zp[1]);Fp(s,c)>Hp.len()&&(s=c||!Bp.bidirectional)&&(q.scale(Vp,o,-c*r),Bp.useDir&&Bp.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 Yp(e,t,n,r,i,a){Jp(`update`,e,t,n,r,i,a)}function Xp(e,t,n,r,i,a){Jp(`enter`,e,t,n,r,i,a)}function Zp(e){if(!e.__zr)return!0;for(var t=0;tAp,BezierCurve:()=>Op,BoundingRect:()=>J,Circle:()=>Jf,CompoundPath:()=>jp,Ellipse:()=>Xf,Group:()=>Y,HOVER_LAYER_FOR_INCREMENTAL:()=>2,HOVER_LAYER_FROM_THRESHOLD:()=>1,HOVER_LAYER_NO:()=>0,Image:()=>Ou,IncrementalDisplayable:()=>Gp,Line:()=>wp,LinearGradient:()=>Np,OrientedBoundingRect:()=>Up,Path:()=>Su,Point:()=>q,Polygon:()=>yp,Polyline:()=>xp,RadialGradient:()=>Pp,Rect:()=>Iu,Ring:()=>hp,Sector:()=>pp,Text:()=>Vu,WH:()=>om,XY:()=>am,applyTransform:()=>xm,calcZ2Range:()=>Wm,clipPointsByRect:()=>Em,clipRectByRect:()=>Dm,createIcon:()=>Om,decomposeTransform:()=>Jm,ensureCopyRect:()=>Vm,ensureCopyTransform:()=>Hm,expandOrShrinkRect:()=>Nm,extendPath:()=>lm,extendShape:()=>sm,getCurrentCanvasPainter:()=>Xm,getShapeClass:()=>dm,getTransform:()=>bm,groupTransition:()=>Tm,initProps:()=>Xp,isBoundingRectAxisAligned:()=>zm,isElementRemoved:()=>Zp,lineLineIntersect:()=>Am,linePolygonIntersect:()=>km,makeImage:()=>pm,makePath:()=>fm,mergePath:()=>hm,payloadDisableAnimation:()=>qm,registerShape:()=>um,removeElement:()=>Qp,removeElementWithFadeOut:()=>em,resizePath:()=>gm,retrieveZInfo:()=>Um,setTooltipConfig:()=>Im,subPixelOptimize:()=>ym,subPixelOptimizeLine:()=>_m,subPixelOptimizeRect:()=>vm,transformDirection:()=>Sm,traverseElements:()=>Rm,traverseUpdateZ:()=>Gm,updateProps:()=>Yp}),im={},am=[`x`,`y`],om=[`width`,`height`];function sm(e){return Su.extend(e)}var cm=Wf;function lm(e,t){return cm(e,t)}function um(e,t){im[e]=t}function dm(e){if(im.hasOwnProperty(e))return im[e]}function fm(e,t,n,r){var i=Uf(e,t);return n&&(r===`center`&&(n=mm(n,i.getBoundingRect())),gm(i,n)),i}function pm(e,t,n){var r=new Ou({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(mm(t,i))}}});return r}function mm(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 hm=Gf;function gm(e,t){if(e.applyTransform){var n=e.getBoundingRect().calculateTransform(t);e.applyTransform(n)}}function _m(e,t){return ju(e,e,{lineWidth:t}),e}function vm(e,t){return Mu(e,e,t),e}var ym=Nu;function bm(e,t){for(var n=Xt([]);e&&e!==t;)Qt(n,e.getLocalTransform(),n),e=e.parent;return n}function xm(e,t,n){return t&&!he(t)&&(t=Oa.getLocalTransform(t)),n&&(t=nn([],t)),pt([],e,t)}function Sm(e,t,n){var r=t[4]===0||t[5]===0||t[0]===0?1:Eo(2*t[4]/t[0]),i=t[4]===0||t[5]===0||t[2]===0?1:Eo(2*t[4]/t[2]),a=[e===`left`?-r:e===`right`?r:0,e===`top`?-i:e===`bottom`?i:0];return a=xm(a,t,n),Eo(a[0])>Eo(a[1])?a[0]>0?`right`:`left`:a[1]>0?`bottom`:`top`}function Cm(e){return!e.isGroup}function wm(e){return e.shape!=null}function Tm(e,t,n){if(!e||!t)return;function r(e){var t={};return e.traverse(function(e){Cm(e)&&e.anid&&(t[e.anid]=e)}),t}function i(e){var t={x:e.x,y:e.y,rotation:e.rotation};return wm(e)&&(t.shape=M(e.shape)),t}var a=r(e);t.traverse(function(e){if(Cm(e)&&e.anid){var t=a[e.anid];if(t){var r=i(e);e.attr(i(t)),Yp(e,r,n,Z(e).dataIndex)}}})}function Em(e,t){return R(e,function(e){var n=e[0];n=To(n,t.x),n=wo(n,t.x+t.width);var r=e[1];return r=To(r,t.y),r=wo(r,t.y+t.height),[n,r]})}function Dm(e,t){var n=To(e.x,t.x),r=wo(e.x+e.width,t.x+t.width),i=To(e.y,t.y),a=wo(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 Om(e,t,n){var r=P({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),F(i,n),new Ou(r)):fm(e.replace(`path://`,``),r,n,`center`)}function km(e,t,n,r,i){for(var a=0,o=i[i.length-1];a1)return!1;var g=jm(p,m,u,d)/f;return!(g<0||g>1)}function jm(e,t,n,r){return e*r-n*t}function Mm(e){return e<=1e-6&&e>=-1e-6}function Nm(e,t,n,r,i){return t==null?e:(Ce(t)?Pm[0]=Pm[1]=Pm[2]=Pm[3]=t:(Pm[0]=t[0],Pm[1]=t[1],Pm[2]=t[2],Pm[3]=t[3]),r&&(Pm[0]=To(0,Pm[0]),Pm[1]=To(0,Pm[1]),Pm[2]=To(0,Pm[2]),Pm[3]=To(0,Pm[3])),n&&(Pm[0]=-Pm[0],Pm[1]=-Pm[1],Pm[2]=-Pm[2],Pm[3]=-Pm[3]),Fm(e,Pm,`x`,`width`,3,1,i&&i[0]||0),Fm(e,Pm,`y`,`height`,0,2,i&&i[1]||0),e)}var Pm=[0,0,0,0];function Fm(e,t,n,r,i,a,o){var s=t[a]+t[i],c=e[r];e[r]+=s,o=To(0,wo(o,c)),e[r]=0?-t[i]:t[a]>=0?c+t[a]:Eo(s)>1e-8?(c-o)*t[i]/s:0):e[n]-=t[i]}function Im(e){var t=e.itemTooltipOption,n=e.componentModel,r=e.itemName,i=H(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&&L(ye(c),function(e){K(s,e)||(s[e]=c[e],s.$vars.push(e))});var l=Z(e.el);l.componentMainType=a,l.componentIndex=o,l.tooltipConfig={name:r,option:F({content:r,encodeHTMLContent:!0,formatterParams:s},i)}}function Lm(e,t){var n;e.isGroup&&(n=t(e)),n||e.traverse(t)}function Rm(e,t){if(e)if(B(e))for(var n=0;nt&&(t=r),rt&&(n=t=0),{min:n,max:t}}function Gm(e,t,n){Km(e,t,n,-1/0)}function Km(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;s=0&&n.push(e)}),n}}function Ah(e,t){return N(N({},e,!0),t,!0)}var jh={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:`. `}}}},Mh={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:``}}}},Nh=`ZH`,Ph=`EN`,Fh=Ph,Ih={},Lh={},Rh=y.domSupported?function(){return(document.documentElement.lang||navigator.language||navigator.browserLanguage||Fh).toUpperCase().indexOf(Nh)>-1?Nh:Fh}():Fh;function zh(e,t){e=e.toUpperCase(),Lh[e]=new Th(t),Ih[e]=t}function Bh(e){if(H(e)){var t=Ih[e.toUpperCase()]||{};return e===Nh||e===Ph?M(t):N(M(t),M(Ih[Fh]),!1)}else return N(M(e),M(Ih[Fh]),!1)}function Vh(e){return Lh[e]}function Hh(){return Lh[Fh]}zh(Ph,jh),zh(Nh,Mh);var Uh=null;function Wh(e){Uh||=e}function Gh(){return Uh}function Kh(e,t){var n=Gh(),r=t.breakOption,i=t.breakParsed;return!i&&n&&(i=n.parseAxisBreakOption(r,e)),i}function qh(e){var t=e.brk;return t?t.breaks:[]}function Jh(e){var t=e.brk;return t?t.hasBreaks():!1}var Yh=1e3,Xh=Yh*60,Zh=Xh*60,Qh=Zh*24,$h=Qh*365,eg={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})/},tg={year:`{yyyy}`,month:`{MMM}`,day:`{d}`,hour:`{HH}:{mm}`,minute:`{HH}:{mm}`,second:`{HH}:{mm}:{ss}`,millisecond:`{HH}:{mm}:{ss} {SSS}`},ng=`{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}`,rg=`{yyyy}-{MM}-{dd}`,ig={year:`{yyyy}`,month:`{yyyy}-{MM}`,day:rg,hour:rg+` `+tg.hour,minute:rg+` `+tg.minute,second:rg+` `+tg.second,millisecond:ng},ag=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],og=[`year`,`half-year`,`quarter`,`month`,`week`,`half-week`,`day`,`half-day`,`quarter-day`,`hour`,`minute`,`second`,`millisecond`];function sg(e){return!H(e)&&!V(e)?cg(e):e}function cg(e){e||={};var t={},n=!0;return L(ag,function(t){n&&=e[t]==null}),L(ag,function(r,i){var a=e[r];t[r]={};for(var o=null,s=i;s>=0;s--){var c=ag[s],l=U(a)&&!B(a)?a[c]:a,u=void 0;B(l)?(u=l.slice(),o=u[0]||``):H(l)?(o=l,u=[o]):(o==null?o=tg[r]:eg[c].test(o)||(o=t[c][c][0]+` `+o),u=[o],n&&(u[1]=`{primary|`+o+`}`)),t[r][c]=u}}),t}function lg(e,t){return e+=``,`0000`.substr(0,t-e.length)+e}function ug(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 dg(e){return e===ug(e)}function fg(e){switch(e){case`year`:case`month`:return`day`;case`millisecond`:return`millisecond`;default:return`second`}}function pg(e,t,n,r){var i=Zo(e),a=i[_g(n)](),o=i[vg(n)]()+1,s=Math.floor((o-1)/3)+1,c=i[yg(n)](),l=i[`get`+(n?`UTC`:``)+`Day`](),u=i[bg(n)](),d=(u-1)%12+1,f=i[xg(n)](),p=i[Sg(n)](),m=i[Cg(n)](),h=u>=12?`pm`:`am`,g=h.toUpperCase(),_=(r instanceof Th?r:Vh(r||Rh)||Hh()).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,lg(a%100+``,2)).replace(/{Q}/g,s+``).replace(/{MMMM}/g,v[o-1]).replace(/{MMM}/g,y[o-1]).replace(/{MM}/g,lg(o,2)).replace(/{M}/g,o+``).replace(/{dd}/g,lg(c,2)).replace(/{d}/g,c+``).replace(/{eeee}/g,b[l]).replace(/{ee}/g,x[l]).replace(/{e}/g,l+``).replace(/{HH}/g,lg(u,2)).replace(/{H}/g,u+``).replace(/{hh}/g,lg(d+``,2)).replace(/{h}/g,d+``).replace(/{mm}/g,lg(f,2)).replace(/{m}/g,f+``).replace(/{ss}/g,lg(p,2)).replace(/{s}/g,p+``).replace(/{SSS}/g,lg(m,3)).replace(/{S}/g,m+``)}function mg(e,t,n,r,i){var a=null;if(H(n))a=n;else if(V(n)){var o={time:e.time,level:e.time?e.time.level:0},s=Gh();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=hg(e.value,i);a=n[u][u][0]}}return pg(new Date(e.value),a,i,r)}function hg(e,t){var n=Zo(e),r=n[vg(t)]()+1,i=n[yg(t)](),a=n[bg(t)](),o=n[xg(t)](),s=n[Sg(t)](),c=n[Cg(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 gg(e,t,n){switch(t){case`year`:e[Tg(n)](0);case`month`:e[Eg(n)](1);case`day`:e[Dg(n)](0);case`hour`:e[Og(n)](0);case`minute`:e[kg(n)](0);case`second`:e[Ag(n)](0)}return e}function _g(e){return e?`getUTCFullYear`:`getFullYear`}function vg(e){return e?`getUTCMonth`:`getMonth`}function yg(e){return e?`getUTCDate`:`getDate`}function bg(e){return e?`getUTCHours`:`getHours`}function xg(e){return e?`getUTCMinutes`:`getMinutes`}function Sg(e){return e?`getUTCSeconds`:`getSeconds`}function Cg(e){return e?`getUTCMilliseconds`:`getMilliseconds`}function wg(e){return e?`setUTCFullYear`:`setFullYear`}function Tg(e){return e?`setUTCMonth`:`setMonth`}function Eg(e){return e?`setUTCDate`:`setDate`}function Dg(e){return e?`setUTCHours`:`setHours`}function Og(e){return e?`setUTCMinutes`:`setMinutes`}function kg(e){return e?`setUTCSeconds`:`setSeconds`}function Ag(e){return e?`setUTCMilliseconds`:`setMilliseconds`}function jg(e){if(!is(e))return H(e)?e:`-`;var t=(e+``).split(`.`);return t[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,`$1,`)+(t.length>1?`.`+t[1]:``)}function Mg(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 Ng=Pe;function Pg(e,t,n){var r=`{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}`;function i(e){return e&&Ie(e)?e:`-`}function a(e){return cs(e)}var o=t===`time`,s=e instanceof Date;if(o||s){var c=o?Zo(e):e;if(!isNaN(+c))return pg(c,r,n);if(s)return`-`}if(t===`ordinal`)return Se(e)?i(e):Ce(e)&&a(e)?e+``:`-`;var l=rs(e);return a(l)?jg(l):Se(e)?i(e):typeof e==`boolean`?e+``:`-`}var Fg=[`a`,`b`,`c`,`d`,`e`,`f`,`g`],Ig=function(e,t){return`{`+e+(t??``)+`}`};function Lg(e,t,n){B(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 Bg(e,t){return t||=`transparent`,H(e)?e:U(e)&&e.colorStops&&(e.colorStops[0]||{}).color||t}function Vg(e,t){if(t===`_blank`||t===`blank`){var n=window.open();n.opener=null,n.location.href=e}else window.open(e,t)}var Hg={},Ug={},Wg=function(){function e(){this._normalMasterList=[],this._nonSeriesBoxMasterList=[]}return e.prototype.create=function(e,t){this._nonSeriesBoxMasterList=n(Hg,!0),this._normalMasterList=n(Ug,!1);function n(n,r){var i=[];return L(n,function(n,r){var a=n.create(e,t);i=i.concat(a||[])}),i}},e.prototype.update=function(e,t){L(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`){Hg[e]=t;return}Ug[e]=t},e.get=function(e){return Ug[e]||Hg[e]},e}();function Gg(e){return!!Hg[e]}function Kg(e){qg.set(e.fullType,{getCoord2:void 0}).getCoord2=e.getCoord2}var qg=G();function Jg(e){var t=e.getShallow(`coord`,!0),n=1;if(t==null){var r=qg.get(e.type);r&&r.getCoord2&&(n=2,t=r.getCoord2(e))}return{coord:t,from:n}}function Yg(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&&!Gg(n)&&(i=0))}return{coordSysType:n,kind:i}}function Xg(e){var t=e.targetModel,n=e.coordSysType,r=e.coordSysProvider,i=e.isDefaultDataCoordSys;e.allowNotFound;var a=Yg(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 Zg=function(e,t){var n=t.getReferringComponents(e,Ws).models[0];return n&&n.coordinateSystem},Qg=L,$g=[`left`,`right`,`top`,`bottom`,`width`,`height`],e_=[[`width`,`left`,`right`],[`height`,`top`,`bottom`]];function t_(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 n_=t_;xe(t_,`vertical`),xe(t_,`horizontal`);function r_(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 i_(e,t){var n=l_(e,t,{enableLayoutOnlyByCenter:!0}),r=e.getBoxLayoutParams(),i,a;if(n.type===c_.point)a=n.refPoint,i=o_(r,{width:t.getWidth(),height:t.getHeight()});else{var o=e.get(`center`),s=B(o)?o:[o,o];i=o_(r,n.refContainer),a=n.boxCoordFrom===2?n.refPoint:[X(s[0],i.width)+i.x,X(s[1],i.height)+i.y]}return{viewRect:i,center:a}}function a_(e,t){var n=i_(e,t),r=n.viewRect,i=n.center,a=e.get(`radius`);B(a)||(a=[0,a]);var o=X(r.width,t.getWidth()),s=X(r.height,t.getHeight()),c=Math.min(o,s),l=X(a[0],c/2),u=X(a[1],c/2);return{cx:i[0],cy:i[1],r0:l,r:u,viewRect:r}}function o_(e,t,n){n=Ng(n||0);var r=t.width,i=t.height,a=X(e.left,r),o=X(e.top,i),s=X(e.right,r),c=X(e.bottom,i),l=X(e.width,r),u=X(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 J((t.x||0)+a+n[3],(t.y||0)+o+n[0],l,u);return m.margin=n,m}function s_(e,t,n){var r=e.getShallow(`preserveAspect`,!0);if(!r)return t;var i=t.width/t.height;if(Math.abs(Math.atan(n)-Math.atan(i))<1e-9)return t;var a=e.getShallow(`preserveAspectAlign`,!0),o=e.getShallow(`preserveAspectVerticalAlign`,!0),s={width:t.width,height:t.height},c=r===`cover`;return i>n&&!c||i=u)return a;for(var d=0;d=0;o--)a=N(a,n[o],!0);t.defaultOption=a}return t.defaultOption},t.prototype.getReferringComponents=function(e,t){var n=e+`Index`,r=e+`Id`;return Ks(this.ecModel,e,{index:this.get(n,!0),id:this.get(r,!0)},t)},t.prototype.getBoxLayoutParams=function(){return r_(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}(Th);Dc(__,Th),Mc(__),Oh(__),kh(__,v_);function v_(e){var t=[];return L(__.getClassesByMainType(e),function(e){t=t.concat(e.dependencies||e.prototype.dependencies||[])}),t=R(t,function(e){return Sc(e).main}),e!==`dataset`&&I(t,`dataset`)<=0&&t.unshift(`dataset`),t}var Q={color:{},darkColor:{},size:{}},y_=Q.color={theme:[`#5070dd`,`#b6d634`,`#505372`,`#ff994d`,`#0ca8df`,`#ffd10a`,`#fb628b`,`#785db0`,`#3fbe95`],neutral00:`#fff`,neutral05:`#f4f7fd`,neutral10:`#e8ebf0`,neutral15:`#dbdee4`,neutral20:`#cfd2d7`,neutral25:`#c3c5cb`,neutral30:`#b7b9be`,neutral35:`#aaacb2`,neutral40:`#9ea0a5`,neutral45:`#929399`,neutral50:`#86878c`,neutral55:`#797b7f`,neutral60:`#6d6e73`,neutral65:`#616266`,neutral70:`#54555a`,neutral75:`#48494d`,neutral80:`#3c3c41`,neutral85:`#303034`,neutral90:`#232328`,neutral95:`#17171b`,neutral99:`#000`,accent05:`#eff1f9`,accent10:`#e0e4f2`,accent15:`#d0d6ec`,accent20:`#c0c9e6`,accent25:`#b1bbdf`,accent30:`#a1aed9`,accent35:`#91a0d3`,accent40:`#8292cc`,accent45:`#7285c6`,accent50:`#6578ba`,accent55:`#5c6da9`,accent60:`#536298`,accent65:`#4a5787`,accent70:`#404c76`,accent75:`#374165`,accent80:`#2e3654`,accent85:`#252b43`,accent90:`#1b2032`,accent95:`#121521`,transparent:`rgba(0,0,0,0)`,highlight:`rgba(255,231,130,0.8)`};for(var b_ in P(y_,{primary:y_.neutral80,secondary:y_.neutral70,tertiary:y_.neutral60,quaternary:y_.neutral50,disabled:y_.neutral20,border:y_.neutral30,borderTint:y_.neutral20,borderShade:y_.neutral40,background:y_.neutral05,backgroundTint:`rgba(234,237,245,0.5)`,backgroundTransparent:`rgba(255,255,255,0)`,backgroundShade:y_.neutral10,shadow:`rgba(0,0,0,0.2)`,shadowTint:`rgba(129,130,136,0.2)`,axisLine:y_.neutral70,axisLineTint:y_.neutral40,axisTick:y_.neutral70,axisTickMinor:y_.neutral60,axisLabel:y_.neutral70,axisSplitLine:y_.neutral15,axisMinorSplitLine:y_.neutral05}),y_)if(y_.hasOwnProperty(b_)){var x_=y_[b_];b_===`theme`?Q.darkColor.theme=y_.theme.slice():b_===`highlight`?Q.darkColor.highlight=`rgba(255,231,130,0.4)`:b_.indexOf(`accent`)===0?Q.darkColor[b_]=Qr(x_,null,function(e){return e*.5},function(e){return Math.min(1,1.3-e)}):Q.darkColor[b_]=Qr(x_,null,function(e){return e*.9},function(e){return 1-e**1.5})}Q.size={xxs:2,xs:5,s:10,m:15,l:20,xl:30,xxl:40,xxxl:50};var S_=``;typeof navigator<`u`&&(S_=navigator.platform||``);var C_=`rgba(0, 0, 0, 0.2)`,w_=Q.color.theme[0],T_=Qr(w_,null,null,.9),E_={darkMode:`auto`,colorBy:`series`,color:Q.color.theme,gradientColor:[T_,w_],aria:{decal:{decals:[{color:C_,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:C_,symbol:`circle`,dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:C_,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:C_,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:C_,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:C_,symbol:`triangle`,dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:S_.match(/^Win/)?`Microsoft YaHei`:`sans-serif`,fontSize:12,fontStyle:`normal`,fontWeight:`normal`},blendMode:null,stateAnimation:{duration:300,easing:`cubicOut`},animation:`auto`,animationDuration:1e3,animationDurationUpdate:500,animationEasing:`cubicInOut`,animationEasingUpdate:`cubicInOut`,animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},D_={Must:1,Might:2,Not:3},O_=Bs();function k_(e){O_(e).datasetMap=G()}function A_(e,t,n){var r={},i=M_(t);if(!i||!e)return r;var a=[],o=[],s=t.ecModel,c=O_(s).datasetMap,l=i.uid+`_`+n.seriesLayoutBy,u,d;e=e.slice(),L(e,function(t,n){var i=U(t)?t:e[n]={name:t};i.type===`ordinal`&&u==null&&(u=n,d=m(i)),r[i.name]=[]});var f=c.get(l)||c.set(l,{categoryWayDim:d,valueWayDim:0});L(e,function(e,t){var n=e.name,i=m(e);if(u==null){var s=f.valueWayDim;p(r[n],s,i),p(o,s,i),f.valueWayDim+=i}else if(u===t)p(r[n],0,i),p(a,0,i);else{var s=f.categoryWayDim;p(r[n],s,i),p(o,s,i),f.categoryWayDim+=i}});function p(e,t,n){for(var r=0;rt)return e[r];return e[n-1]}function W_(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:U_(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 G_(e,t){t(e).paletteIdx=0,t(e).paletteNameMap={}}var K_,q_,J_,Y_=`\0_ec_inner`,X_=1,Z_=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.init=function(e,t,n,r,i,a){r||={},this.option=null,this._theme=new Th(r),this._locale=new Th(i),this._optionManager=a},t.prototype.setOption=function(e,t,n){var r=nv(t);this._optionManager.setOption(e,n,r),this._resetOption(null,r)},t.prototype.resetOption=function(e,t){return this._resetOption(e,nv(t))},t.prototype._resetOption=function(e,t){var n=!1,r=this._optionManager;if(!e||e===`recreate`){var i=r.mountOption(e===`recreate`);!this.option||e===`recreate`?J_(this,i):(this.restoreData(),this._mergeOption(i,t)),n=!0}if((e===`timeline`||e===`media`)&&this.restoreData(),!e||e===`recreate`||e===`timeline`){var a=r.getTimelineOption(this);a&&(n=!0,this._mergeOption(a,t))}if(!e||e===`recreate`||e===`media`){var o=r.getMediaOption(this);o.length&&L(o,function(e){n=!0,this._mergeOption(e,t)},this)}return n},t.prototype.mergeOption=function(e){this._mergeOption(e,null)},t.prototype._mergeOption=function(e,t){var n=this.option,r=this._componentsMap,i=this._componentsCount,a=[],o=G(),s=t&&t.replaceMergeMainTypeMap;k_(this),L(e,function(e,t){e!=null&&(__.hasClass(t)?t&&(a.push(t),o.set(t,!0)):n[t]=n[t]==null?M(e):N(n[t],e,!0))}),s&&s.each(function(e,t){__.hasClass(t)&&!o.get(t)&&(a.push(t),o.set(t,!0))}),__.topologicalTravel(a,__.getAllClassMainTypes(),c,this);function c(t){var a=R_(this,t,vs(e[t])),o=r.get(t),c=Cs(o,a,o?s&&s.get(t)?`replaceMerge`:`normalMerge`:`replaceAll`);Is(c,t,__),n[t]=null,r.set(t,null),i.set(t,0);var l=[],u=[],d=0,f;L(c,function(e,n){var r=e.existing,i=e.newOption;if(!i)r&&(r.mergeOption({},this),r.optionUpdated({},!1));else{var a=t===`series`,o=__.getClass(t,e.keyInfo.subType,!a);if(!o)return;if(t===`tooltip`){if(f)return;f=!0}if(r&&r.constructor===o)r.name=e.keyInfo.name,r.mergeOption(i,this),r.optionUpdated(i,!1);else{var s=P({componentIndex:n},e.keyInfo);r=new o(i,this,this,s),P(r,s),e.brandNew&&(r.__requireNewView=!0),r.init(i,this,this),r.optionUpdated(null,!0)}}r?(l.push(r.option),u.push(r),d++):(l.push(void 0),u.push(void 0))},this),n[t]=l,r.set(t,u),i.set(t,d),t===`series`&&K_(this)}this._seriesIndices||K_(this)},t.prototype.getOption=function(){var e=M(this.option);return L(e,function(t,n){if(__.hasClass(n)){for(var r=vs(t),i=r.length,a=!1,o=i-1;o>=0;o--)r[o]&&!Ps(r[o])?a=!0:(r[o]=null,!a&&i--);r.length=i,e[n]=r}}),delete e[Y_],e},t.prototype.setTheme=function(e){this._theme=new Th(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 cv(e,t){return e.join(`,`)===t.join(`,`)}var lv=L,uv=U,dv=[`areaStyle`,`lineStyle`,`nodeStyle`,`linkStyle`,`chordStyle`,`label`,`labelLine`];function fv(e){var t=e&&e.itemStyle;if(t)for(var n=0,r=dv.length;n0?e[n-1].seriesModel:null)}),Fv(e))})}function Fv(e){L(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=Ko(d,_),m=_;break}}}return r[0]=d,r[1]=m,r})})}var Iv=function(){function e(e){this.data=e.data||(e.sourceFormat===`keyedColumns`?{}:[]),this.sourceFormat=e.sourceFormat||`unknown`,this.seriesLayoutBy=e.seriesLayoutBy||`column`,this.startIndex=e.startIndex||0,this.dimensionsDetectedCount=e.dimensionsDetectedCount,this.metaRawOption=e.metaRawOption;var t=this.dimensionsDefine=e.dimensionsDefine;if(t)for(var n=0;nl&&(l=p)}s[0]=c,s[1]=l}},r=function(){return this._data?this._data.length/this._dimSize:0};Zv=(e={},e[ad+`_`+ud]={pure:!0,appendData:i},e[ad+`_row`]={pure:!0,appendData:function(){throw Error(`Do not support appendData when set seriesLayoutBy: "row".`)}},e[od]={pure:!0,appendData:i},e[sd]={pure:!0,appendData:function(e){var t=this._data;L(e,function(e,n){for(var r=t[n]||(t[n]=[]),i=0;i<(e||[]).length;i++)r.push(e[i])})}},e[id]={appendData:i},e[cd]={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;t=0&&(s=a.interpolatedValue[c])}return s==null?``:s+``})},e.prototype.getRawValue=function(e,t){return dy(this.getData(t),e)},e.prototype.formatTooltip=function(e,t,n){},e}();function my(e){var t,n;return U(e)?e.type&&(n=e):t=e,{text:t,frag:n}}function hy(e){return new gy(e)}var gy=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:at},gte:function(e,t){return e>=t}},Sy=function(){function e(e,t){Ce(t)||ms(``),this._opFn=xy[e],this._rvalFloat=rs(t)}return e.prototype.evaluate=function(e){return Ce(e)?this._opFn(e,this._rvalFloat):this._opFn(rs(e),this._rvalFloat)},e}(),Cy=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=Ce(e)?e:rs(e),r=Ce(t)?t:rs(t),i=isNaN(n),a=isNaN(r);if(i&&(n=this._incomparable),a&&(r=this._incomparable),i&&a){var o=H(e),s=H(t);o&&(n=s?e:0),s&&(r=o?t:0)}return nr?-this._resultLT:0},e}(),wy=function(){function e(e,t){this._rval=t,this._isEQ=e,this._rvalTypeof=typeof t,this._rvalFloat=rs(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=rs(e)===this._rvalFloat)}return this._isEQ?t:!t},e}();function Ty(e,t){return e===`eq`||e===`ne`?new wy(e===`eq`,t):K(xy,e)?new Sy(e,t):null}function Ey(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 Dy(e,t){return t>e.g&&t>=e.ge&&t`u`?Array:Uint32Array,By=typeof Uint16Array>`u`?Array:Uint16Array,Vy=typeof Int32Array>`u`?Array:Int32Array,Hy=typeof Float64Array>`u`?Array:Float64Array,Uy={float:Hy,int:Vy,ordinal:Array,number:Array,time:Hy},Wy;function Gy(e){return e>65535?zy:By}function Ky(e){var t=e.constructor;return t===Array?e.slice():new t(e)}function qy(e,t,n,r,i){var a=Uy[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=R(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(Gy(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 vy(e[r],this._dimensions[r])}Wy={arrayRows:e,objectRows:function(e,t,n,r){return vy(e[t],this._dimensions[r])},keyedColumns:e,original:function(e,t,n,r){var i=e&&(e.value==null?e:e.value);return vy(i instanceof Array?i[r]:i,this._dimensions[r])},typedArray:function(e,t,n,r){return e[r]}}}(),e}(),Yy=function(){function e(e){this._sourceList=[],this._storeList=[],this._upstreamSignList=[],this._versionSignBase=0,this._dirty=!0,this._sourceHost=e}return e.prototype.dirty=function(){this._setLocalSource([],[]),this._storeList=[],this._dirty=!0},e.prototype._setLocalSource=function(e,t){this._sourceList=e,this._upstreamSignList=t,this._versionSignBase++,this._versionSignBase>9e10&&(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(Zy(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=Te(o)?cd:id,i=[];var u=this._getSourceMetaRawOption()||{},d=c&&c.metaRawOption||{},f=W(u.seriesLayoutBy,d.seriesLayoutBy)||null,p=W(u.sourceHeader,d.sourceHeader),m=W(u.dimensions,d.dimensions);r=f!==d.seriesLayoutBy||!!p!=!!d.sourceHeader||m?[Rv(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=[Rv(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&&Qy(``);var i,a=[],o=[];return L(e,function(e){e.prepareSource();var t=e.getSource(r||0);r!=null&&!t&&Qy(``),a.push(t),o.push(e._getVersionSign())}),n?i=Iy(n,a,{datasetIndex:t.componentIndex}):r!=null&&(i=[Bv(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 L(e.blocks,function(e){var n=sb(e);n>=t&&(t=n+ +(r&&(!n||ab(e)&&!e.noHeader)))}),t}return 0}function cb(e,t,n,r){var i=t.noHeader,a=db(sb(t)),o=[],s=t.blocks||[];Fe(!s||B(s)),s||=[];var c=e.orderMode;if(t.sortBlocks&&c){s=s.slice();var l={valueAsc:`asc`,valueDesc:`desc`};if(K(l,c)){var u=new Cy(l[c],null);s.sort(function(e,t){return u.evaluate(e.sortParam,t.sortParam)})}else c===`seriesDesc`&&s.reverse()}L(s,function(n,i){var s=t.valueFormatter,c=ob(n)(s?P(P({},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):fb(r,o.join(``),i?n:a.html);if(i)return d;var f=Pg(t.header,`ordinal`,e.useUTC),p=tb(r,e.renderMode).nameStyle,m=eb(r);return e.renderMode===`richText`?hb(e,f,p)+a.richText+d:fb(r,`
`+Mt(f)+`
`+d,n)}function lb(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=B(e)?e:[e],R(e,function(e,t){return Pg(e,B(p)?p[t]:p,l)})};if(!(a&&o)){var d=s?``:e.markupStyleCreator.makeTooltipMarker(t.markerType,t.markerColor||Q.color.secondary,i),f=a?``:Pg(c,`ordinal`,l),p=t.valueType,m=o?[]:u(t.value,t.rawDataIndex),h=!s||!a,g=!s&&a,_=tb(r,i),v=_.nameStyle,y=_.valueStyle;return i===`richText`?(s?``:d)+(a?``:hb(e,f,v))+(o?``:gb(e,m,h,g,y)):fb(r,(s?``:d)+(a?``:pb(f,!s,v))+(o?``:mb(m,h,g,y)),n)}}function ub(e,t,n,r,i,a){if(e)return ob(e)({useUTC:i,renderMode:n,orderMode:r,markupStyleCreator:t,valueFormatter:e.valueFormatter},e,0,a)}function db(e){return{html:nb[e],richText:rb[e]}}function fb(e,t,n){var r=`
`,i=`margin: `+n+`px 0 0`,a=eb(e);return`
`+t+r+`
`}function pb(e,t,n){var r=t?`margin-left:2px`:``;return``+Mt(e)+``}function mb(e,t,n,r){var i=t?`float:right;margin-left:`+(n?`10px`:`20px`):``;return e=B(e)?e:[e],``+R(e,function(e){return Mt(e)}).join(`  `)+``}function hb(e,t,n){return e.markupStyleCreator.wrapRichTextStyle(t,n)}function gb(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(B(t)?t.join(` `):t,a)}function _b(e,t){var n=e.getData().getItemVisual(t,`style`)[e.visualDrawType];return Bg(n)}function vb(e,t){return e.get(`padding`)??(t===`richText`?[8,10]:10)}var yb=function(){function e(){this.richTextStyles={},this._nextStyleNameId=as()}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=zg({color:t,type:e,renderMode:n,markerId:r});return H(i)?i:(this.richTextStyles[r]=i.style,i.content)},e.prototype.wrapRichTextStyle=function(e,t){var n={};B(t)?L(t,function(e){return P(n,e)}):P(n,t);var r=this._generateStyleName();return this.richTextStyles[r]=n,`{`+r+`|`+e+`}`},e}();function bb(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=B(s),l=_b(t,n),u,d,f,p;if(o>1||c&&!o){var m=xb(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=dy(i,n,a[0]),d=h.type}else p=u=c?s[0]:s;var g=Ns(t),_=g&&t.name||``,v=i.getName(n),y=r?_:v;return ib(`section`,{header:_,noHeader:r||!g,sortParam:p,blocks:[ib(`nameValue`,{markerType:`item`,markerColor:l,name:y,noName:!Ie(y),value:u,valueType:d,rawDataIndex:i.getRawIndex(n)})].concat(f||[])})}function xb(e,t,n,r,i){var a=t.getData(),o=ge(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?L(r,function(e){u(dy(a,n,e),e)}):L(e,u);function u(e,t){var n=a.getDimensionInfo(t);!n||n.otherDims.tooltip===!1||(o?l.push(ib(`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 Sb=Bs();function Cb(e,t){return e.getName(t)||e.getId(t)}var wb=`__universalTransitionEnabled`,Tb=function(e){_(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=hy({count:Ob,reset:kb}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(e,n),(Sb(this).sourceManager=new Yy(this)).prepareSource();var r=this.getInitialData(e,n);jb(r,this),this.dataTask.context.data=r,Sb(this).dataBeforeProcessed=r,Eb(this),this._initSelectedMapFromData(r)},t.prototype.mergeDefaultAndTheme=function(e,t){var n=f_(this),r=n?m_(e):{},i=this.subType;__.hasClass(i)&&(i+=`Series`),N(e,t.getTheme().get(this.subType)),N(e,this.getDefaultOption()),ys(e,`label`,[`show`]),this.fillDataTextStyle(e.data),n&&p_(e,r,n)},t.prototype.mergeOption=function(e,t){e=N(this.option,e,!0),this.fillDataTextStyle(e.data);var n=f_(this);n&&p_(this.option,e,n);var r=Sb(this).sourceManager;r.dirty(),r.prepareSource();var i=this.getInitialData(e,t);jb(i,this),this.dataTask.dirty(),this.dataTask.context.data=i,Sb(this).dataBeforeProcessed=i,Eb(this),this._initSelectedMapFromData(i)},t.prototype.fillDataTextStyle=function(e){if(e&&!Te(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 bb({series:this,dataIndex:e,multipleSeries:t})},t.prototype.isAnimationEnabled=function(){var e=this.ecModel;if(y.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=V_.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[Cb(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?!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`){U(i.selectedMap)||(i.selectedMap={});for(var s=i.selectedMap,c=0;c0&&this._innerSelect(e,t)}},t.registerClass=function(e){return __.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}(__);me(Tb,py),me(Tb,V_),Dc(Tb,__);function Eb(e){var t=e.name;Ns(e)||(e.name=Db(e)||t)}function Db(e){var t=e.getRawData(),n=t.mapDimensionsAll(`seriesName`),r=[];return L(n,function(e){var n=t.getDimensionInfo(e);n.displayName&&r.push(n.displayName)}),r.join(` `)}function Ob(e){return e.model.getRawData().count()}function kb(e){var t=e.model;return t.setData(t.getRawData().cloneShallow()),Ab}function Ab(e,t){t.outputData&&e.end>t.outputData.count()&&t.model.getRawData().cloneShallow(t.outputData)}function jb(e,t){L(We(e.CHANGABLE_METHODS,e.DOWNSAMPLE_METHODS),function(n){e.wrapMethod(n,xe(Mb,t))})}function Mb(e,t){var n=Nb(e);return n&&n.setOutputEnd((t||this).count()),t}function Nb(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 Pb=function(){function e(){this.group=new Y,this.uid=Dh(`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}();Tc(Pb),Mc(Pb);function Fb(){var e=Bs();return function(t){var n=e(t),r=t.pipelineContext,i=!!n.large,a=!!n.progressiveRender,o=n.large=!!(r&&r.large),s=n.progressiveRender=!!(r&&r.progressiveRender);return(i!==o||a!==s)&&`reset`}}var Ib=Bs(),Lb=Fb(),Rb=function(){function e(){this.group=new Y,this.uid=Dh(`viewChart`),this.renderTask=hy({plan:Vb,reset:Hb}),this.renderTask.context={view:this}}return e.prototype.init=function(e,t){},e.prototype.render=function(e,t,n,r){},e.prototype.highlight=function(e,t,n,r){var i=e.getData(r&&r.dataType);i&&Bb(i,r,`emphasis`)},e.prototype.downplay=function(e,t,n,r){var i=e.getData(r&&r.dataType);i&&Bb(i,r,`normal`)},e.prototype.remove=function(e,t){this.group.removeAll()},e.prototype.dispose=function(e,t){},e.prototype.updateView=function(e,t,n,r){this.render(e,t,n,r)},e.prototype.updateVisual=function(e,t,n,r){this.render(e,t,n,r)},e.prototype.eachRendered=function(e){Rm(this.group,e)},e.markUpdateMethod=function(e,t){Ib(e).updateMethod=t},e.protoInitialize=function(){var t=e.prototype;t.type=`chart`}(),e}();function zb(e,t,n){e&&vf(e)&&(t===`emphasis`?Kd:qd)(e,n)}function Bb(e,t,n){var r=zs(e,t),i=t&&t.highlightKey!=null?bf(t.highlightKey):null;r==null?e.eachItemGraphicEl(function(e){zb(e,n,i)}):L(vs(r),function(t){zb(e.getItemGraphicEl(t),n,i)})}Tc(Rb,[`dispose`]),Mc(Rb);function Vb(e){return Lb(e.model)}function Hb(e){var t=e.model,n=e.ecModel,r=e.api,i=e.payload,a=t.pipelineContext.progressiveRender,o=e.view,s=i&&Ib(i).updateMethod,c=a?`incrementalPrepareRender`:s&&o[s]?s:`render`;return c!==`render`&&o[c](t,n,r,i),Ub[c]}var Ub={incrementalPrepareRender:{progress:function(e,t){t.view.incrementalRender(e,t.model,t.ecModel,t.api,t.payload)}},render:{forceFirstProgress:!0,progress:function(e,t){t.view.render(t.model,t.ecModel,t.api,t.payload)}}},Wb=`\0__throttleOriginMethod`,Gb=`\0__throttleRate`,Kb=`\0__throttleType`;function qb(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 Jb(e,t,n,r){var i=e[t];if(i){var a=i[Wb]||i,o=i[Kb];if(i[Gb]!==n||o!==r){if(n==null||!r)return e[t]=a;i=e[t]=qb(a,n,r===`debounce`),i[Wb]=a,i[Kb]=r,i[Gb]=n}return i}}function Yb(e,t){var n=e[t];n&&n[Wb]&&(n.clear&&n.clear(),e[t]=n[Wb])}var Xb=Bs(),Zb={itemStyle:Nc(Sh,!0),lineStyle:Nc(yh,!0)},Qb={lineStyle:`stroke`,itemStyle:`fill`};function $b(e,t){return e.visualStyleMapper||Zb[t]||(console.warn(`Unknown style type '`+t+`'.`),Zb.itemStyle)}function ex(e,t){return e.visualDrawType||Qb[t]||(console.warn(`Unknown style type '`+t+`'.`),`fill`)}var tx={createOnAllSeries:!0,performRawSeries:!0,reset:function(e,t){var n=e.getData(),r=e.visualStyleAccessPath||`itemStyle`,i=e.getModel(r),a=$b(e,r)(i),o=i.getShallow(`decal`);o&&(n.setVisual(`decal`,o),o.dirty=!0);var s=ex(e,r),c=a[s],l=V(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`||V(a.fill)?d:a.fill,a.stroke=a.stroke===`auto`||V(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=P({},a);i[s]=l(r),t.setItemVisual(n,`style`,i)}}}},nx=new Th,rx={createOnAllSeries:!0,reset:function(e,t){if(!e.ignoreStyleOnData){var n=e.getData(),r=e.visualStyleAccessPath||`itemStyle`,i=$b(e,r),a=n.getVisual(`drawType`);return{dataEach:n.hasItemOption?function(e,t){var n=e.getRawDataItem(t);if(n&&n[r]){nx.option=n[r];var o=i(nx);P(e.ensureUniqueItemVisual(t,`style`),o),nx.option.decal&&(e.setItemVisual(t,`decal`,nx.option.decal),nx.option.decal.dirty=!0),a in o&&e.setItemVisual(t,`colorFromPalette`,!1)}}:null}}}},ix={performRawSeries:!0,overallReset:function(e){var t=G();e.eachSeries(function(e){if(!e.isColorBySeries()){var n=e.type+`-`+e.getColorBy();Xb(e).scope=t.get(n)||t.set(n,{})}}),e.eachSeries(function(e){if(!e.isColorBySeries()){var t=e.getRawData(),n={},r=e.getData(),i=Xb(e).scope,a=ex(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)}})}})}},ax=Math.PI;function ox(e,t){t||={},F(t,{text:`loading`,textColor:Q.color.primary,fontSize:12,fontWeight:`normal`,fontStyle:`normal`,fontFamily:`sans-serif`,maskColor:`rgba(255,255,255,0.8)`,showSpinner:!0,color:Q.color.theme[0],spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Y,r=new Iu({style:{fill:t.maskColor},zlevel:t.zlevel,z:1e4});n.add(r);var i=new Vu({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 Iu({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 Ap({shape:{startAngle:-ax/2,endAngle:-ax/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:ax*3/2}).start(`circularInOut`),o.animateShape(!0).when(1e3,{startAngle:ax*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 sx=function(){function e(e,t,n,r){this._stageTaskMap=G(),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):gc(e,t,n)},e.prototype.restorePipelines=function(e,t){var n=this,r=n._pipelineMap=G();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;L(this._allHandlers,function(r){var i=e.get(r.uid)||e.set(r.uid,{});Fe(!(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;L(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=G(),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)||hy({plan:fx,reset:px,count:gx}));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||hy({reset:cx});a.context={ecModel:n,api:r,overallReset:e.overallReset,scheduler:i};var o=a.agentStubMap,s=a.agentStubMap=G(),c=e.seriesType,l=e.getTargetSeries,u=e.dirtyOnOverallProgress,d=!1;Fe(!e.createOnAllSeries,``),c?n.eachRawSeriesByType(c,f):l?l(n,r).each(f):L(n.getSeries(),f);function f(e){var t=e.uid,n=s.set(t,o&&o.get(t)||(d=!0,hy({reset:lx,onDirty:dx})));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 V(e)&&(e={overallReset:e,seriesType:_x(e)}),e.uid=Dh(`stageHandler`),t&&(e.visualType=t),e},e}();function cx(e){e.overallReset(e.ecModel,e.api,e.payload)}function lx(e){return e.dirtyOnOverallProgress&&ux}function ux(){this.agent.dirty(),this.getDownstream().dirty()}function dx(){this.agent&&this.agent.dirty()}function fx(e){return e.plan?e.plan(e.model,e.ecModel,e.api,e.payload):null}function px(e){e.useClearVisual&&e.data.clearAllVisual();var t=e.resetDefines=vs(e.reset(e.model,e.ecModel,e.api,e.payload));return t.length>1?R(t,function(e,t){return hx(t)}):mx}var mx=hx(0);function hx(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}(),Ox=[`symbol`,`symbolSize`,`symbolRotate`,`symbolOffset`],kx=Ox.concat([`symbolKeepAspect`]),Ax={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&&lS(c)?c:.5,e.createRadialGradient(o,s,0,o,s,c)}function fS(e,t,n){for(var r=t.type===`radial`?dS(e,t,n):uS(e,t,n),i=t.colorStops,a=0;a0)?null:e===`dashed`?[4*t,2*t]:e===`dotted`?[t]:Ce(e)?[e]:B(e)?e:null}function _S(e){var t=e.style,n=t.lineDash&&t.lineWidth>0&&gS(t.lineDash,t.lineWidth),r=t.lineDashOffset;if(n){var i=t.strokeNoScale&&e.getLineScale?e.getLineScale():1;i&&i!==1&&(n=R(n,function(e){return e/i}),r/=i)}return[n,r]}var vS=new Zl(!0);function yS(e){var t=e.stroke;return!(t==null||t===`none`||!(e.lineWidth>0))}function bS(e){return typeof e==`string`&&e!==`none`}function xS(e){var t=e.fill;return t!=null&&t!==`none`}function SS(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 CS(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 wS(e,t,n){var r=Rc(t.image,t.__image,n);if(Bc(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)*Je),a.scaleSelf(t.scaleX||1,t.scaleY||1),i.setTransform(a)}return i}}function TS(e,t,n,r,i){var a,o=yS(n),s=xS(n),c=n.strokePercent,l=c<1,u=!t.path;(!t.silent||l)&&u&&t.createPathProxy();var d=t.path||vS,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?fS(e,p,C):t.__canvasFillGradient,t.__canvasFillGradient=y),g&&(b=f?fS(e,m,C):t.__canvasStrokeGradient,t.__canvasStrokeGradient=b),_&&(x=f||!t.__canvasFillPattern?wS(e,p,t):t.__canvasFillPattern,t.__canvasFillPattern=x),v&&(S=f||!t.__canvasStrokePattern?wS(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=_S(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&&CS(e,n),s&&SS(e,n)):(s&&SS(e,n),o&&CS(e,n)),T&&e.setLineDash([])}function ES(e,t,n){var r=t.__image=Rc(n.image,t.__image,t,t.onload);if(!(!r||!Bc(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 DS(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=_S(t),a=r[0],o=r[1]),a&&(e.setLineDash(a),e.lineDashOffset=o),n.strokeFirst?(yS(n)&&e.strokeText(i,n.x,n.y),xS(n)&&e.fillText(i,n.x,n.y)):(xS(n)&&e.fillText(i,n.x,n.y),yS(n)&&e.strokeText(i,n.x,n.y)),a&&e.setLineDash([])}}var OS=[`shadowBlur`,`shadowOffsetX`,`shadowOffsetY`],kS=[[`lineCap`,`butt`],[`lineJoin`,`miter`],[`miterLimit`,10]];function AS(e,t,n,r,i){var a=!1;if(!r&&(n||={},t===n))return!1;if(r||t.opacity!==n.opacity){VS(e,i),a=!0;var o=Math.max(Math.min(t.opacity,1),0);e.globalAlpha=isNaN(o)?ul.opacity:o}(r||t.blend!==n.blend)&&(a||=(VS(e,i),!0),e.globalCompositeOperation=t.blend||ul.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[xC]){if(this._disposed){this.id;return}var r,i,a;if(U(t)&&(n=t.lazyUpdate,r=t.silent,i=t.replaceMerge,a=t.transition,t=t.notMerge),this[xC]=!0,$C(this),!this._model||t){var o=new iv(this._api),s=this._theme,c=this._model=new Z_;c.scheduler=this._scheduler,c.ssr=this._ssr,c.init(null,null,null,s,this._locale,o)}this._model.setOption(e,{replaceMerge:i},sw);var l={seriesTransition:a,optionChanged:!0};if(n)this[CC]={silent:r,updateParams:l},this[xC]=!1,this.getZr().wakeUp();else{try{FC(this),RC.update.call(this,null,l)}catch(e){throw this[CC]=null,this[xC]=!1,e}this._ssr||this._zr.flush(),this[CC]=null,this[xC]=!1,HC.call(this,r),UC.call(this,r)}}},t.prototype.setTheme=function(e,t){if(!this[xC]){if(this._disposed){this.id;return}var n=this._model;if(n){var r=t&&t.silent,i=null;this[CC]&&(r??=this[CC].silent,i=this[CC].updateParams,this[CC]=null),this[xC]=!0,$C(this);try{this._updateTheme(e),n.setTheme(this._theme),FC(this),RC.update.call(this,{type:`setTheme`},i)}catch(e){throw this[xC]=!1,e}this[xC]=!1,HC.call(this,r),UC.call(this,r)}}},t.prototype._updateTheme=function(e){H(e)&&(e=lw[e]),e&&(e=M(e),e&&Mv(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||y.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 L(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;L(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 L(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(fw[n]){var o=a,s=a,c=-a,l=-a,u=[],d=e&&e.pixelRatio||this.getDevicePixelRatio();L(dw,function(a,d){if(a.group===n){var f=t?a.getZr().painter.getSvgDom().innerHTML:a.renderToCanvas(M(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=D.createCanvas(),h=go(m,{renderer:t?`svg`:`canvas`});if(h.resize({width:f,height:p}),t){var g=``;return L(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 Iu({shape:{x:0,y:0,width:f,height:p},style:{fill:e.connectedBackgroundColor}})),L(u,function(e){var t=new Ou({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 zC(this,`convertToPixel`,e,t,n)},t.prototype.convertToLayout=function(e,t,n){return zC(this,`convertToLayout`,e,t,n)},t.prototype.convertFromPixel=function(e,t,n){return zC(this,`convertFromPixel`,e,t,n)},t.prototype.containPixel=function(e,t){if(this._disposed){this.id;return}var n=this._model,r;return L(Hs(n,e),function(e,n){n.indexOf(`Models`)>=0&&L(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=Hs(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?Nx(i,t):Mx(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;L(nw,function(t){var n=function(n){var r=e.getModel(),i=n.target,a;if(t===`globalout`?a={}:i&&Rx(i,function(e){var t=Z(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=P({},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;L(aw,function(n,r){t.on(r,function(t){e.trigger(r,t)})}),Lx(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()&&Js(this.getDom(),mw,``);var e=this,t=e._api,n=e._model;L(e._componentsViews,function(e){e.dispose(n,t)}),L(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 dw[e.id]},t.prototype.resize=function(e){if(!this[xC]){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[CC]&&(r??=this[CC].silent,n=!0,this[CC]=null),this[xC]=!0,$C(this);try{n&&FC(this),RC.update.call(this,{type:`resize`,animation:P({duration:0},e&&e.animation)})}catch(e){throw this[xC]=!1,e}this[xC]=!1,HC.call(this,r),UC.call(this,r)}}},t.prototype.showLoading=function(e,t){if(this._disposed){this.id;return}if(U(e)&&(t=e,e=``),e||=`default`,this.hideLoading(),uw[e]){var n=uw[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=P({},e);return t.type=iw[e.type],t},t.prototype.dispatchAction=function(e,t){if(this._disposed){this.id;return}if(U(t)||(t={silent:!!t}),rw[e.type]&&this._model){if(this[xC]){this._pendingActions.push(e);return}var n=t.silent;VC.call(this,e,n);var r=t.flush;r?this._zr.flush():r!==!1&&y.browser.weChat&&this._throttledZrFlush(),HC.call(this,n),UC.call(this,n)}},t.prototype.updateLabelLayout=function(){zx.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(){FC=function(e){qx(e._model);var t=e._scheduler;t.restorePipelines(e._zr,e._model),t.prepareStageTasks(),IC(e,!0),IC(e,!1),t.plan()},IC=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;cW(t.get(`hoverLayerThreshold`),E_.hoverLayerThreshold)&&!y.node&&!y.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=Um(e);t.eachRendered(function(e){return Gm(e,n.z,n.zlevel),!0})}}function s(e,t){t.eachRendered(function(e){if(!Zp(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(Zp(e))return;if(e instanceof Su&&Cf(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)}})}YC=function(e){return new(function(t){_(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){Kd(t,n),ZC(e)},n.prototype.leaveEmphasis=function(t,n){qd(t,n),ZC(e)},n.prototype.enterBlur=function(t){Jd(t),ZC(e)},n.prototype.leaveBlur=function(t){Yd(t),ZC(e)},n.prototype.enterSelect=function(t){Xd(t),ZC(e)},n.prototype.leaveSelect=function(t){Zd(t),ZC(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[SC]},n.prototype.usingTHL=function(){return e._usingTHL},n}(pd))(e)},XC=function(e){function t(e,t){for(var n=0;n=0)){Dw.push(n);var o=sx.wrapStageHandler(n,i);o.__prio=t,o.__raw=n,e.push(o)}}function kw(e,t){uw[e]=t}function Aw(e,t,n){var r=Hx(`registerMap`);r&&r(e,t,n)}var jw=Fy;Ew(fC,tx),Ew(hC,rx),Ew(hC,ix),Ew(fC,Ax),Ew(hC,jx),Ew(yC,tC),vw(Mv),yw(aC,Nv),kw(`default`,ox),Cw({type:xd,event:xd,update:xd},qe),Cw({type:Sd,event:Sd,update:Sd},qe),Cw({type:Cd,event:Ed,update:Cd,action:qe,refineEvent:Mw,publishNonRefinedEvent:!0}),Cw({type:wd,event:Ed,update:wd,action:qe,refineEvent:Mw,publishNonRefinedEvent:!0}),Cw({type:Td,event:Ed,update:Td,action:qe,refineEvent:Mw,publishNonRefinedEvent:!0});function Mw(e,t,n,r){return{eventContent:{selected:lf(n),isFromClick:t.isFromClick||!1}}}_w(`default`,{}),_w(`dark`,Ex);var Nw=[],Pw={registerPreprocessor:vw,registerProcessor:yw,registerPostInit:bw,registerPostUpdate:xw,registerUpdateLifecycle:Sw,registerAction:Cw,registerCoordinateSystem:ww,registerLayout:Tw,registerVisual:Ew,registerTransform:jw,registerLoading:kw,registerMap:Aw,registerImpl:Vx,PRIORITY:bC,ComponentModel:__,ComponentView:Pb,SeriesModel:Tb,ChartView:Rb,registerComponentModel:function(e){__.registerClass(e)},registerComponentView:function(e){Pb.registerClass(e)},registerSeriesModel:function(e){Tb.registerClass(e)},registerChartView:function(e){Rb.registerClass(e)},registerCustomSeries:function(e,t){Wx(e,t)},registerSubTypeDefaulter:function(e,t){__.registerSubTypeDefaulter(e,t)},registerPainter:function(e,t){_o(e,t)}};function Fw(e){if(B(e)){L(e,function(e){Fw(e)});return}I(Nw,e)>=0||(Nw.push(e),V(e)&&(e={install:e}),e.install(Pw))}function Iw(e){return e==null?0:e.length||1}function Lw(e){return e}var Rw=function(){function e(e,t,n,r,i,a){this._old=e,this._new=t,this._oldKeyGetter=n||Lw,this._newKeyGetter=r||Lw,this.context=i,this._diffModeMultiple=a===`multiple`}return e.prototype.add=function(e){return this._add=e,this},e.prototype.update=function(e){return this._update=e,this},e.prototype.updateManyToOne=function(e){return this._updateManyToOne=e,this},e.prototype.updateOneToMany=function(e){return this._updateOneToMany=e,this},e.prototype.updateManyToMany=function(e){return this._updateManyToMany=e,this},e.prototype.remove=function(e){return this._remove=e,this},e.prototype.execute=function(){this[this._diffModeMultiple?`_executeMultiple`:`_executeOneToOne`]()},e.prototype._executeOneToOne=function(){var e=this._old,t=this._new,n={},r=Array(e.length),i=Array(t.length);this._initIndexMap(e,null,r,`_oldKeyGetter`),this._initIndexMap(t,n,i,`_newKeyGetter`);for(var a=0;a1){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;o30}var Qw=U,$w=R,eT=typeof Int32Array>`u`?Array:Int32Array,tT=`e\0\0`,nT=-1,rT=[`hasItemOption`,`_nameList`,`_idList`,`_invertedIndicesMap`,`_dimSummary`,`userOutput`,`_rawData`,`_dimValueGetter`,`_nameDimIdx`,`_idDimIdx`,`_nameRepeatCount`],iT=[`_approximateExtent`],aT,oT,sT,cT,lT,uT,dT,fT=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;Jw(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),B(i)?i=i.slice():Qw(i)&&(i=P({},i)),r[t]=i),i},e.prototype.setItemVisual=function(e,t,n){var r=this._itemVisuals[e]||{};this._itemVisuals[e]=r,Qw(t)?P(r,t):r[t]=n},e.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},e.prototype.setLayout=function(e,t){Qw(e)?P(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?P(this._itemLayouts[e]||{},t):t},e.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},e.prototype.setItemGraphicEl=function(e,t){td(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){L(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:$w(this.dimensions,this._getDimInfo,this),this.hostModel),lT(t,this),t._store=this._store,t},e.prototype.wrapMethod=function(e,t){var n=this[e];V(n)&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(e),this[e]=function(){var e=n.apply(this,arguments);return t.apply(this,[e].concat(Ne(arguments)))})},e.internalField=function(){aT=function(e){var t=e._invertedIndicesMap;L(t,function(n,r){var i=e._dimInfos[r],a=i.ordinalMeta,o=e._store;if(a){n=t[r]=new eT(a.categories.length);for(var s=0;s1&&(s+=`__ec__`+l),r[t]=s}}}(),e}();function pT(e,t){Lv(e)||(e=zv(e)),t||={};var n=t.coordDimensions||[],r=t.dimensionsDefine||e.dimensionsDefine||[],i=G(),a=[],o=mT(e,n,r,t.dimensionsCount),s=t.canOmitUnusedDimensions&&Zw(o),c=r===e.dimensionsDefine,l=c?Xw(e):Yw(r),u=t.encodeDefine;!u&&t.encodeDefaulter&&(u=t.encodeDefaulter(e,o));for(var d=G(u),f=new Vy(o),p=0;p0&&(e.name+=t-1)}),new qw({source:e,dimensions:a,fullDimensionCount:o,dimensionOmitted:s})}function mT(e,t,n,r){var i=Math.max(e.dimensionsDetectedCount||1,t.length,n.length,r||0);return L(t,function(e){var t;U(e)&&(t=e.dimsDef)&&(i=Math.max(i,t.length))}),i}function hT(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 gT=function(){function e(e){this.coordSysDims=[],this.axisMap=G(),this.categoryAxisMap=G(),this.coordSysName=e}return e}();function _T(e){var t=e.get(`coordinateSystem`),n=new gT(t),r=vT[t];if(r)return r(e,n,n.axisMap,n.categoryAxisMap),n}var vT={cartesian2d:function(e,t,n,r){var i=e.getReferringComponents(`xAxis`,Ws).models[0],a=e.getReferringComponents(`yAxis`,Ws).models[0];t.coordSysDims=[`x`,`y`],n.set(`x`,i),n.set(`y`,a),yT(i)&&(r.set(`x`,i),t.firstCategoryDimIndex=0),yT(a)&&(r.set(`y`,a),t.firstCategoryDimIndex??=1)},singleAxis:function(e,t,n,r){var i=e.getReferringComponents(`singleAxis`,Ws).models[0];t.coordSysDims=[`single`],n.set(`single`,i),yT(i)&&(r.set(`single`,i),t.firstCategoryDimIndex=0)},polar:function(e,t,n,r){var i=e.getReferringComponents(`polar`,Ws).models[0],a=i.findAxisModel(`radiusAxis`),o=i.findAxisModel(`angleAxis`);t.coordSysDims=[`radius`,`angle`],n.set(`radius`,a),n.set(`angle`,o),yT(a)&&(r.set(`radius`,a),t.firstCategoryDimIndex=0),yT(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();L(a.parallelAxisIndex,function(e,a){var s=i.getComponent(`parallelAxis`,e),c=o[a];n.set(c,s),yT(s)&&(r.set(c,s),t.firstCategoryDimIndex??=a)})},matrix:function(e,t,n,r){var i=e.getReferringComponents(`matrix`,Ws).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 yT(e){return e.get(`type`)===`category`}function bT(e,t,n){n||={};var r=n.byIndex,i=n.stackedCoordDimension,a,o,s;xT(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(L(a,function(e,t){H(e)&&(a[t]=e={name:e}),m(e)||(p=!1)}),L(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;L(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 xT(e){return!Jw(e.schema)}function ST(e,t){return!!t&&t===e.getCalculationInfo(`stackedDimension`)}function CT(e,t){return ST(e,t)?e.getCalculationInfo(`stackResultDimension`):t}function wT(e,t){var n=e.get(`coordinateSystem`),r=Wg.get(n),i;return t&&t.coordSysDims&&(i=R(t.coordSysDims,function(e){var n={name:e},r=t.axisMap.get(e);return r&&(n.type=Hw(r.get(`type`))),n})),i||=r&&(r.getDimensionsInfo?r.getDimensionsInfo():r.dimensions.slice())||[`x`,`y`],i}function TT(e,t,n){var r,i;return n&&L(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 ET(e,t,n){n||={};var r=t.getSourceManager(),i,a=!1;e?(a=!0,i=zv(e)):(i=r.getSource(),a=i.sourceFormat===id);var o=_T(t),s=wT(t,o),c=n.useEncodeDefaulter,l=V(c)?c:c?xe(A_,s,t):null,u={coordDimensions:s,generateCoord:n.generateCoord,encodeDefine:t.getEncode(),encodeDefaulter:l,canOmitUnusedDimensions:!a},d=pT(i,u),f=TT(d.dimensions,n.createInvertedIndices,o),p=a?null:r.getSharedDataStore(d),m=bT(t,{schema:d,store:p}),h=new fT(d,t);h.setCalculationInfo(m);var g=f!=null&&DT(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 DT(e){if(e.sourceFormat===`original`)return!B(xs(OT(e.data||[])))}function OT(e){for(var t=0;t=t[0]&&e<=t[1]},getExtent:function(){return this._extents[0].slice()},getExtentUnsafe:function(e){return this._extents[e]},setExtent:function(e,t){UT(this._extents,0,e,t)},setExtent2:function(e,t,n){var r=this._extents;r[e]||(r[e]=r[0].slice()),UT(r,e,t,n)},freeze:function(){}};function UT(e,t,n,r){sc(n,r)&&(e[t][0]=n,e[t][1]=r)}function WT(e){return GT(e)||qT(e)}function GT(e){return e.type===`interval`}function KT(e){return e.type===`time`}function qT(e){return e.type===`log`}function JT(e){return e.type===`ordinal`}function YT(e){var t=$o(e),n=Ao(10,t),r=Do(e/n);return r?r===2?r=3:r===3?r=5:r*=2:r=1,Bo(r*n,-t)}function XT(e){return Ho(e)+2}function ZT(e,t){return jo(e)/jo(t)}function QT(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 rE=function(e){_(t,e);function t(n){var r=e.call(this)||this;r.type=`ordinal`,r.parse=t.parse,FT(r,t.decoratedMethods);var i=n.ordinalMeta;i||=new jT({}),B(i)&&(i=new jT({categories:R(i,function(e){return U(e)?e.value:e})})),r._ordinalMeta=i;var a=PT(null,null,n.extent||[0,i.categories.length-1]);return r._mapper=a.mapper,IT(r,a.mapper),r}return t.parse=function(e){return e==null?e=NaN:H(e)?(e=this._ordinalMeta.getOrdinal(e),e??=NaN):e=Do(e),e},t.prototype.getTicks=function(){var e=[];return nE(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=wo(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=wo(p,i[1]),m===f&&(p=i[1])}if(l.push({value:p}),p=Bo(p+n,a),s){var h=s.calcNiceTickMultiple(p,d);h>=0&&(p=Bo(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?Bo(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 iE(this,e,qh(this),this._cfg.interval)},t.prototype.getLabel=function(e,t){if(e==null)return``;var n=t&&t.precision;return n==null?n=Ho(e.value)||0:n===`auto`&&(n=this._cfg.intervalPrecision),jg(Bo(e.value,n,!0))},t.type=`interval`,t}(kT);kT.registerClass(aE);var oE=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 dE(e){var t=30*Qh;return e/=t,e>6?6:e>3?3:e>2?2:1}function fE(e){return e/=Zh,e>12?12:e>6?6:e>3.5?4:e>2?2:1}function pE(e,t){return e/=t?Xh:Yh,e>30?30:e>20?20:e>15?15:e>10?10:e>5?5:e>2?2:1}function mE(e){return To(es(e,!0),1)}function hE(e,t,n){var r=Math.max(0,I(ag,t)-1);return gg(new Date(e),ag[r],n).getTime()}function gE(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 _E(e,t,n,r,i,a){var o=3e3,s=og,c=0;function l(e,t,n,i,s,l,u){for(var d=gE(s,e),f=t,p=new Date(f);fo));)if(p[s](p[i]()+e),f=p.getTime(),a){var m=a.calcNiceTickMultiple(f,d);m>0&&(p[s](p[i]()+m*e),f=p.getTime())}u.push({value:f,notAdd:f>r[1]})}function u(e,i,a){var o=[],s=!i.length;if(!lE(ug(e),r[0],r[1],n)){s&&(i=[{value:hE(r[0],e,n)},{value:r[1]}]);for(var c=0;c=r[0]&&u<=r[1]&&l(f,u,d,p,m,h,o),e===`year`&&a.length>1&&c===0&&a.unshift({value:a[0].value-f})}}for(var c=0;c=r[0]&&y<=r[1]&&p++)}var b=i/t;if(p>b*1.5&&m>b/1.5||(d.push(_),p>b||e===s[h]))break}f=[]}}for(var x=_e(R(d,function(e){return _e(e,function(e){return e.value>=r[0]&&e.value<=r[1]&&!e.notAdd})}),function(e){return e.length>0}),S=x.length-1,C=[],h=0;hr[0])&&C.unshift({value:r[0],time:{level:0,upperTimeUnit:k,lowerTimeUnit:k},notNice:!0}),(!O||O.values&&(a=s);var c=cE.length,l=Math.min(oE(cE,a,0,c),c-1),u=cE[l][1],d=cE[Math.max(l-1,0)][0];e.setTimeInterval({approxInterval:a,interval:u,minLevelUnit:d})};kT.registerClass(sE);var yE=0,bE=1,xE=2,SE=function(e){_(t,e);function t(n){var r=e.call(this)||this;r.type=`log`,r.parse=aE.parse,r.base=n.logBase||10;var i=[],a=[],o=r._lookup={from:i,to:a};i[yE]=i[bE]=a[yE]=a[bE]=NaN,FT(r,t.mapperMethods);var s=Gh(),c=n.breakOption,l={lookup:o};return s&&s.parseAxisBreakOptionInwardTransform(c,r,{noNegative:!0},xE,l),r.powStub=new aE({breakParsed:l.original}),r.intervalStub=new aE({breakParsed:l.transformed}),IT(r,r.intervalStub),r}return t.prototype.getTicks=function(e){var t=this.base,n=this.powStub,r=Gh(),i=this.intervalStub,a={lookup:{from:i.getExtent(),to:n.getExtent()}};return R(i.getTicks(e||{}),function(e){var i=e.value,o=QT(i,t,a),s;if(r){var c=r.getTicksBreakOutwardTransform(this,e,qh(n),this._lookup);c&&(s=c.vBreak,o=c.tickVal)}return{value:o,break:s}},this)},t.prototype.getMinorTicks=function(e){return iE(this,e,qh(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(ZT(e,this.base))},scale:function(e){return QT(this.intervalStub.scale(e),this.base,null)},transformIn:function(e,t){return e=ZT(e,this.base),t&&t.depth===2?e:this.intervalStub.transformIn(e,t)},transformOut:function(e,t){var n=t?t.depth:null;return CE.depth=n,wE.lookup=this._lookup,QT(n===2?e:this.intervalStub.transformOut(e,CE),this.base,wE)},contain:function(e){return this.powStub.contain(e)},setExtent:function(e,t){this.setExtent2(0,e,t)},setExtent2:function(e,t,n){if(!(!sc(t,n)||t<=0||n<=0)){var r=TE,i=TE;if(e===0){var a=this._lookup;r=a.to,i=a.from}this.powStub.setExtent2(e,r[yE]=t,r[bE]=n);var o=this.base;this.intervalStub.setExtent2(e,i[yE]=ZT(t,o),i[bE]=ZT(n,o))}},getFilter:function(){return{g:0}},sanitize:function(e,t){return sc(t[0],t[1])&&cs(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}(kT);kT.registerClass(SE);var CE={},wE={},TE=[],EE={value:1,category:1,time:1,log:1},DE=Bs();function OE(e){var t=e.get(`type`);return(t==null||!K(EE,t)&&!kT.getClass(t))&&(t=`value`),t}function kE(e,t,n){var r=Gh(),i;switch(r&&(i=BE(e,t,n)),t){case`category`:return new rE({ordinalMeta:e.getOrdinalMeta?e.getOrdinalMeta():e.getCategories(),extent:tc()});case`time`:return new sE({locale:e.ecModel.getLocaleModel(),useUTC:e.ecModel.get(`useUTC`),breakOption:i});case`log`:return new SE({logBase:e.get(`logBase`),breakOption:i});case`value`:return new aE({breakOption:i});default:return new((kT.getClass(t))||aE)({})}}function AE(e,t,n){var r=n?RT(e,null):e.getExtentUnsafe(0,null),i=r[0],a=r[1];return sc(i,a)?i===t||a===t?2:it?1:3:3}function jE(e){DE(e).noOnMyZero=!0}function ME(e){return DE(e).noOnMyZero}function NE(e){var t=e.getLabelModel().get(`formatter`);if(e.type===`time`){var n=sg(t);return function(t,r){return e.scale.getFormattedLabel(t,r,n)}}else if(H(t))return function(n){var r=e.scale.getLabel(n);return t.replace(`{value}`,r??``)};else if(V(t)){if(e.type===`category`)return function(n,r){return t(PE(e,n),n.value-e.scale.getExtent()[0],null)};var r=Gh();return function(n,i){var a=null;return r&&(a=r.makeAxisLabelFormatterParamBreak(a,n.break)),t(PE(e,n),i,a)}}else return function(t){return e.scale.getLabel(t)}}function PE(e,t){var n=e.scale;return JT(n)?n.getLabel(t):t.value}function FE(e){return e.get(`interval`)??`auto`}function IE(e){return e.type===`category`&&FE(e.getLabelModel())===0}function LE(e,t){var n={};return L(e.mapDimensionsAll(t),function(t){n[CT(e,t)]=!0}),ye(n)}function RE(e){return e===`middle`||e===`center`}function zE(e){return e.getShallow(`show`)}function BE(e,t,n){var r=e.get(`breaks`,!0);if(r!=null)return!Gh()||!n||!VE(t)?void 0:r}function VE(e){return e!==`category`}function HE(e,t,n,r,i,a){var o=qT(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=eE(n,r);t[0]&&!f[0]&&(u=i[0]),t[1]&&!f[1]&&(d=i[1]),c.setExtent(u,d)}s.setConfig(a)}function UE(e,t){return JT(e)?e.getRawOrdinalNumber(t.value):t.value}function WE(e,t){return JT(e)&&!!t.get(`boundaryGap`)}var GE=function(){function e(){}return e.prototype.needIncludeZero=function(){return!this.option.scale},e.prototype.getCoordSysModel=function(){},e}(),KE=uc(),qE=Bs(),JE=Bs();function YE(e,t){var n=e.model,r=qE(Xx(n.ecModel)).keyed,i=r&&r.get(t);return i&&i.get(n.uid)}function XE(e,t){return $E(YE(e,t))}function ZE(e,t){var n=[];return QE(e.model.ecModel,function(e){for(var r=0;r0&&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=_D(e,t.get(`startValue`,!0)),x=b!=null;!cs(b)&&r&&(b=e.getDefaultStartValue?e.getDefaultStartValue():0),cs(b)&&(x||!_||v)&&(bu[1]&&!d[1]&&(u[1]=b,d[1]=!0)),gD(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),gD(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 gD(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),lc(t))}function _D(e,t){return t==null?null:Ae(t)?NaN:e.parse(t)}function vD(e,t){var n;if(JT(e))n=[0,0];else{var r=t.get(`boundaryGap`);typeof r==`boolean`&&(r=null),n=B(r)?r:[r,r]}return[yD(n[0]),yD(n[1])]}function yD(e){return Ga(typeof e==`boolean`?0:e,1)||0}function bD(e){var t=pD(e.scale);return t.extent||=tc(),t}function xD(e,t){bD(e).dimIdxInCoord=t.get(e.dim)}function SD(e,t){var n=e.scale,r=e.model,i=e.dim;n.rawExtentInfo||CD(n,e,i,r,t)}function CD(e,t,n,r,i){var a=bD(t),o=a.extent,s=!1;eD(t,function(r){if(r.boxCoordinateSystem){var i=Jg(r).coord,c=a.dimIdxInCoord;if(c>=0&&B(i)){var l=i[c];l!=null&&!B(l)&&nc(o,e.parse(l))}}else if(r.coordinateSystem){var u=r.getData();if(u){var d=e.getFilter?e.getFilter():null;L(LE(u,n),function(e){ac(o,u.getApproximateExtent(e,d))})}r.__requireStartValue&&r.__requireStartValue(t)&&(s=!0)}});var c=kD(e,t,r);TD(e,new hD(e,r,o,s,c),i),a.extent=null}function wD(e,t){var n=e.scale;TD(n,new hD(n,e.model,t,!1,!1),mD)}function TD(e,t,n){e.rawExtentInfo=t,t.from=n}function ED(e,t){DD.set(e,t)}var DD=G();function OD(e,t,n,r,i){e.rawExtentInfo||wD({scale:e,model:t},i||tc());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 kD(e,t,n){var r=WE(e,n),i=n.get(`containShape`,!0);if(i==null&&!r&&(i=!0),!i)return!1;var a=!1;return aD(t,function(e){a=!!DD.get(e)||a}),a}function AD(e,t,n,r){if(n.ctnShp){var i;if(aD(e,function(t){var n=DD.get(t);if(n){var a=n(e,r);a&&(i||=[0,0],rc(i,a[0]),ic(i,a[1]),jE(e))}}),i){var a=t.getExtent();if(JT(t))e.onBand||t.setExtent2(1,wo(a[0],a[0]+i[0]),To(a[1],a[1]+i[1]));else{var o=a.slice();n.zoomFixMM[0]||(o[0]=wo(o[0],t.transformOut(t.transformIn(o[0],null)+i[0],null))),n.zoomFixMM[1]||(o[1]=To(o[1],t.transformOut(t.transformIn(o[1],null)+i[1],null))),(o[0]a[1])&&t.setExtent2(1,o[0],o[1])}}}}function jD(e,t){var n=qT(e),r=n?e.intervalStub:e,i=t.fixMinMax||[],a=n?e.getExtent():null,o=r.getExtent(),s=$T(o,i,t.rawExtentResult);r.setExtent(s[0],s[1]),s=r.getExtent();var c=n?ND(r,t):MD(r,t),l=c.intervalPrecision,u=c.interval,d=t.userInterval;d!=null&&(c.interval=d,c.intervalPrecision=XT(d)),i[0]||(s[0]=Bo(Oo(s[0]/u)*u,l)),i[1]||(s[1]=Bo(ko(s[1]/u)*u,l)),d!=null&&(c.niceExtent=s.slice()),HE(e,i,o,s,a,c)}function MD(e,t){var n=tE(t.splitNumber,5),r=BT(e),i=t.minInterval,a=t.maxInterval,o=es(r/n,!0);i!=null&&oa&&(o=a);var s=XT(o),c=e.getExtent(),l=[Bo(ko(c[0]/o)*o,s),Bo(Oo(c[1]/o)*o,s)];return{interval:o,intervalPrecision:s,niceExtent:l}}function ND(e,t){var n=tE(t.splitNumber,10),r=e.getExtent(),i=BT(e),a=To(Qo(i),1);n/i*a<=.5&&(a*=10);var o=XT(a),s=[Bo(ko(r[0]/a)*a,o),Bo(Oo(r[1]/a)*a,o)];return{intervalPrecision:o,interval:a,niceExtent:s}}function PD(e){var t=e.scale,n=e.model,r=n.axis,i=n.ecModel;FD(t,n,r,i,null)}function FD(e,t,n,r,i){var a=OD(e,t,r,n,i),o=GT(e)||KT(e);ID(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&&AD(n,e,a,r)}function ID(e,t){LD[e.type](e,t)}var LD={interval:jD,log:jD,time:vE,ordinal:qe},RD=1e-8;function zD(e,t){return Math.abs(e-t)n&&(t=i,n=o)}if(t)return WD(t.exterior);var s=this.getBoundingRect();return[s.x+s.width/2,s.y+s.height/2]},t.prototype.getBoundingRect=function(e){var t=this._rect;if(t&&!e)return t;var n=[1/0,1/0],r=[-1/0,-1/0],i=this.geometries;return L(i,function(t){t.type===`polygon`?UD(t.exterior,n,r,e):L(t.points,function(t){UD(t,n,r,e)})}),isFinite(n[0])&&isFinite(n[1])&&isFinite(r[0])&&isFinite(r[1])||(n[0]=n[1]=r[0]=r[1]=0),t=new J(n[0],n[1],r[0]-n[0],r[1]-n[1]),e||(this._rect=t),t},t.prototype.contain=function(e){var t=this.getBoundingRect(),n=this.geometries;if(!t.contain(e[0],e[1]))return!1;loopGeo:for(var r=0,i=n.length;r>1^-(s&1),c=c>>1^-(c&1),s+=i,c+=a,i=s,a=c,r.push([s/n,c/n])}return r}function $D(e,t){return e=XD(e),R(_e(e.features,function(e){return e.geometry&&e.properties&&e.geometry.coordinates.length>0}),function(e){var n=e.properties,r=e.geometry,i=[];switch(r.type){case`Polygon`:var a=r.coordinates;i.push(new KD(a[0],a.slice(1)));break;case`MultiPolygon`:L(r.coordinates,function(e){e[0]&&i.push(new KD(e[0],e.slice(1)))});break;case`LineString`:i.push(new qD([r.coordinates]));break;case`MultiLineString`:i.push(new qD(r.coordinates))}var o=new JD(n[t||`name`],i,n.cp);return o.properties=n,o})}var eO=Bs(),tO=Bs(),nO={estimate:1,determine:2};function rO(e){return{out:{noPxChangeTryDetermine:[]},kind:e}}function iO(e,t){var n=e.getLabelModel().get(`customValues`);if(n){var r=e.scale;return{labels:R(oO(n,r),function(t,n){return{formattedLabel:NE(e)(t,n),rawLabel:r.getLabel(t),tick:t}})}}return e.type===`category`?sO(e,t):uO(e)}function aO(e,t,n){var r=e.scale,i=e.getTickModel().get(`customValues`);return i?{ticks:oO(i,r)}:e.type===`category`?lO(e,t):{ticks:r.getTicks(n)}}function oO(e,t){var n=t.getExtent(),r=[];return L(e,function(e){e=t.parse(e),e>=n[0]&&e<=n[1]&&r.push(e)}),fc(r,mc,null),Vo(r),R(r,function(e){return{value:e}})}function sO(e,t){var n=e.getLabelModel(),r=cO(e,n,t);return!n.get(`show`)||e.scale.isBlank()?{labels:[]}:r}function cO(e,t,n){var r=fO(e),i=FE(t),a=n.kind===nO.estimate;if(!a){var o=mO(r,i);if(o)return o}var s,c;V(i)?s=xO(e,i,!1):(c=i===`auto`?gO(e,n):i,s=xO(e,c,!1));var l={labels:s,labelCategoryInterval:c};return a?n.out.noPxChangeTryDetermine.push(function(){return hO(r,i,l),!0}):hO(r,i,l),l}function lO(e,t){var n=dO(e),r=FE(t),i=mO(n,r);if(i)return i;var a,o;if((!t.get(`show`)||e.scale.isBlank())&&(a=[]),V(r))a=xO(e,r,!0);else if(r===`auto`){var s=cO(e,e.getLabelModel(),rO(nO.determine));o=s.labelCategoryInterval,a=R(s.labels,function(e){return e.tick})}else o=r,a=xO(e,o,!0);return hO(n,r,{ticks:a,tickCategoryInterval:o})}function uO(e){var t=e.scale.getTicks(),n=NE(e);return{labels:R(t,function(t,r){return{formattedLabel:n(t,r),rawLabel:e.scale.getLabel(t),tick:t}})}}var dO=pO(`axisTick`),fO=pO(`axisLabel`);function pO(e){return function(t){return tO(t)[e]||(tO(t)[e]={list:[]})}}function mO(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=Va(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===nO.estimate?(t.out.noPxChangeTryDetermine.push(z(vO,null,e,S,c)),S):yO(e,S,c)??S}function vO(e,t,n){return yO(e,t,n)==null}function yO(e,t,n){var r=eO(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 bO(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 xO(e,t,n){var r=NE(e),i=e.scale,a=[],o=V(t);return nE(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 SO=.8;function CO(e,t){t||={};var n={w:NaN,w2:NaN},r=e.scale,i=t.fromStat,a=t.min,o=zT(r);cs(o)||(o=NaN);var s=e.getExtent(),c=Eo(s[1]-s[0]);return JT(r)?wO(n,e,o,c):i&&TO(n,e,o,c,i),a!=null&&(n.w=cs(n.w)?To(a,n.w):a),n}function wO(e,t,n,r){var i=t.onBand,a=n+ +!!i;a===0&&(a=1),e.w=r/a,!i&&n&&r&&(e.w2=e.w*n/r)}function TO(e,t,n,r,i){var a=!1,o=-1/0;L(i.key?[XE(t,i.key)]:ZE(t,i.sers||[]),function(e){var t=e.liPosMinGap;t!=null&&(t>0?(t>o&&(o=t),a=!1):t===-2&&(a=!0))}),cs(n)&&n>0&&cs(o)?(e.w=r/n*o,e.w2=o):a&&(e.w=r*SO,e.w2=e.w*n/r)}var EO=[0,1],DO=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)),Fo(e,EO,OO(this),t)},e.prototype.coordToData=function(e,t){var n=Fo(e,OO(this),EO,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=R(aO(this,t,{breakTicks:e.breakTicks,pruneByBreak:e.pruneByBreak}).ticks,function(e){return{coord:this.dataToCoord(UE(this.scale,e)),tick:e}},this),r=t.get(`alignWithLabel`),i=kO(this,n,r);return R(n,function(e){return{coord:e.coord,tickValue:e.tick.value,onBand:i}})},e.prototype.getMinorTicksCoords=function(){if(JT(this.scale))return[];var e=this.model.getModel(`minorTick`).get(`splitNumber`);return e>0&&e<100||(e=5),R(this.scale.getMinorTicks(e),function(e){return R(e,function(e){return{coord:this.dataToCoord(e),tickValue:e}},this)},this)},e.prototype.getViewLabels=function(e){return e||=rO(nO.determine),iO(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 CO(this,{min:1}).w},e.prototype.calculateCategoryInterval=function(e){return e||=rO(nO.determine),_O(this,e)},e}();function OO(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 kO(e,t,n){var r=t.length;if(!e.onBand||n||!r)return!1;var i=CO(e).w;if(!i)return!1;L(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 AO=Math.PI*2,jO=Zl.CMD,MO=[`top`,`right`,`bottom`,`left`];function NO(e,t,n,r,i){var a=n.width,o=n.height;switch(e){case`top`:r.set(n.x+a/2,n.y-t),i.set(0,-1);break;case`bottom`:r.set(n.x+a/2,n.y+o+t),i.set(0,1);break;case`left`:r.set(n.x-t,n.y+o/2),i.set(-1,0);break;case`right`:r.set(n.x+a+t,n.y+o/2),i.set(1,0);break}}function PO(e,t,n,r,i,a,o,s,c){o-=e,s-=t;var l=Math.sqrt(o*o+s*s);o/=l,s/=l;var u=o*n+e,d=s*n+t;if(Math.abs(r-i)%AO<1e-4)return c[0]=u,c[1]=d,l-n;if(a){var f=r;r=nu(i),i=nu(f)}else r=nu(r),i=nu(i);r>i&&(i+=AO);var p=Math.atan2(s,o);if(p<0&&(p+=AO),p>=r&&p<=i||p+AO>=r&&p+AO<=i)return c[0]=u,c[1]=d,l-n;var m=n*Math.cos(r)+e,h=n*Math.sin(r)+t,g=n*Math.cos(i)+e,_=n*Math.sin(i)+t,v=(m-o)*(m-o)+(h-s)*(h-s),y=(g-o)*(g-o)+(_-s)*(_-s);return v0){t=t/180*Math.PI,BO.fromArray(e[0]),VO.fromArray(e[1]),HO.fromArray(e[2]),q.sub(UO,BO,VO),q.sub(WO,HO,VO);var n=UO.len(),r=WO.len();if(!(n<.001||r<.001)){UO.scale(1/n),WO.scale(1/r);var i=UO.dot(WO);if(Math.cos(t)1&&q.copy(qO,HO),qO.toArray(e[1])}}}}function YO(e,t,n){if(n<=180&&n>0){n=n/180*Math.PI,BO.fromArray(e[0]),VO.fromArray(e[1]),HO.fromArray(e[2]),q.sub(UO,VO,BO),q.sub(WO,HO,VO);var r=UO.len(),i=WO.len();if(!(r<.001||i<.001)&&(UO.scale(1/r),WO.scale(1/i),UO.dot(t)=o)q.copy(qO,HO);else{qO.scaleAndAdd(WO,a/Math.tan(Math.PI/2-s));var c=HO.x===VO.x?(qO.y-VO.y)/(HO.y-VO.y):(qO.x-VO.x)/(HO.x-VO.x);if(isNaN(c))return;c<0?q.copy(qO,VO):c>1&&q.copy(qO,HO)}qO.toArray(e[1])}}}function XO(e,t,n,r){var i=n===`normal`,a=i?e:e.ensureState(n);a.ignore=t;var o=r.get(`smooth`);o=o===!0?.3:Math.max(+o,0)||0,a.shape=a.shape||{},a.shape.smooth=o;var s=r.getModel(`lineStyle`).getLineStyle();i?e.useStyle(s):a.style=s}function ZO(e,t){var n=t.smooth,r=t.points;if(r)if(e.moveTo(r[0][0],r[0][1]),n>0&&r.length>=3){var i=lt(r[0],r[1]),a=lt(r[1],r[2]);if(!i||!a){e.lineTo(r[1][0],r[1][1]),e.lineTo(r[2][0],r[2][1]);return}var o=Math.min(i,a)*n,s=ft([],r[1],r[0],o/i),c=ft([],r[1],r[2],o/a),l=ft([],s,c,.5);e.bezierCurveTo(s[0],s[1],s[0],s[1],l[0],l[1]),e.bezierCurveTo(c[0],c[1],c[0],c[1],r[2][0],r[2][1])}else for(var u=1;u0&&i&&S(-d/a,0,a);var g=e[0],_=e[a-1],v,y;b(),v<0&&C(-v,.8),y<0&&C(y,.8),b(),x(v,y,1),x(y,v,-1),b(),v<0&&w(-v),y<0&&w(y);function b(){v=g.rect[o]-n,y=r-_.rect[o]-_.rect[s]}function x(e,t,n){if(e<0){var r=Math.min(t,-e);if(r>0){S(r*n,0,a);var i=r+e;i<0&&C(-i*n,1)}else C(-e*n,1)}}function S(t,n,r){t!==0&&(u=!0);for(var i=n;i0)for(var c=0;c0;c--){var f=r[c-1]*d;S(-f,c,a)}}}function w(e){var t=e<0?-1:1;e=Math.abs(e);for(var n=Math.ceil(e/(a-1)),r=0;r0?S(n,0,r+1):S(-n,a-r-1,a),e-=n,e<=0)return}return u}function mk(e){for(var t=0;t=0&&n.attr(i.oldLayoutSelect),I(u,`emphasis`)>=0&&n.attr(i.oldLayoutEmphasis)),Yp(n,c,t,s)}else if(n.attr(c),!dh(n).valueAnimation){var d=W(n.style.opacity,1);n.style.opacity=0,Xp(n,{style:{opacity:d}},t,s)}if(i.oldLayout=c,n.states.select){var f=i.oldLayoutSelect={};Ck(f,c,wk),Ck(f,n.states.select,wk)}if(n.states.emphasis){var p=i.oldLayoutEmphasis={};Ck(p,c,wk),Ck(p,n.states.emphasis,wk)}ph(n,s,l,t,t)}if(r&&!r.ignore&&!r.invisible){var i=Sk(r),a=i.oldLayout,m={points:r.shape.points};a?(r.attr({shape:a}),Yp(r,{shape:m},t)):(r.setShape(m),r.style.strokePercent=0,Xp(r,{style:{strokePercent:1}},t)),i.oldLayout=m}},e}(),Ek=Bs();function Dk(e){e.registerUpdateLifecycle(`series:beforeupdate`,function(e,t,n){var r=Ek(t).labelManager;r||=Ek(t).labelManager=new Tk,r.clearLabels()}),e.registerUpdateLifecycle(`series:layoutlabels`,function(e,t,n){var r=Ek(t).labelManager;L(n.updatedSeries,function(e){r.addLabelsOfSeries(t.getViewOfSeriesModel(e))}),r.updateLayoutConfig(t),r.layout(t),r.processLabelsOverall()})}var Ok=Math.sin,kk=Math.cos,Ak=Math.PI,jk=Math.PI*2,Mk=180/Ak,Nk=function(){function e(){}return e.prototype.reset=function(e){this._start=!0,this._d=[],this._str=``,this._p=10**(e||4)},e.prototype.moveTo=function(e,t){this._add(`M`,e,t)},e.prototype.lineTo=function(e,t){this._add(`L`,e,t)},e.prototype.bezierCurveTo=function(e,t,n,r,i,a){this._add(`C`,e,t,n,r,i,a)},e.prototype.quadraticCurveTo=function(e,t,n,r){this._add(`Q`,e,t,n,r)},e.prototype.arc=function(e,t,n,r,i,a){this.ellipse(e,t,n,n,0,r,i,a)},e.prototype.ellipse=function(e,t,n,r,i,a,o,s){var c=o-a,l=!s,u=Math.abs(c),d=si(u-jk)||(l?c>=jk:-c>=jk),f=c>0?c%jk:c%jk+jk,p=!1;p=d?!0:si(u)?!1:f>=Ak==!!l;var m=e+n*kk(a),h=t+r*Ok(a);this._start&&this._add(`M`,m,h);var g=Math.round(i*Mk);if(d){var _=1/this._p,v=(l?1:-1)*(jk-_);this._add(`A`,n,r,g,1,+l,e+n*kk(a+v),t+r*Ok(a+v)),_>.01&&this._add(`A`,n,r,g,0,+l,m,h)}else{var y=e+n*kk(o),b=t+r*Ok(o);this._add(`A`,n,r,g,+p,+l,y,b)}},e.prototype.rect=function(e,t,n,r){this._add(`M`,e,t),this._add(`l`,n,0),this._add(`l`,0,r),this._add(`l`,-n,0),this._add(`Z`)},e.prototype.closePath=function(){this._d.length>0&&this._add(`Z`)},e.prototype._add=function(e,t,n,r,i,a,o,s,c){for(var l=[],u=this._p,d=1;d`}function Yk(e){return``}function Xk(e,t){t||={};var n=t.newline?` +`:``;function r(e){var t=e.children,i=e.tag,a=e.attrs,o=e.text;return Jk(i,a)+(i===`style`?o||``:Mt(o))+(t?``+n+R(t,function(e){return r(e)}).join(n)+n:``)+Yk(i)}return r(e)}function Zk(e,t,n){n||={};var r=n.newline?` +`:``,i=` {`+r,a=r+`}`,o=R(ye(e),function(t){return t+i+R(ye(e[t]),function(n){return n+`:`+e[t][n]+`;`}).join(r)+a}).join(r),s=R(ye(t),function(e){return`@keyframes `+e+i+R(ye(t[e]),function(n){return n+i+R(ye(t[e][n]),function(r){var i=t[e][n][r];return r===`d`&&(i=`path("`+i+`")`),r+`:`+i+`;`}).join(r)+a}).join(r)+a}).join(r);return!o&&!s?``:[``].join(r)}function Qk(e){return{zrId:e,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function $k(e,t,n,r){return qk(`svg`,`root`,{width:e,height:t,xmlns:Vk,"xmlns:xlink":Hk,version:`1.1`,baseProfile:`full`,viewBox:r?`0 0 `+e+` `+t:!1},n)}var eA=0;function tA(){return eA++}var nA={cubicIn:`0.32,0,0.67,0`,cubicOut:`0.33,1,0.68,1`,cubicInOut:`0.65,0,0.35,1`,quadraticIn:`0.11,0,0.5,0`,quadraticOut:`0.5,1,0.89,1`,quadraticInOut:`0.45,0,0.55,1`,quarticIn:`0.5,0,0.75,0`,quarticOut:`0.25,1,0.5,1`,quarticInOut:`0.76,0,0.24,1`,quinticIn:`0.64,0,0.78,0`,quinticOut:`0.22,1,0.36,1`,quinticInOut:`0.83,0,0.17,1`,sinusoidalIn:`0.12,0,0.39,0`,sinusoidalOut:`0.61,1,0.88,1`,sinusoidalInOut:`0.37,0,0.63,1`,exponentialIn:`0.7,0,0.84,0`,exponentialOut:`0.16,1,0.3,1`,exponentialInOut:`0.87,0,0.13,1`,circularIn:`0.55,0,1,0.45`,circularOut:`0,0.55,0.45,1`,circularInOut:`0.85,0,0.15,1`},rA=`transform-origin`;function iA(e,t,n){var r=P({},e.shape);P(r,t),e.buildPath(n,r);var i=new Nk;return i.reset(Si(e)),n.rebuildPath(i,1),i.generateStr(),i.getStr()}function aA(e,t){var n=t.originX,r=t.originY;(n||r)&&(e[rA]=n+`px `+r+`px`)}var oA={fill:`fill`,opacity:`opacity`,lineWidth:`stroke-width`,lineDashOffset:`stroke-dashoffset`};function sA(e,t){var n=t.zrId+`-ani-`+ t.cssAnimIdx++;return t.cssAnims[n]=e,n}function cA(e,t,n){var r=e.shape.paths,i={},a,o;if(L(r,function(e){var t=Qk(n.zrId);t.animation=!0,uA(e,{},t,!0);var r=t.cssAnims,s=t.cssNodes,c=ye(r),l=c.length;if(l){o=c[l-1];var u=r[o];for(var d in u){var f=u[d];i[d]=i[d]||{d:``},i[d].d+=f.d||``}for(var p in s){var m=s[p].animation;m.indexOf(o)>=0&&(a=m)}}}),a){t.d=!1;var s=sA(i,n);return a.replace(o,s)}}function lA(e){return H(e)?nA[e]?`cubic-bezier(`+nA[e]+`)`:Or(e)?e:``:``}function uA(e,t,n,r){var i=e.animators,a=i.length,o=[];if(e instanceof jp){var s=cA(e,t,n);if(s)o.push(s);else if(!a)return}else if(!a)return;for(var c={},l=0;l0}).length)return sA(l,n)+` `+i[0]+` both`}for(var g in c){var s=h(c[g]);s&&o.push(s)}if(o.length){var _=n.zrId+`-cls-`+tA();n.cssNodes[`.`+_]={animation:o.join(`,`)},t.class=_}}function dA(e,t,n){if(!e.ignore)if(e.isSilent()){var r={"pointer-events":`none`};fA(r,t,n,!0)}else{var i=e.states.emphasis&&e.states.emphasis.style?e.states.emphasis.style:{},a=i.fill;if(!a){var o=e.style&&e.style.fill,s=e.states.select&&e.states.select.style&&e.states.select.style.fill,c=e.currentStates.indexOf(`select`)>=0&&s||o;c&&(a=ri(c))}var l=i.lineWidth;if(l){var u=!i.strokeNoScale&&e.transform?e.transform[0]:1;l/=u}var r={cursor:`pointer`};a&&(r.fill=a),i.stroke&&(r.stroke=i.stroke),l&&(r[`stroke-width`]=l),fA(r,t,n,!0)}}function fA(e,t,n,r){var i=JSON.stringify(e),a=n.cssStyleCache[i];a||(a=n.zrId+`-cls-`+tA(),n.cssStyleCache[i]=a,n.cssNodes[`.`+a+(r?`:hover`:``)]=e),t.class=t.class?t.class+` `+a:a}var pA=Math.round;function mA(e){return e&&H(e.src)}function hA(e){return e&&V(e.toDataURL)}function gA(e,t,n,r){Bk(function(i,a){var o=i===`fill`||i===`stroke`;o&&bi(a)?jA(t,e,i,r):o&&_i(a)?MA(n,e,i,r):e[i]=a,o&&r.ssr&&a===`none`&&(e[`pointer-events`]=`visible`)},t,n,!1),AA(n,e,r)}function _A(e,t){var n=yo(t);n&&(n.each(function(t,n){t!=null&&(e[(`ecmeta_`+n).toLowerCase()]=t+``)}),t.isSilent()&&(e[Gk+`silent`]=`true`))}function vA(e){return si(e[0]-1)&&si(e[1])&&si(e[2])&&si(e[3]-1)}function yA(e){return si(e[4])&&si(e[5])}function bA(e,t,n){if(t&&!(yA(t)&&vA(t))){var r=n?10:1e4;e.transform=vA(t)?`translate(`+pA(t[4]*r)/r+` `+pA(t[5]*r)/r+`)`:ui(t)}}function xA(e,t,n){for(var r=e.points,i=[],a=0;a`u`){var g=`Image width/height must been given explictly in svg-ssr renderer.`;Fe(f,g),Fe(p,g)}else if(f==null||p==null){var _=function(e,t){if(e){var n=e.elm,r=f||t.width,i=p||t.height;e.tag===`pattern`&&(l?(i=1,r/=a.width):u&&(r=1,i/=a.height)),e.attrs.width=r,e.attrs.height=i,n&&(n.setAttribute(`width`,r),n.setAttribute(`height`,i))}},v=Rc(m,null,e,function(e){c||_(S,e),_(d,e)});v&&v.width&&v.height&&(f||=v.width,p||=v.height)}d=qk(`image`,`img`,{href:m,width:f,height:p}),o.width=f,o.height=p}else i.svgElement&&(d=M(i.svgElement),o.width=i.svgWidth,o.height=i.svgHeight);if(d){var y,b;c?y=b=1:l?(b=1,y=o.width/a.width):u?(y=1,b=o.height/a.height):o.patternUnits=`userSpaceOnUse`,y!=null&&!isNaN(y)&&(o.width=y),b!=null&&!isNaN(b)&&(o.height=b);var x=Ci(i);x&&(o.patternTransform=x);var S=qk(`pattern`,``,o,[d]),C=Xk(S),w=r.patternCache,T=w[C];T||(T=r.zrId+`-p`+ r.patternIdx++,w[C]=T,o.id=T,S=r.defs[T]=qk(`pattern`,T,o,[d])),t[n]=xi(T)}}function NA(e,t,n){var r=n.clipPathCache,i=n.defs,a=r[e.id];if(!a){a=n.zrId+`-c`+ n.clipPathIdx++;var o={id:a};r[e.id]=a,i[a]=qk(`clipPath`,a,o,[EA(e,n)])}t[`clip-path`]=xi(a)}function PA(e){return document.createTextNode(e)}function FA(e,t,n){e.insertBefore(t,n)}function IA(e,t){e.removeChild(t)}function LA(e,t){e.appendChild(t)}function RA(e){return e.parentNode}function zA(e){return e.nextSibling}function BA(e,t){e.textContent=t}var VA=58,HA=120,UA=qk(``,``);function WA(e){return e===void 0}function GA(e){return e!==void 0}function KA(e,t,n){for(var r={},i=t;i<=n;++i){var a=e[i].key;a!==void 0&&(r[a]=i)}return r}function qA(e,t){var n=e.key===t.key;return e.tag===t.tag&&n}function JA(e){var t,n=e.children,r=e.tag;if(GA(r)){var i=e.elm=Kk(r);if(ZA(UA,e),B(n))for(t=0;ta?(m=n[c+1]==null?null:n[c+1].elm,YA(e,m,n,i,c)):XA(e,t,r,a))}function $A(e,t){var n=t.elm=e.elm,r=e.children,i=t.children;e!==t&&(ZA(e,t),WA(t.text)?GA(r)&&GA(i)?r!==i&&QA(n,r,i):GA(i)?(GA(e.text)&&BA(n,``),YA(n,null,i,0,i.length-1)):GA(r)?XA(n,r,0,r.length-1):GA(e.text)&&BA(n,``):e.text!==t.text&&(GA(r)&&XA(n,r,0,r.length-1),BA(n,t.text)))}function ej(e,t){if(qA(e,t))$A(e,t);else{var n=e.elm,r=RA(n);JA(t),r!==null&&(FA(r,t.elm,zA(n)),XA(r,[e],0,0))}return t}var tj=0,nj=function(){function e(e,t,n){if(this.type=`svg`,this.configLayer=rj(`configLayer`),this.storage=t,this._opts=n=P({},n),this.root=e,this._id=`zr`+ tj++,this._oldVNode=$k(n.width,n.height),e&&!n.ssr){var r=this._viewport=document.createElement(`div`);r.style.cssText=`position:relative;overflow:hidden`;var i=this._svgDom=this._oldVNode.elm=Kk(`svg`);ZA(null,this._oldVNode),r.appendChild(i),e.appendChild(r)}this.resize(n.width,n.height)}return e.prototype.getType=function(){return this.type},e.prototype.getViewportRoot=function(){return this._viewport},e.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},e.prototype.getSvgDom=function(){return this._svgDom},e.prototype.refresh=function(){if(this.root){var e=this.renderToVNode({willUpdate:!0});e.attrs.style=`position:absolute;left:0;top:0;user-select:none`,ej(this._oldVNode,e),this._oldVNode=e}},e.prototype.renderOneToVNode=function(e){return kA(e,Qk(this._id))},e.prototype.renderToVNode=function(e){e||={};var t=this.storage.getDisplayList(!0),n=this._width,r=this._height,i=Qk(this._id);i.animation=e.animation,i.willUpdate=e.willUpdate,i.compress=e.compress,i.emphasis=e.emphasis,i.ssr=this._opts.ssr;var a=[],o=this._bgVNode=ij(n,r,this._backgroundColor,i);o&&a.push(o);var s=e.compress?null:this._mainVNode=qk(`g`,`main`,{},[]);this._paintList(t,i,s?s.children:a),s&&a.push(s);var c=R(ye(i.defs),function(e){return i.defs[e]});if(c.length&&a.push(qk(`defs`,`defs`,{},c)),e.animation){var l=Zk(i.cssNodes,i.cssAnims,{newline:!0});if(l){var u=qk(`style`,`stl`,{},[],l);a.push(u)}}return $k(n,r,a,e.useViewBox)},e.prototype.renderToString=function(e){return e||={},Xk(this.renderToVNode({animation:W(e.cssAnimation,!0),emphasis:W(e.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:W(e.useViewBox,!0)}),{newline:!0})},e.prototype.setBackgroundColor=function(e){this._backgroundColor=e},e.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},e.prototype._paintList=function(e,t,n){for(var r=e.length,i=[],a=0,o,s,c=0,l=0;l=0&&!(d&&s&&d[m]===s[m]);m--);for(var h=p-1;h>m;h--)a--,o=i[a-1];for(var g=m+1;g=a}}for(var l=cj(this),u=l.startIdx;u=0)&&(a=!0)}),!(!a&&!i.__dirty)){var o=n._opts.useDirtyRect&&!sj(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)}xj(i,function(t){var a=n._paintPerCursor(i,t,e,o,c);r&&=a})}},Dj),y.wxa&&Cj(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=sj(e),c=s&&D.getTime(),l=t.drawIdx,u=t.notClearIdx,d=u>=0?Math.min(u,l):l;d15){d++;break}}}WS(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=dj,t=0);var i=Sj(this._i,e)[t];return i||(i=_j(`zr_`+e+`.`+t,this,e,t),this._layerConfig[e]&&N(i,this._layerConfig[e],!0),(n||r&&e!==dj)&&(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])&&hj(e)){for(var l=o.length,u=0;u0&&(c=Sj(i,o[u-1].zl)[o[u-1].zl2]),o.splice(u,0,{zl:t,zl2:n}),Sj(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 Cj(this._i,function(n,r){e.call(t,n,r)})},e.prototype.eachBuiltinLayer=function(e,t){return Cj(this._i,function(n,r){e.call(t,n,r)},wj)},e.prototype.eachOtherLayer=function(e,t){return Cj(this._i,function(n,r){e.call(t,n,r)},Tj)},e.prototype.getLayers=function(){var e={};return Cj(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;(sj(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=hS(i,0,r),t=hS(i,1,r),n.style.display=``,(this._width!==e||t!==this._height)&&(n.style.width=e+`px`,n.style.height=t+`px`,Cj(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(dj).resize(e,t)}return this},e.prototype.clearLayer=function(e){L(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[dj][0].dom;var t=new lj(`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;Cj(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-1&&(s.style.stroke=s.style.fill,s.style.fill=Q.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}(Tb);function jj(e,t){var n=e.mapDimensionsAll(`defaultedLabel`),r=n.length;if(r===1){var i=dy(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 Nj=function(e){_(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=oS(e,-1,-1,2,2,null,a);o.attr({z2:W(i,100),culling:!0,scaleX:r[0]/2,scaleY:r[1]/2}),o.drift=Pj,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(){Kd(this.childAt(0))},t.prototype.downplay=function(){qd(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):Yp(f,p,o,n),tm(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,Xp(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=th(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=cS(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 Ou){var S=a.style;a.useStyle(P({image:S.image,x:S.x,y:S.y,width:S.width,height:S.height},b))}else a.__isEmptyBrush?a.useStyle(P({},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;eh(a,p,{labelFetcher:o,labelDataIndex:t,defaultText:E,inheritColor:x,defaultOpacity:b.opacity});function E(t){return T?e.getName(t):jj(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),ff(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=Z(this).dataIndex,a=n&&n.animation;if(this.silent=r.silent=!0,n&&n.fadeLabel){var o=r.getTextContent();o&&Qp(o,{style:{opacity:0}},t,{dataIndex:i,removeOpt:a,cb:function(){r.removeTextContent()}})}else r.removeTextContent();Qp(r,{style:{opacity:0},scaleX:0,scaleY:0},t,{dataIndex:i,cb:e,removeOpt:a})},t.getSymbolSize=function(e,t){return sS(e.getItemVisual(t,`symbolSize`))},t.getSymbolZ2=function(e,t){return e.getItemVisual(t,`z2`)},t}(Y);function Pj(e,t){this.parent.drift(e,t)}function Fj(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 Ij(e){return e!=null&&!U(e)&&(e={isIgnore:e}),e||{}}function Lj(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:th(t),cursorStyle:t.get(`cursor`)}}function Rj(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 zj=function(){function e(e){this.group=new Y,this._SymbolCtor=e||Nj}return e.prototype.updateData=function(e,t){this._progressiveEls=null,t=Ij(t);var n=this.group,r=e.hostModel,i=this._data,a=this._SymbolCtor,o=t.disableAnimation,s=this._seriesScope=Lj(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);Fj(e,i,r,t)&&Rj(a,e,r,s,c,i,n)}).update(function(u,d){var f=i.getItemGraphicEl(d),p=l(u);if(!Fj(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):Yp(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 Hj(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 Uj(e,t){return!isFinite(e)||!isFinite(t)}var Wj=typeof Float32Array<`u`?Float32Array:void 0,Gj=typeof Float64Array<`u`?Float64Array:void 0;function Kj(e){return qj({ctor:Wj},e).arr}function qj(e,t){var n=e.arr,r=e.ctor;if(t>qo&&(t=qo),!n||e.typed&&n.length=i||h<0)break;if(Uj(_,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||Uj(S,C))p=_,m=v;else{E=S-l,D=C-u;var A=_-l,j=S-_,ee=v-u,te=C-v,ne=void 0,re=void 0;if(s===`x`){ne=Math.abs(A),re=Math.abs(j);var ie=E>0?1:-1;p=_-ie*ne*o,m=v,O=_+ie*re*o,k=v}else if(s===`y`){ne=Math.abs(ee),re=Math.abs(te);var ae=D>0?1:-1;p=_,m=v-ae*ne*o,O=_,k=v+ae*re*o}else ne=Math.sqrt(A*A+ee*ee),re=Math.sqrt(j*j+te*te),T=re/(re+ne),p=_-E*o*(1-T),m=v-D*o*(1-T),O=_+E*o*T,k=v+D*o*T,O=Xj(O,Zj(S,_)),k=Xj(k,Zj(C,v)),O=Zj(O,Xj(S,_)),k=Zj(k,Xj(C,v)),E=O-_,D=k-v,p=_-E*ne/re,m=v-D*ne/re,p=Xj(p,Zj(l,_)),m=Xj(m,Zj(u,v)),p=Zj(p,Xj(l,_)),m=Zj(m,Xj(u,v)),E=_-p,D=v-m,O=_+E*re/ne,k=v+D*re/ne}e.bezierCurveTo(d,f,p,m,_,v),d=O,f=k}else e.lineTo(_,v)}l=_,u=v,h+=a}return g}var $j=function(){function e(){this.smooth=0,this.smoothConstraint=!0}return e}(),eM=function(e){_(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:Q.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new $j},t.prototype.buildPath=function(e,t){var n=t.points,r=0,i=n.length/2;if(t.connectNulls){for(;i>0&&Uj(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?hr(i,u,f,m,e,s):hr(a,d,p,h,e,s);if(v>0)for(var y=0;y=0){var _=o?pr(a,d,p,h,b):pr(i,u,f,m,b);return o?[e,_]:[_,e]}}i=m,a=h;break}}},t}(Su),tM=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}($j),nM=function(e){_(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 tM},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&&Uj(n[a*2-2],n[a*2-1]);a--);for(;i=0,a=e.fill||Q.color.neutral99;mM(r,t);var o=r.textFill==null;return i?o&&(r.textFill=n.insideFill||Q.color.neutral00,!r.textStroke&&n.insideStroke&&(r.textStroke=n.insideStroke),!r.textStroke&&(r.textStroke=a),r.textStrokeWidth??=2):(o&&(r.textFill=e.fill||n.outsideFill||Q.color.neutral00),!r.textStroke&&n.outsideStroke&&(r.textStroke=n.outsideStroke)),r.text=t.text,r.rich=t.rich,L(t.rich,function(e){mM(e,e)}),r}function mM(e,t){t&&(K(t,`fill`)&&(e.textFill=t.fill),K(t,`stroke`)&&(e.textStroke=t.fill),K(t,`lineWidth`)&&(e.textStrokeWidth=t.lineWidth),K(t,`font`)&&(e.font=t.font),K(t,`fontStyle`)&&(e.fontStyle=t.fontStyle),K(t,`fontWeight`)&&(e.fontWeight=t.fontWeight),K(t,`fontSize`)&&(e.fontSize=t.fontSize),K(t,`fontFamily`)&&(e.fontFamily=t.fontFamily),K(t,`align`)&&(e.textAlign=t.align),K(t,`verticalAlign`)&&(e.textVerticalAlign=t.verticalAlign),K(t,`lineHeight`)&&(e.textLineHeight=t.lineHeight),K(t,`width`)&&(e.textWidth=t.width),K(t,`height`)&&(e.textHeight=t.height),K(t,`backgroundColor`)&&(e.textBackgroundColor=t.backgroundColor),K(t,`padding`)&&(e.textPadding=t.padding),K(t,`borderColor`)&&(e.textBorderColor=t.borderColor),K(t,`borderWidth`)&&(e.textBorderWidth=t.borderWidth),K(t,`borderRadius`)&&(e.textBorderRadius=t.borderRadius),K(t,`shadowColor`)&&(e.textBoxShadowColor=t.shadowColor),K(t,`shadowBlur`)&&(e.textBoxShadowBlur=t.shadowBlur),K(t,`shadowOffsetX`)&&(e.textBoxShadowOffsetX=t.shadowOffsetX),K(t,`shadowOffsetY`)&&(e.textBoxShadowOffsetY=t.shadowOffsetY),K(t,`textShadowColor`)&&(e.textShadowColor=t.textShadowColor),K(t,`textShadowBlur`)&&(e.textShadowBlur=t.textShadowBlur),K(t,`textShadowOffsetX`)&&(e.textShadowOffsetX=t.textShadowOffsetX),K(t,`textShadowOffsetY`)&&(e.textShadowOffsetY=t.textShadowOffsetY))}function hM(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 SM(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=R(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=xM(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`;L(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 Np(0,0,0,0,f,!0);return v[i]=h,v[i+`2`]=g,v}}}function CM(e,t,n){var r=e.get(`showAllSymbol`),i=r===`auto`;if(!(r&&!i)){var a=n.getAxesByScale(`ordinal`)[0];if(a&&!(i&&wM(a,t))){var o=t.mapDimension(a.dim),s={};return L(a.getViewLabels(),function(e){e.tick.offInterval||(s[UE(a.scale,e.tick)]=1)}),function(e){return!s.hasOwnProperty(t.get(o,e))}}}}function wM(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 TM(e){for(var t=e.length/2;t>0&&Uj(e[t*2-2],e[t*2-1]);t--);return t-1}function EM(e,t){return[e[t*2],e[t*2+1]]}function DM(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 OM(e){if(e.get([`endLabel`,`show`]))return!0;for(var t=0;t0&&e.get([`emphasis`,`lineStyle`,`width`])===`bolder`){var ee=f.getState(`emphasis`).style;ee.lineWidth=+f.style.lineWidth+1}Z(f).seriesIndex=e.seriesIndex,ff(f,k,A,j);var te=vM(e.get(`smooth`)),ne=e.get(`smoothMonotone`);if(f.setShape({smooth:te,smoothMonotone:ne,connectNulls:x}),p){var re=a.getCalculationInfo(`stackedOnSeries`),ie=0;p.useStyle(F(s.getAreaStyle(),{fill:E,opacity:.7,lineJoin:`bevel`,decal:a.getVisual(`style`).decal})),re&&(ie=vM(re.get(`smooth`))),p.setShape({smooth:te,stackedOnSmooth:ie,smoothMonotone:ne,connectNulls:x}),gf(p,e,`areaStyle`),Z(p).seriesIndex=e.seriesIndex,ff(p,k,A,j)}var ae=this._changePolyState;a.eachItemGraphicEl(function(e){e&&(e.onHoverStateChange=ae)}),this._polyline.onHoverStateChange=ae,this._data=a,this._coordSys=r,this._stackedOnPoints=y,this._points=c,this._step=w,this._valueOrigin=_;var oe=e.get(`triggerEvent`),se=e.get(`triggerLineEvent`),ce=se===!0||oe===!0||oe===`line`,le=se===!0||oe===!0||oe===`area`;this.packEventData(e,f,ce),p&&this.packEventData(e,p,le)},t.prototype.packEventData=function(e,t,n){Z(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=zs(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(Uj(c,l)||this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(c,l))return;var u=e.get(`zlevel`)||0,d=e.get(`z`)||0;s=new Nj(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 Rb.prototype.highlight.call(this,e,t,n,r)},t.prototype.downplay=function(e,t,n,r){var i=e.getData(),a=zs(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 Rb.prototype.downplay.call(this,e,t,n,r)},t.prototype._changePolyState=function(e){var t=this._polygon;Ld(this._polyline,e),t&&Ld(t,e)},t.prototype._newPolyline=function(e){var t=this._polyline;return t&&this._lineGroup.remove(t),t=new eM({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 nM({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`);V(c)&&(c=c(null));var l=s.get(`animationDelay`)||0,u=V(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=V(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(OM(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 Vu({z2:200}),s.ignoreClip=!0,a.setTextContent(this._endLabel),a.disableLabelAnimation=!0);var c=TM(o);c>=0&&(eh(a,th(e,`endLabel`),{inheritColor:n,labelFetcher:e,labelDataIndex:c,defaultText:function(e,t,n){return n==null?jj(i,e):Mj(i,n)},enableTextSetter:!0},AM(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=DM(l,v,x),C=S.range,w=C[1]-C[0],T=void 0;if(w>=1){if(w>1&&!d){var E=EM(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=Qs(n,f,D,O,S.t))}r.lastFrameIndex=C[0]}else{var k=e===1||r.lastFrameIndex>0?C[0]:0,E=EM(l,k);i&&(T=u.getRawValue(k)),s.attr({x:E[0]+y,y:E[1]+b})}if(i){var A=dh(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=Yj(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=bM(u.stackedOnCurrent,u.current,n,i,o),d=bM(u.current,null,n,i,o),m=bM(u.stackedOnNext,u.next,n,i,o),p=bM(u.next,null,n,i,o)),_M(d,p)>3e3||c&&_M(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(),Yp(s,h,l),c&&(c.setShape({points:d,stackedOnPoints:f}),c.stopAnimation(),Yp(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;H(i)?p=NM[i]:V(i)&&(p=i),p&&e.setData(r.downSample(r.mapDimension(c.dim),1/f,p,PM))}}}}}function IM(e){e.registerChartView(jM),e.registerSeriesModel(Aj),e.registerLayout(MM(`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,FM(`line`))}var LM=function(e){_(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}(DO),RM=null;function zM(e){RM||=e}function BM(){return RM}var VM=`expandAxisBreak`,HM=`collapseAxisBreak`,UM=`toggleAxisBreak`,WM=`axisbreakchanged`,GM={type:VM,event:WM,update:`update`,refineEvent:JM},KM={type:HM,event:WM,update:`update`,refineEvent:JM},qM={type:UM,event:WM,update:`update`,refineEvent:JM};function JM(e,t,n,r){var i=[];return L(e,function(e){i=i.concat(e.eventBreaks)}),{eventContent:{breaks:i}}}function YM(e){e.registerAction(GM,t),e.registerAction(KM,t),e.registerAction(qM,t);function t(e,t){var n=[],r=Hs(t,e);function i(t,i){L(r[t],function(t){L(t.updateAxisBreaks(e).breaks,function(e){var r;n.push(F((r={},r[i]=t.componentIndex,r),e))})})}return i(`xAxisModels`,`xAxisIndex`),i(`yAxisModels`,`yAxisIndex`),i(`singleAxisModels`,`singleAxisIndex`),{eventBreaks:n}}}var XM=Math.PI,ZM=[[1,2,1,2],[5,3,5,3],[8,3,8,3]],QM=[[0,1,0,1],[0,3,0,3],[0,3,0,3]],$M=Bs(),eN=Bs(),tN=function(){function e(e){this.recordMap={},this.resolveAxisNameOverlap=e}return e.prototype.ensureRecord=function(e){var t=e.axis.dim,n=e.componentIndex,r=this.recordMap,i=r[t]||(r[t]=[]);return i[n]||(i[n]={ready:{}})},e}();function nN(e,t,n,r){var i=n.axis,a=t.ensureRecord(n),o=[],s,c=EN(e.axisName)&&RE(e.nameLocation);L(r,function(e){var t=ok(e);if(!(!t||t.label.ignore)){o.push(t);var n=a.transGroup;c&&(n.transform?nn(rN,n.transform):Xt(rN),t.transform&&Qt(rN,rN,t.transform),J.copy(iN,t.localRect),iN.applyTransform(rN),s?s.union(iN):J.copy(s=new J(0,0,0,0),iN))}});var l=Math.abs(a.dirVec.x)>.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 J(f,0,p,1))}a.stOccupiedRect=s,a.labelInfoList=o}var rN=Yt(),iN=new J(0,0,0,0),aN=function(e,t,n,r,i,a){if(RE(e.nameLocation)){var o=a.stOccupiedRect;o&&oN(lk({},o,a.transGroup.transform),r,i)}else sN(a.labelInfoList,a.dirVec,r,i)};function oN(e,t,n){var r=new q;gk(e,t,r,{direction:Math.atan2(n.y,n.x),bidirectional:!1,touchThreshold:.05})&&uk(t,r)}function sN(e,t,n,r){for(var i=q.dot(r,t)>=0,a=0,o=e.length;a0?`top`:`bottom`,i=`center`):Yo(r-XM)?(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}(),lN=[`axisLine`,`axisTickLabelEstimate`,`axisTickLabelDetermine`,`axisName`],uN={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&&(pt(u,u,l),pt(d,d,l));var p=P({lineCap:`round`},r.getModel([`axisLine`,`lineStyle`]).getLineStyle()),m={strokeContainThreshold:e.raw.strokeContainThreshold||5,silent:!0,z2:1,style:p};if(r.get([`axisLine`,`breakLine`])&&Jh(r.axis.scale))BM().buildAxisBreakLine(r,i,a,m);else{var h=new wp(P({shape:{x1:u[0],y1:u[1],x2:d[0],y2:d[1]}},m));_m(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`]);H(g)&&(g=[g,g]),(H(_)||Ce(_))&&(_=[_,_]);var v=cS(r.get([`axisLine`,`symbolOffset`])||0,_),y=_[0],b=_[1];L([{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=oS(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){yN(t,i,s)&&dN(e,t,n,r,i,a,o,nO.estimate)},axisTickLabelDetermine:function(e,t,n,r,i,a,o,s){yN(t,i,s)&&dN(e,t,n,r,i,a,o,nO.determine);var c=_N(e,i,a,r);mN(e,t.labelLayoutList,c),vN(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(EN(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 q(0,0),_=new q(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=Yt();_.transform(en(v,v,e.rotation));var y=r.get(`nameRotate`);y!=null&&(y=y*XM/180);var b,x;RE(u)?b=cN.innerTextLayout(e.rotation,y??e.rotation,d):(b=fN(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=je(e.raw.nameTruncateMaxWidth,C.maxWidth,x),E=s.nameMarginLevel||0,D=new Vu({x:g.x,y:g.y,rotation:b.rotation,silent:cN.isLabelSilent(r),style:nh(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(Im({el:D,componentModel:r,itemName:l}),D.__fullText=l,D.anid=`name`,r.get(`triggerEvent`)){var O=cN.makeAxisEventDataBase(r);O.targetType=`axisName`,O.name=l,Z(D).eventData=O}a.add(D),D.updateTransform(),t.nameEl=D;var k=c.nameLayout=ok({label:D,priority:D.z2,defaultAttr:{ignore:D.ignore},marginDefault:RE(u)?ZM[E]:QM[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 dN(e,t,n,r,i,a,o,s){xN(t)||bN(e,t,i,s,r,o);var c=t.labelLayoutList;CN(e,r,c,a),ON(r,e.rotation,c);var l=e.optionHideOverlap;pN(r,c,l),l&&hk(_e(c,function(e){return e&&!e.label.ignore})),nN(e,n,r,c)}function fN(e,t,n,r){var i=Jo(n-e),a,o,s=r[0]>r[1],c=t===`start`&&!s||t!==`start`&&s;return Yo(i-XM/2)?(o=c?`bottom`:`top`,a=`center`):Yo(i-XM*1.5)?(o=c?`top`:`bottom`,a=`center`):(o=`middle`,a=iXM/2?c?`left`:`right`:c?`right`:`left`),{rotation:i,textAlign:a,textVerticalAlign:o}}function pN(e,t,n){var r=e.axis,i=e.get([`axisLabel`,`customValues`]);if(IE(r))return;function a(e,a,o){var s=ok(t[a]),c=ok(t[o]),l=r.scale;if(!(!s||!c)){if(e==null){if(!n&&i)return;var u=$M(s.label).labelInfo.tick;if(KT(l)&&u.notNice||JT(l)&&u.offInterval){hN(s.label);return}}if(e===!1||s.suggestIgnore){hN(s.label);return}if(c.suggestIgnore){hN(c.label);return}var d=.1;if(!n){var f=[0,0,0,0];s=dk({marginForce:f},s),c=dk({marginForce:f},c)}gk(s,c,null,{touchThreshold:d})&&hN(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 mN(e,t,n){e.showMinorTicks||L(t,function(e){if(e&&e.label.ignore)for(var t=0;t=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}qj(LN,p);var m=0;f(function(e,t,n){for(var r=0,i=n.count();r0&&v0?-2:-1,n.serUids=r}var LN=qj({ctor:Gj},50);function RN(e){return function(t,n){var r=CO(t,{fromStat:{key:e}});if(cs(r.w2))return[-r.w2/2,r.w2/2]}}function zN(e){return e+`|&`}function BN(e,t){return e+`|&`+t}function VN(e){return FN(),{liPosMinGap:!JT(e.scale)}}var HN=`pictorialBar`;function UN(e,t,n,r){dD(e,{key:t,seriesType:n,coordSysType:r,getMetrics:VN})}function WN(e){return e.scale.rawExtentInfo.makeRenderInfo().startValue}var GN={left:0,right:0,top:0,bottom:0},KN=[`25%`,`25%`],qN=`cartesian2d`,JN=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.mergeDefaultAndTheme=function(t,n){var r=m_(t.outerBounds);e.prototype.mergeDefaultAndTheme.apply(this,arguments),r&&t.outerBounds&&p_(t.outerBounds,r)},t.prototype.mergeOption=function(t,n){e.prototype.mergeOption.apply(this,arguments),this.option.outerBounds&&t.outerBounds&&p_(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:GN,outerBoundsContain:`all`,outerBoundsClampWidth:KN[0],outerBoundsClampHeight:KN[1],backgroundColor:Q.color.transparent,borderWidth:1,borderColor:Q.color.neutral30},t}(__),YN=uc(),XN=`__ec_stack_`;function ZN(e){return e.get(`stack`)||XN+e.seriesIndex}function QN(e){if(JT(e.axis.scale)){for(var t=CO(e.axis),n=[],r=0;ro&&(o=a),o!==u&&(t.width=o,n-=o+l*o,r--)}}),u=(n-c)/(r+(r-1)*l),u=To(u,0);var d=0,f;L(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 L(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 nP(e){return{seriesType:e,overallReset:function(t){var n=BN(e,qN);iD(t,n,function(t){var r=$N(t,e);tD(t,n,function(e){var t=r.columnMap[ZN(e)];e.getData().setLayout({bandWidth:t.bandWidth,offset:t.offset,size:t.width})})})}}}function rP(e){return{seriesType:e,plan:Fb(),reset:function(e){if(AN(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=ST(t,c)&&!!t.getCalculationInfo(`stackedOnSeries`),d=i.isHorizontal(),f=i.toGlobalCoord(i.dataToCoord(WN(i))),p=iP(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&&Kj(r*3),c=p&&s&&Kj(r*3),l=p&&Kj(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,Eo(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}(Tb);Tb.registerClass(sP);var cP=function(e){_(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 ET(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=gc(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=Ah(sP.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:Q.color.primary,borderWidth:2}},realtimeSort:!1}),t}(sP),lP=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}(),uP=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`sausage`,n}return t.prototype.getDefaultShape=function(){return new lP},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){em(t,e,Z(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}(Rb),yP={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=gP(t.x,e.x),s=_P(t.x+t.width,i),c=gP(t.y,e.y),l=_P(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=_P(t.r,e.r),a=gP(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}},bP={cartesian2d:function(e,t,n,r,i,a,o,s,c){var l=new Iu({shape:P({},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?uP:pp,u=new l({shape:r,z2:1});if(u.name=`item`,u.calculateTextPosition=dP(kP(i),{isRoundCap:l===uP}),a){var d=u.shape,f=i?`r`:`endAngle`,p={};d[f]=i?r.r0:r.startAngle,p[f]=r[f],(s?Yp:Xp)(u,{shape:p},a)}return u}};function xP(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 SP(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?Yp:Xp)(n,{shape:c},t,i,null);var u=t?e.baseAxis.model:null;(o?Yp:Xp)(n,{shape:l},u,i)}function CP(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 OP(e){return e.startAngle!=null&&e.endAngle!=null&&e.startAngle===e.endAngle}function kP(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 AP(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;P(u,hP(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?zP(i,a.coordinateSystem):BP(i,a.coordinateSystem),p=th(r);eh(e,p,{labelFetcher:a,labelDataIndex:n,defaultText:jj(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`?!0:null,fP(e,h===`outside`?f:h,kP(o),r.get([`label`,`rotate`]))}fh(m,p,a.getRawValue(n),function(e){return Mj(t,e)});var g=r.getModel([`emphasis`]);ff(e,g.get(`focus`),g.get(`blurScope`),g.get(`disabled`)),gf(e,r),OP(i)&&(e.style.fill=`none`,e.style.stroke=`none`,L(e.states,function(e){e.style&&(e.style.fill=e.style.stroke=`none`)}))}function jP(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 MP=function(){function e(){}return e}(),NP=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`largeBar`,n}return t.prototype.getDefaultShape=function(){return new MP},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 IP(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 LP(e,t,n){if(cM(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 RP(e,t,n){return new(e.type===`polar`?pp:Iu)({shape:LP(t,n,e),silent:!0,z2:0})}function zP(e,t){return e.height===0?t.getOtherAxis(t.getBaseAxis()).inverse?`bottom`:`top`:e.height>0?`bottom`:`top`}function BP(e,t){return e.width===0?t.getOtherAxis(t.getBaseAxis()).inverse?`left`:`right`:e.width>=0?`right`:`left`}function VP(e){e.registerChartView(vP),e.registerSeriesModel(cP),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,nP(`bar`)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,rP(`bar`)),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,FM(`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)})}),oP(e)}function HP(e){return{seriesType:e,reset:function(e,t){var n=t.findComponents({mainType:`legend`});if(!(!n||!n.length)){var r=e.getData();r.filterSelf(function(e){for(var t=r.getName(e),i=0;i=0},e.prototype.indexOfName=function(e){return this._getDataWithEncodedVisual().indexOfName(e)},e.prototype.getItemVisual=function(e,t){return this._getDataWithEncodedVisual().getItemVisual(e,t)},e}(),GP=Bs(),KP=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new WP(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(t)},t.prototype.mergeOption=function(){e.prototype.mergeOption.apply(this,arguments)},t.prototype.getInitialData=function(){return UP(this,{coordDimensions:[`value`],encodeDefaulter:xe(j_,this)})},t.prototype.getDataParams=function(t){var n=this.getData(),r=GP(n),i=r.seats;if(!i){var a=[];n.each(n.mapDimension(`value`),function(e){a.push(e)}),i=r.seats=Go(a,n.hostModel.get(`percentPrecision`))}var o=e.prototype.getDataParams.call(this,t);return o.percent=i[t]||0,o.$vars.push(`percent`),o},t.prototype._defaultLabelLine=function(e){ys(e,`labelLine`,[`show`]);var t=e.labelLine,n=e.emphasis.labelLine;t.show=t.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},t.type=`series.pie`,t.defaultOption={z:2,legendHoverLink:!0,colorBy:`data`,center:[`50%`,`50%`],radius:[0,`50%`],clockwise:!0,startAngle:90,endAngle:`auto`,padAngle:0,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,coordinateSystemUsage:`box`,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:`truncate`,position:`outer`,alignTo:`none`,edgeDistance:`25%`,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:30,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:`solid`}},itemStyle:{borderWidth:1,borderJoin:`round`},showEmptyCircle:!0,emptyCircleStyle:{color:`lightgray`,opacity:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:`expansion`,animationDuration:1e3,animationTypeUpdate:`transition`,animationEasingUpdate:`cubicInOut`,animationDurationUpdate:500,animationEasing:`cubicInOut`},t}(Tb);Kg({fullType:KP.type,getCoord2:function(e){return e.getShallow(`center`)}});var qP=Math.PI/180;function JP(e,t,n,r,i,a,o,s,c,l){if(e.length<2)return;function u(e){for(var a=e.rB,o=a*a,s=0;sn?o:a,d=Math.abs(c.label.y-n);if(d>=l.maxY){var f=c.label.x-t-c.len2*i,p=r+c.len;l.rB=Math.abs(f)e.unconstrainedWidth?null:f:null;r.setStyle(`width`,p)}ZP(a,r)}}}function ZP(e,t){$P.rect=e,sk($P,t,QP)}var QP={minMarginForce:[null,0,null,0],marginDefault:[1,0,1,0]},$P={};function eF(e){return e.position===`center`}function tF(e){var t=e.getData(),n=[],r,i,a=!1,o=(e.get(`minShowLabelAngle`)||0)*qP,s=t.getLayout(`viewRect`),c=t.getLayout(`r`),l=s.width,u=s.x,d=s.y,f=s.height;function p(e){e.ignore=!0}function m(e){if(!e.ignore)return!0;for(var t in e.states)if(e.states[t].ignore===!1)return!0;return!1}t.each(function(e){var s=t.getItemGraphicEl(e),d=s.shape,h=s.getTextContent(),g=s.getTextGuideLine(),_=t.getItemModel(e),v=_.getModel(`label`),y=v.get(`position`)||_.get([`emphasis`,`label`,`position`]),b=v.get(`distanceToLabelLine`),x=v.get(`alignTo`),S=X(v.get(`edgeDistance`),l),C=v.get(`bleedMargin`);C??=Math.min(l,f)>200?10:2;var w=_.getModel(`labelLine`),T=w.get(`length`);T=X(T,l);var E=w.get(`length2`);if(E=X(E,l),Math.abs(d.endAngle-d.startAngle)0?`right`:`left`:O>0?`left`:`right`}var le=Math.PI,ue=0,M=v.get(`rotate`);if(Ce(M))ue=le/180*M;else if(y===`center`)ue=0;else if(M===`radial`||M===!0)ue=O<0?-D+le:-D;else if(M===`tangential`||M===`tangential-noflip`&&y!==`outside`&&y!==`outer`){var N=Math.atan2(O,k);N<0&&(N=le*2+N),k>0&&M!==`tangential-noflip`&&(N=le+N),ue=N-le}if(a=!!ue,h.x=A,h.y=j,h.rotation=ue,h.setStyle({verticalAlign:`middle`}),ne){h.setStyle({align:te});var de=h.states.select;de&&(de.x+=h.x,de.y+=h.y)}else{var P=new J(0,0,0,0);ZP(P,h),n.push({label:h,labelLine:g,position:y,len:T,len2:E,minTurnAngle:w.get(`minTurnAngle`),maxSurfaceAngle:w.get(`maxSurfaceAngle`),surfaceNormal:new q(O,k),linePoints:ee,textAlign:te,labelDistance:b,labelAlignTo:x,edgeDistance:S,bleedMargin:C,rect:P,unconstrainedWidth:P.width,labelStyleWidth:h.style.width})}s.setTextConfig({inside:ne})}}),!a&&e.get(`avoidLabelOverlap`)&&YP(n,r,i,c,l,f,u,d);for(var h=0;hr?(l=O+x*r/2,u=l):(l=O+C,u=i-C),n.setItemLayout(t,{angle:r,startAngle:l,endAngle:u,clockwise:_,cx:a,cy:o,r0:c,r:v?Fo(e,b,[c,s]):s}),O=i}),E0){for(var c=i.getItemLayout(0),l=1;isNaN(c&&c.startAngle)&&l=n.r0}},t.type=`pie`,t}(Rb);function lF(e){return{seriesType:e,reset:function(e,t){var n=e.getData();n.filterSelf(function(e){var t=n.mapDimension(`value`),r=n.get(t,e);return!(Ce(r)&&!isNaN(r)&&r<0)})}}}function uF(e){e.registerChartView(cF),e.registerSeriesModel(KP),Fx(`pie`,e.registerAction),e.registerLayout(iF),e.registerProcessor(HP(`pie`)),e.registerProcessor(lF(`pie`))}var dF=function(e){_(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,t){return ET(null,this,{useEncodeDefaulter:!0})},t.prototype.getProgressive=function(){return this.option.progressive??(this.option.large?5e3:this.get(`progressive`))},t.prototype.getProgressiveThreshold=function(){return this.option.progressiveThreshold??(this.option.large?1e4:this.get(`progressiveThreshold`))},t.prototype.brushSelector=function(e,t,n){return n.point(t.getItemLayout(e))},t.prototype.getZLevelKey=function(){return this.getData().count()>this.getProgressiveThreshold()?this.id:``},t.type=`series.scatter`,t.dependencies=[`grid`,`polar`,`geo`,`singleAxis`,`calendar`,`matrix`],t.defaultOption={coordinateSystem:`cartesian2d`,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:Q.color.primary}},universalTransition:{divideShape:`clone`}},t}(Tb),fF=4,pF=function(){function e(){}return e}(),mF=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.getDefaultShape=function(){return new pF},t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.beforeBrush=function(e){e&&!e.contentRetained&&this.reset()},t.prototype.buildPath=function(e,t){var n=t.points,r=t.size,i=this.symbolProxy,a=i.shape,o=e.getContext?e.getContext():e,s=o&&r[0]=0;s--){var c=s*2,l=r[c]-a/2,u=r[c+1]-o/2;if(e>=l&&t>=u&&e<=l+a&&t<=u+o)return s}return-1},t.prototype.contain=function(e,t){var n=this.transformCoordToLocal(e,t),r=this.getBoundingRect();return e=n[0],t=n[1],r.contain(e,t)?(this.hoverDataIdx=this.findDataIndex(e,t))>=0:(this.hoverDataIdx=-1,!1)},t.prototype.getBoundingRect=function(){var e=this._rect;if(!e){for(var t=this.shape,n=t.points,r=t.size,i=r[0],a=r[1],o=1/0,s=1/0,c=-1/0,l=-1/0,u=0;u=0&&(c.dataIndex=n+(e.startIndex||0))})},e.prototype.remove=function(){this._clear()},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),gF=function(e){_(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=e.getData();this._updateSymbolDraw(r,e).updateData(r,_F(e)),this._finished=!0},t.prototype.incrementalPrepareRender=function(e,t,n){var r=e.getData();this._updateSymbolDraw(r,e).incrementalPrepareUpdate(r),this._finished=!1},t.prototype.incrementalRender=function(e,t,n){this._symbolDraw.incrementalUpdate(e,t.getData(),hc(t),_F(t)),this._finished=e.end===t.getData().count()},t.prototype.updateTransform=function(e,t,n){var r=e.getData();if(this.group.dirty(),this._finished){var i=MM(``).reset(e,t,n);i.progress&&i.progress({start:0,end:r.count(),count:r.count()},r),this._symbolDraw.updateLayout(_F(e))}else return{update:!0}},t.prototype.eachRendered=function(e){this._symbolDraw&&this._symbolDraw.eachRendered(e)},t.prototype._updateSymbolDraw=function(e,t){var n=this._symbolDraw,r=t.pipelineContext.large;return(!n||r!==this._isLargeDraw)&&(n&&n.remove(),n=this._symbolDraw=r?new hF:new zj,this._isLargeDraw=r,this.group.removeAll()),this.group.add(n.group),n},t.prototype.remove=function(e,t){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},t.prototype.dispose=function(){},t.type=`scatter`,t}(Rb);function _F(e){return{clipShape:sM(e)}}var vF=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents(`grid`,Ws).models[0]},t.type=`cartesian2dAxis`,t}(__);me(vF,GE);var yF={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:Q.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:Q.color.axisLabel,textMargin:[0,3]},splitLine:{show:!0,showMinLine:!0,showMaxLine:!0,lineStyle:{color:Q.color.axisSplitLine,width:1,type:`solid`}},splitArea:{show:!1,areaStyle:{color:[Q.color.backgroundTint,Q.color.backgroundTransparent]}},breakArea:{show:!0,itemStyle:{color:Q.color.neutral00,borderColor:Q.color.border,borderWidth:1,borderType:[3,3],opacity:.6},zigzagAmplitude:4,zigzagMinSpan:4,zigzagMaxSpan:20,zigzagZ:100,expandOnClick:!0},breakLabelLayout:{moveOverlap:`auto`}},bF=N({boundaryGap:!0,deduplication:null,jitter:0,jitterOverlap:!0,jitterMargin:2,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:`auto`,show:`auto`},axisLabel:{interval:`auto`}},yF),xF=N({boundaryGap:[0,0],axisLine:{show:`auto`},axisTick:{show:`auto`},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:Q.color.axisMinorSplitLine,width:1}}},yF),SF={category:bF,value:xF,time:N({splitNumber:6,axisLabel:{rich:{primary:{fontWeight:`bold`}}},splitLine:{show:!1}},xF),log:F({logBase:10},xF)};function CF(e,t,n,r){L(EE,function(i,a){var o=N(N({},SF[a],!0),r,!0),s=function(e){_(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=f_(this),r=n?m_(e):{};N(e,t.getTheme().get(a+`Axis`)),N(e,this.getDefaultOption()),e.type=wF(e),n&&p_(e,r,n)},n.prototype.optionUpdated=function(){this.option.type===`category`&&(this.__ordinalMeta=jT.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=BM();return t?t.updateModelAxisBreak(this,e):{breaks:[]}},n.type=t+`Axis.`+a,n.defaultOption=o,n}(n);e.registerComponentModel(s)}),e.registerSubTypeDefaulter(t+`Axis`,wF)}function wF(e){return e.type||(e.data?`category`:`value`)}var TF=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 R(this._dimList,function(e){return this._axes[e]},this)},e.prototype.getAxesByScale=function(e){return e=e.toLowerCase(),_e(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}(),EF=[`x`,`y`];function DF(e){return(e.type===`interval`||e.type===`time`)&&!Jh(e)}var OF=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=qN,t.dimensions=EF,t}return t.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var e=this.getAxis(`x`).scale,t=this.getAxis(`y`).scale;if(!(!DF(e)||!DF(t))){var n=RT(e,null),r=RT(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=nn([],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 J(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 pt(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 pt(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 J(r,i,Math.max(t[0],t[1])-r+e,Math.max(n[0],n[1])-i+e)},t}(TF);function kF(e,t){var n=e.scale,r=e.model,i=OD(n,r,r.ecModel,e,null),a=qT(n),o=qT(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=Eo(l[0].value-l[1].value),g=Eo(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(ne(),k=Bo(O-E*m,D),j(),w<=C[0])return!0})):A(function(){k=Bo(ko(C[0]/E)*E,D),O=Bo(Oo(C[1]/E)*E,D);var e=Do((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=Oo(t/2);n=t%2==0?[o,o]:w+T=C[1])return!0}})}HE(n,b,S,[w,T],x,{interval:E,intervalCount:m,intervalPrecision:D,niceExtent:[k,O]})}var AF=[[3,1],[0,2]],jF=function(){function e(e,t,n){this.type=`grid`,this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=EF,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;L(this._axesList,function(e){SD(e,1);var t=e.scale;JT(t)&&t.setSortInfo(e.model.get(`categorySortInfo`))});function r(e){for(var t=ye(e),n=[],r=t.length-1;r>=0;r--){var i=e[+t[r]];i.__alignTo?n.push(i):PD(i)}L(n,function(e){IF(e,e.__alignTo)?PD(e):kF(e,e.__alignTo.scale)})}r(n.x),r(n.y);var i={};L(n.x,function(e){NF(n,`y`,e,i)}),L(n.y,function(e){NF(n,`x`,e,i)}),this.resize(this.model,t)},e.prototype.resize=function(e,t,n){var r=l_(e,t),i=this._rect=o_(e.getBoxLayoutParams(),r.refContainer),a=this._axesMap,o=this._coordsList,s=e.get(`containLabel`);if(RF(a,i),!n){var c=UF(i,o,a,s,t),l=void 0;if(s)BF?(BF(this._axesList,i),RF(a,i)):l=HF(i.clone(),`axisLabel`,null,i,a,c,r);else{var u=GF(e,i,r),d=u.outerBoundsRect,f=u.parsedOuterBoundsContain,p=u.outerBoundsClamp;d&&(l=HF(d,f,p,i,a,c,r))}WF(i,a,nO.determine,null,l,r),L(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]}U(e)&&(t=e.yAxisIndex,e=e.xAxisIndex);for(var r=0,i=this._coordsList;r=0;i--){var a=e[+t[i]];WT(a.scale)&&BE(a.model,a.type,!0)==null&&(a.model.get(`alignTicks`)&&a.model.get(`interval`)==null?r.push(a):n=a)}n||=r.pop(),n&&L(r,function(e){e.__alignTo=n})}function IF(e,t){return Jh(e.scale)||Jh(t.scale)||t.scale.getTicks().length<2}function LF(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 RF(e,t){L(e.x,function(e){return zF(e,t.x,t.width)}),L(e.y,function(e){return zF(e,t.y,t.height)})}function zF(e,t,n){var r=[0,n],i=+!!e.inverse;e.setExtent(r[i],r[1-i]),LF(e,t)}var BF;function VF(e){BF=e}function HF(e,t,n,r,i,a,o){WF(r,i,nO.estimate,t,!1,o);var s=[0,0,0,0];l(0),l(1),u(r,0,NaN),u(r,1,NaN);var c=ve(s,function(e){return e>0})==null;return Nm(r,s,!0,!0,n),RF(i,r),c;function l(e){L(i[am[e]],function(t){if(zE(t.model)){var n=a.ensureRecord(t.model),r=n.labelInfoList;if(r)for(var i=0;i0&&!Ae(t)&&t>1e-4&&(e/=t),e}}function UF(e,t,n,r,i){var a=new tN(KF);return L(n,function(n){return L(n,function(n){if(zE(n.model)){var o=!r;n.axisBuilder=MN(e,t,n.model,i,a,o)}})}),a}function WF(e,t,n,r,i,a){var o=n===nO.determine;L(t,function(t){return L(t,function(t){zE(t.model)&&(NN(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[am[1-t]]=e[om[t]]<=a.refContainer[om[t]]*.5?0:1-t==1?2:1}L(t,function(e,t){return L(e,function(e){zE(e.model)&&((r===`all`||o)&&e.axisBuilder.build({axisName:!0},{nameMarginLevel:s[t]}),o&&e.axisBuilder.build({axisLine:!0}))})})}function GF(e,t,n){var r,i=e.get(`outerBoundsMode`,!0);i===`same`?r=t.clone():(i==null||i===`auto`)&&(r=o_(e.get(`outerBounds`,!0)||GN,n.refContainer));var a=e.get(`outerBoundsContain`,!0),o=a==null||a===`auto`||I([`all`,`axisLabel`],a)<0?`all`:a,s=[Lo(W(e.get(`outerBoundsClampWidth`,!0),KN[0]),t.width),Lo(W(e.get(`outerBoundsClampHeight`,!0),KN[1]),t.height)];return{outerBoundsRect:r,parsedOuterBoundsContain:o,outerBoundsClamp:s}}var KF=function(e,t,n,r,i,a){var o=n.axis.dim===`x`?`y`:`x`;aN(e,t,n,r,i,a),RE(e.nameLocation)||L(t.recordMap[o],function(e){e&&e.labelInfoList&&e.dirVec&&sN(e.labelInfoList,e.dirVec,r,i)})};function qF(e,t){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return JF(n,e,t),n.seriesInvolved&&XF(n,e),n}function JF(e,t,n){var r=t.getComponent(`tooltip`),i=t.getComponent(`axisPointer`),a=i.get(`link`,!0)||[],o=[];L(n.getCoordinateSystems(),function(n){if(!n.axisPointerEnabled)return;var s=rI(n.model),c=e.coordSysAxesInfo[s]={};e.coordSysMap[s]=n;var l=n.model.getModel(`tooltip`,r);if(L(n.getAxes(),xe(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)&&L(f.baseAxes,xe(p,d?`cross`:!0,u)),d&&L(f.otherAxes,xe(p,`cross`,!1))}function p(r,s,u){var d=u.model.getModel(`axisPointer`,i),f=d.get(`show`);if(!(!f||f===`auto`&&!r&&!nI(d))){s??=d.get(`triggerTooltip`),d=r?YF(u,l,i,t,r,s):d;var p=d.get(`snap`),m=d.get(`triggerEmphasis`),h=rI(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:nI(d),seriesModels:[],linkGroup:null};c[h]=_,e.seriesInvolved=e.seriesInvolved||g;var v=ZF(a,u);if(v!=null){var y=o[v]||(o[v]={axesInfo:{}});y.axesInfo[h]=_,y.mapper=a[v].mapper,_.linkGroup=y}}}})}function YF(e,t,n,r,i,a){var o=t.getModel(`axisPointer`),s=[`type`,`snap`,`lineStyle`,`shadowStyle`,`label`,`animation`,`animationDurationUpdate`,`animationEasingUpdate`,`z`],c={};L(s,function(e){c[e]=M(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&&F(l,u.textStyle)}return e.model.getModel(`axisPointer`,new Th(c,n,r))}function XF(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||L(e.coordSysAxesInfo[rI(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 ZF(e,t){for(var n=t.model,r=t.dim,i=0;i=0||e===t}function $F(e){var t=eI(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=nI(n);a??(i.status=s?`show`:`hide`);var c=r.getExtent();(o==null||o>c[1])&&(o=c[1]),o0;return o&&s}var xI=Bs();function SI(e,t,n,r){if(e instanceof LM&&e.scale.type!==`ordinal`)return n;var i=e.model,a=i.get(`jitter`);if(!(a>0))return n;var o=i.get(`jitterOverlap`),s=i.get(`jitterMargin`)||0,c=JT(e.scale)?CO(e).w:null;return o?CI(n,a,c,r):wI(e,t,n,r,a,s)}function CI(e,t,n,r){if(n===null)return e+(Math.random()-.5)*t;var i=n-r*2,a=Math.min(Math.max(0,t),i);return e+(Math.random()-.5)*a}function wI(e,t,n,r,i,a){var o=xI(e);o.items||=[];var s=o.items,c=TI(s,t,n,r,i,a,1),l=TI(s,t,n,r,i,a,-1),u=Math.abs(c-n)i/2||d&&f>d/2-r?CI(n,i,d,r):(s.push({fixedCoord:t,floatCoord:u,r}),u)}function TI(e,t,n,r,i,a,o){for(var s=n,c=0;ci/2)return Number.MAX_VALUE;if(o===1&&m>s||o===-1&&m0&&!f.min?f.min=0:f.min!=null&&f.min<0&&!f.max&&(f.max=0);var p=s;f.color!=null&&(p=F({color:f.color},s));var m=N(M(f),{boundaryGap:e,splitNumber:t,clockwise:n,scale:r,axisLine:i,axisTick:a,axisLabel:o,name:f.text,showName:c,nameLocation:`end`,nameGap:u,nameTextStyle:p,triggerEvent:d},!1);if(H(l)){var h=m.name;m.name=l.replace(`{value}`,h??``)}else V(l)&&(m.name=l(m.name,m));var g=new Th(m,null,this.ecModel);return me(g,GE.prototype),g.mainType=`radar`,g.componentIndex=this.componentIndex,g.uid=Dh(`ec_radar`),g},this);this._indicatorModels=f},t.prototype.getIndicatorModels=function(){return this._indicatorModels},t.type=FI,t.defaultOption={z:0,center:[`50%`,`50%`],radius:`50%`,startAngle:90,clockwise:!1,axisName:{show:!0,color:Q.color.axisLabel},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:`polygon`,axisLine:N({lineStyle:{color:Q.color.neutral20}},NI.axisLine),axisLabel:LI(NI.axisLabel,!1),axisTick:LI(NI.axisTick,!1),splitLine:LI(NI.splitLine,!0),splitArea:LI(NI.splitArea,!0),indicator:[]},t}(__),zI=function(e){_(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){this.group.removeAll(),this._buildAxes(e,n),this._buildSplitLineAndArea(e)},t.prototype._buildAxes=function(e,t){var n=e.coordinateSystem;L(R(n.getIndicatorAxes(),function(e){var r=e.model.get(`showName`)?e.name:``;return new cN(e.model,t,{axisName:r,position:[n.cx,n.cy],rotation:e.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})}),function(e){e.build(),this.group.add(e.group)},this)},t.prototype._buildSplitLineAndArea=function(e){var t=e.coordinateSystem,n=t.getIndicatorAxes();if(!n.length)return;var r=e.get(`shape`),i=e.getModel(`splitLine`),a=e.getModel(`splitArea`),o=i.getModel(`lineStyle`),s=a.getModel(`areaStyle`),c=i.get(`show`),l=a.get(`show`),u=o.get(`color`),d=s.get(`color`),f=B(u)?u:[u],p=B(d)?d:[d],m=[],h=[];function g(e,t,n){var r=n%t.length;return e[r]=e[r]||[],r}if(r===`circle`)for(var _=n[0].getTicksCoords(),v=t.cx,y=t.cy,b=0;b<_.length;b++){if(c){var x=g(m,f,b);m[x].push(new Jf({shape:{cx:v,cy:y,r:_[b].coord}}))}if(l&&b<_.length-1){var x=g(h,p,b);h[x].push(new hp({shape:{cx:v,cy:y,r0:_[b].coord,r:_[b+1].coord}}))}}else for(var S,C=R(n,function(e,n){var r=e.getTicksCoords();return S=S==null?r.length-1:Math.min(r.length-1,S),R(r,function(e){return t.coordToPoint(e.coord,n)})}),w=[],b=0;b<=S;b++){for(var T=[],E=0;E3?1.4:i>1?1.2:1.1,c=r>0?s:1/s;this._checkTriggerMoveZoom(this,`zoom`,`zoomOnMouseWheel`,e,{scale:c,originX:a,originY:o,isAvailableBehavior:null})}if(n){var l=Math.abs(r),u=(r>0?1:-1)*(l>3?.4:l>1?.15:.05);this._checkTriggerMoveZoom(this,`scrollMove`,`moveOnMouseWheel`,e,{scrollDelta:u,originX:a,originY:o,isAvailableBehavior:null})}}}},t.prototype._pinchHandler=function(e){if(!(ZI(this._zr,`globalPan`)||tL(e))){var t=e.pinchScale>1?1.1:1/1.1;this._checkTriggerMoveZoom(this,`zoom`,null,e,{scale:t,originX:e.pinchX,originY:e.pinchY,isAvailableBehavior:null})}},t.prototype._checkTriggerMoveZoom=function(e,t,n,r,i){e._checkPointer(r,i.originX,i.originY)&&(Ut(r.event),r.__ecRoamConsumed=!0,cL(e,t,n,r,i))},t}(vt);function tL(e){return e.__ecRoamConsumed}var nL=Bs();function rL(e){var t=nL(e);return t.roam=t.roam||{},t.uniform=t.uniform||{},t}function iL(e,t,n,r){for(var i=rL(e).roam,a=i[t]=i[t]||[],o=0;o=4&&(l={x:parseFloat(d[0]||0),y:parseFloat(d[1]||0),width:parseFloat(d[2]),height:parseFloat(d[3])})}if(l&&o!=null&&s!=null&&(u=FL(l,{x:0,y:0,width:o,height:s}),!t.ignoreViewBox)){var f=r;r=new Y,r.add(f),f.scaleX=f.scaleY=u.scale,f.x=u.x,f.y=u.y}return!t.ignoreRootClip&&o!=null&&s!=null&&r.setClipPath(new Iu({shape:{x:0,y:0,width:o,height:s}})),{root:r,width:o,height:s,viewBoxRect:l,viewBoxTransform:u,named:i}},e.prototype._parseNode=function(e,t,n,r,i,a){var o=e.nodeName.toLowerCase(),s,c=r;if(o===`defs`&&(i=!0),o===`text`&&(a=!0),o===`defs`||o===`switch`)s=t;else{if(!i){var l=dL[o];if(l&&K(dL,o)){s=l.call(this,e,t);var u=e.getAttribute(`name`);if(u){var d={name:u,namedFrom:null,svgNodeTagLower:o,el:s};n.push(d),o===`g`&&(c=d)}else r&&n.push({name:r.name,namedFrom:r,svgNodeTagLower:o,el:s});t.add(s)}}var f=_L[o];if(f&&K(_L,o)){var p=f.call(this,e),m=e.getAttribute(`id`);m&&(this._defs[m]=p)}}if(s&&s.isGroup)for(var h=e.firstChild;h;)h.nodeType===1?this._parseNode(h,s,n,c,i,a):h.nodeType===3&&a&&this._parseText(h,s),h=h.nextSibling},e.prototype._parseText=function(e,t){var n=new wu({style:{text:e.textContent},silent:!0,x:this._textX||0,y:this._textY||0});bL(t,n),SL(e,n,this._defsUsePending,!1,!1),CL(n,t);var r=n.style,i=r.fontSize;i&&i<9&&(r.fontSize=9,n.scaleX*=i/9,n.scaleY*=i/9),r.font=(r.fontSize||r.fontFamily)&&[r.fontStyle,r.fontWeight,(r.fontSize||12)+`px`,r.fontFamily||`sans-serif`].join(` `);var a=n.getBoundingRect();return this._textX+=a.width,t.add(n),n},e.internalField=(function(){dL={g:function(e,t){var n=new Y;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n},rect:function(e,t){var n=new Iu;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.setShape({x:parseFloat(e.getAttribute(`x`)||`0`),y:parseFloat(e.getAttribute(`y`)||`0`),width:parseFloat(e.getAttribute(`width`)||`0`),height:parseFloat(e.getAttribute(`height`)||`0`)}),n.silent=!0,n},circle:function(e,t){var n=new Jf;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(e.getAttribute(`cx`)||`0`),cy:parseFloat(e.getAttribute(`cy`)||`0`),r:parseFloat(e.getAttribute(`r`)||`0`)}),n.silent=!0,n},line:function(e,t){var n=new wp;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.setShape({x1:parseFloat(e.getAttribute(`x1`)||`0`),y1:parseFloat(e.getAttribute(`y1`)||`0`),x2:parseFloat(e.getAttribute(`x2`)||`0`),y2:parseFloat(e.getAttribute(`y2`)||`0`)}),n.silent=!0,n},ellipse:function(e,t){var n=new Xf;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.setShape({cx:parseFloat(e.getAttribute(`cx`)||`0`),cy:parseFloat(e.getAttribute(`cy`)||`0`),rx:parseFloat(e.getAttribute(`rx`)||`0`),ry:parseFloat(e.getAttribute(`ry`)||`0`)}),n.silent=!0,n},polygon:function(e,t){var n=e.getAttribute(`points`),r;n&&(r=xL(n));var i=new yp({shape:{points:r||[]},silent:!0});return bL(t,i),SL(e,i,this._defsUsePending,!1,!1),i},polyline:function(e,t){var n=e.getAttribute(`points`),r;n&&(r=xL(n));var i=new xp({shape:{points:r||[]},silent:!0});return bL(t,i),SL(e,i,this._defsUsePending,!1,!1),i},image:function(e,t){var n=new Ou;return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.setStyle({image:e.getAttribute(`xlink:href`)||e.getAttribute(`href`),x:+e.getAttribute(`x`),y:+e.getAttribute(`y`),width:+e.getAttribute(`width`),height:+e.getAttribute(`height`)}),n.silent=!0,n},text:function(e,t){var n=e.getAttribute(`x`)||`0`,r=e.getAttribute(`y`)||`0`,i=e.getAttribute(`dx`)||`0`,a=e.getAttribute(`dy`)||`0`;this._textX=parseFloat(n)+parseFloat(i),this._textY=parseFloat(r)+parseFloat(a);var o=new Y;return bL(t,o),SL(e,o,this._defsUsePending,!1,!0),o},tspan:function(e,t){var n=e.getAttribute(`x`),r=e.getAttribute(`y`);n!=null&&(this._textX=parseFloat(n)),r!=null&&(this._textY=parseFloat(r));var i=e.getAttribute(`dx`)||`0`,a=e.getAttribute(`dy`)||`0`,o=new Y;return bL(t,o),SL(e,o,this._defsUsePending,!1,!0),this._textX+=parseFloat(i),this._textY+=parseFloat(a),o},path:function(e,t){var n=Uf(e.getAttribute(`d`)||``);return bL(t,n),SL(e,n,this._defsUsePending,!1,!1),n.silent=!0,n}}})(),e}(),_L={lineargradient:function(e){var t=new Np(parseInt(e.getAttribute(`x1`)||`0`,10),parseInt(e.getAttribute(`y1`)||`0`,10),parseInt(e.getAttribute(`x2`)||`10`,10),parseInt(e.getAttribute(`y2`)||`0`,10));return vL(e,t),yL(e,t),t},radialgradient:function(e){var t=new Pp(parseInt(e.getAttribute(`cx`)||`0`,10),parseInt(e.getAttribute(`cy`)||`0`,10),parseInt(e.getAttribute(`r`)||`0`,10));return vL(e,t),yL(e,t),t}};function vL(e,t){e.getAttribute(`gradientUnits`)===`userSpaceOnUse`&&(t.global=!0)}function yL(e,t){for(var n=e.firstChild;n;){if(n.nodeType===1&&n.nodeName.toLocaleLowerCase()===`stop`){var r=n.getAttribute(`offset`),i=void 0;i=r&&r.indexOf(`%`)>0?parseInt(r,10)/100:r?parseFloat(r):0;var a={};NL(n,a,a);var o=a.stopColor||n.getAttribute(`stop-color`)||`#000000`,s=a.stopOpacity||n.getAttribute(`stop-opacity`);if(s){var c=Kr(o);c&&c[3]&&(c[3]*=Rr(s),o=ei(c,`rgba`))}t.colorStops.push({offset:i,color:o})}n=n.nextSibling}}function bL(e,t){e&&e.__inheritedStyle&&(t.__inheritedStyle||={},F(t.__inheritedStyle,e.__inheritedStyle))}function xL(e){for(var t=OL(e),n=[],r=0;r0;a-=2){var o=r[a],s=r[a-1],c=OL(o);switch(i||=Yt(),s){case`translate`:$t(i,i,[parseFloat(c[0]),parseFloat(c[1]||`0`)]);break;case`scale`:tn(i,i,[parseFloat(c[0]),parseFloat(c[1]||c[0])]);break;case`rotate`:en(i,i,-parseFloat(c[0])*AL,[parseFloat(c[1]||`0`),parseFloat(c[2]||`0`)]);break;case`skewX`:var l=Math.tan(parseFloat(c[0])*AL);Qt(i,[1,0,l,1,0,0],i);break;case`skewY`:var u=Math.tan(parseFloat(c[0])*AL);Qt(i,[1,u,0,1,0,0],i);break;case`matrix`:i[0]=parseFloat(c[0]),i[1]=parseFloat(c[1]),i[2]=parseFloat(c[2]),i[3]=parseFloat(c[3]),i[4]=parseFloat(c[4]),i[5]=parseFloat(c[5]);break}}t.setLocalTransform(i)}}var ML=/([^\s:;]+)\s*:\s*([^:;]+)/g;function NL(e,t,n){var r=e.getAttribute(`style`);if(r){ML.lastIndex=0;for(var i;(i=ML.exec(r))!=null;){var a=i[1],o=K(fL,a)?fL[a]:null;o&&(t[o]=i[2]);var s=K(mL,a)?mL[a]:null;s&&(n[s]=i[2])}}}function PL(e,t,n){for(var r=0;r1e-6;JR[0]=o?(i[0]-r.x)/a:i[0],JR[1]=o?(i[1]-r.y)/a:i[1],pt(JR,JR,e.mtRawInv);var s=WR(e,JR);YR(t,s,a),L(n,function(e){e!==t&&YR(e,s.slice(),a)})}var JR=[];function YR(e,t,n){var r=e.option;r.center=t,r.zoom=n}function XR(e,t){if(t){var n=t.min||0,r=t.max||1/0;e=Math.max(Math.min(r,e),n)}return e}function ZR(e,t){var n=t.getShallow(`nodeScaleRatio`,!0)||1,r=rR(e);return((r.zoom-1)*n+1)/(r.trans[2].scaleX||1)}function QR(e,t,n,r,i,a,o,s){if(!zR(e)){n.disable();return}n.enable(W(e.get(`roam`),o),{api:t,zInfo:{component:e},triggerInfo:{roamTrigger:e.get(`roamTrigger`),isInSelf:r,isInClip:function(e,t,n){return!i||i.contain(t,n)}}});function c(n){var r=e.mainType,i=qm(F({type:nz(r,e.subType,dd)},n));s&&(i.componentType=r),i[r+`Id`]=e.id,t.dispatchAction(i)}n.off(`pan`).off(`zoom`).on(`pan`,function(e){a&&a(`pan`),c({dx:e.dx,dy:e.dy})}).on(`zoom`,function(e){a&&a(`zoom`),c({zoom:e.scale,originX:e.originX,originY:e.originY})})}function $R(e){return function(t,n,r){return ez.copy(e.getBoundingRect()),ez.applyTransform(e.getComputedTransform()),ez.contain(n,r)}}var ez=new J(0,0,0,0);function tz(e,t,n){var r=nz(t,n,dd);e.registerAction({type:r,event:r,update:`none`},function(e,r,i){r.eachComponent(qs(e,t,n),function(t){RR(e,t),BR(e,t,r,i)})})}function nz(e,t,n){return(e===`series`?t===`map`?`geo`:t:e)+n}function rz(e){return e.zoom!=null}function iz(e,t,n,r,i,a,o){var s=new aR(null,KR(e.ecModel,t));return _R(s,n,r,i,a),o?vR(s,o.x,o.y,o.width,o.height):vR(s,n,r,i,a),gR(s,e),s}var az=[`rect`,`circle`,`line`,`ellipse`,`polygon`,`polyline`,`path`],oz=G(az),sz=G(az.concat([`g`])),cz=G(az.concat([`g`])),lz=Bs();function uz(e){var t=e.getItemStyle(),n=e.get(`areaColor`);return n!=null&&(t.fill=n),t}function dz(e){var t=e.style;t&&(t.stroke=t.stroke||t.fill,t.fill=null)}var fz=function(){function e(e){var t=this.group=new Y,n=this._transformGroup=new Y;t.add(n),this.uid=Dh(`ec_map_draw`),this._controller=new eL(e.getZr()),n.add(this._regionsGroup=new Y),n.add(this._svgGroup=new Y)}return e.prototype.draw=function(e,t,n,r,i){var a=this,o=e.getData&&e.getData();yz(e)&&t.eachComponent({mainType:`series`,subType:`map`},function(t){!o&&t.getHostGeoModel()===e&&(o=t.getData())});var s=e.coordinateSystem,c=s.view,l=this._regionsGroup,u=this._transformGroup,d=!l.childAt(0)||i,f;s.shouldClip()?(f=uR(null,c),this.group.setClipPath(new Iu({shape:f.clone()}))):this.group.removeClipPath(),PR(u,1,c,d?null:e);var p=o&&o.getVisual(`visualMeta`)&&o.getVisual(`visualMeta`).length>0;s.resourceType===`geoJSON`?this._buildGeoJSON(c,n,s,e,o,p):s.resourceType===`geoSVG`&&this._buildSVG(c,n,s,e,o,p),QR(e,n,this._controller,function(t,n,r){return e.coordinateSystem.containPoint([n,r])},f,function(){a._mouseDownFlag=!1},!1,!0),this._updateMapSelectHandler(e,l,n,r)},e.prototype.__updateOnOwnRoam=function(e){PR(this._transformGroup,1,e.coordinateSystem.view,null)},e.prototype._buildGeoJSON=function(e,t,n,r,i,a){var o=this._regionsGroupByName=G(),s=G(),c=this._regionsGroup,l=n.projection,u=l&&l.stream,d=ka(dR(null,e,0));function f(e,t){return t&&(e=t(e)),e&&pt([],e,d)}function p(e){for(var t=[],n=!u&&l&&l.project,r=0;r=0)&&(u=e);var d=o?{normal:{align:`center`,verticalAlign:`middle`}}:null;eh(n,th(i),{labelFetcher:u,labelDataIndex:l,defaultText:r},d);var f=n.getTextContent();if(f&&(lz(f).ignore=f.ignore,n.textConfig&&o)){var p=n.getBoundingRect().clone();n.textConfig.layoutRect=p,n.textConfig.position=[(o[0]-p.x)/p.width*100+`%`,(o[1]-p.y)/p.height*100+`%`]}n.disableLabelAnimation=!0}else n.removeTextContent(),n.removeTextConfig(),n.disableLabelAnimation=null}function hz(e,t,n,r,i,a){t?t.setItemGraphicEl(a,n):Z(n).eventData={componentType:`geo`,componentIndex:e.componentIndex,geoIndex:e.componentIndex,name:r,region:i&&i.option||{}}}function gz(e,t,n,r,i){t||Im({el:n,componentModel:e,itemName:r,itemTooltipOption:i.get(`tooltip`)})}function _z(e,t,n,r){t.highDownSilentOnTouch=!!e.get(`selectedMode`);var i=r.getModel(`emphasis`),a=i.get(`focus`);return ff(t,a,i.get(`blurScope`),i.get(`disabled`)),yz(e)&&yf(t,e,n),a}function vz(e,t,n){var r=[],i;function a(){i=[]}function o(){i.length&&(r.push(i),i=[])}var s=t({polygonStart:a,polygonEnd:o,lineStart:a,lineEnd:o,point:function(e,t){isFinite(e)&&isFinite(t)&&i.push([e,t])},sphere:function(){}});return!n&&s.polygonStart(),L(e,function(e){s.lineStart();for(var t=0;t-1&&(n.style.stroke=n.style.fill,n.style.fill=Q.color.neutral00,n.style.lineWidth=2),n},t.prototype.__ownRoamView=function(){return Sz(this)?this.coordinateSystem.view:null},t.type=`series.map`,t.dependencies=[`geo`],t.layoutMode=`box`,t.defaultOption={z:2,coordinateSystem:`geo`,map:``,left:`center`,top:`center`,aspectScale:null,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:Q.color.tertiary},itemStyle:{borderWidth:.5,borderColor:Q.color.border,areaColor:Q.color.background},emphasis:{label:{show:!0,color:Q.color.primary},itemStyle:{areaColor:Q.color.highlight}},select:{label:{show:!0,color:Q.color.primary},itemStyle:{color:Q.color.highlight}},nameProperty:`name`},t}(Tb);function xz(e){return e.indexOf(`i`)===0}function Sz(e){return Cz(e.seriesGroup)===e&&!e.getHostGeoModel()}function Cz(e){return e.f[0]}function wz(e,t){var n={};return e.eachRawSeriesByType(`map`,function(r){var i=r.getHostGeoModel(),a=i?`o`+i.id:`i`+r.getMapType(),o=n[a]=n[a]||{f:[],r:[]};!e.isSeriesFiltered(r)&&!t&&o.f.push(r),o.r.push(r)}),n}var Tz=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=`map`,t}return t.prototype.render=function(e,t,n,r){if(!(r&&r.type===`mapToggleSelect`&&r.from===this.uid)){var i=this.group;if(i.removeAll(),!e.getHostGeoModel()){var a=this._mapDraw;a&&r&&r.type===`geoRoam`&&a.resetForLabelLayout(),r&&r.type===`geoRoam`&&r.componentType===`series`&&r.seriesId===e.id?a&&i.add(a.group):Sz(e)?(a||=this._mapDraw=new fz(n),i.add(a.group),a.draw(e,t,n,this,r)):this._clearMapDraw(),e.get(`showLegendSymbol`)&&t.getComponent(`legend`)&&this._renderSymbols(e)}}},t.prototype.__updateOnOwnRoam=function(e,t,n){var r=this._mapDraw;Sz(t)&&r&&r.__updateOnOwnRoam(t)},t.prototype.remove=function(){this._clearMapDraw(),this.group.removeAll()},t.prototype.dispose=function(){this._clearMapDraw()},t.prototype._clearMapDraw=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},t.prototype._renderSymbols=function(e){var t=e.originalData,n=this.group;t.each(t.mapDimension(`value`),function(r,i){if(!isNaN(r)){var a=t.getItemLayout(i);if(!(!a||!a.point)){var o=a.point,s=a.offset,c=new Jf({style:{fill:e.getData().getVisual(`style`).fill},shape:{cx:o[0]+s*9,cy:o[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var l=Cz(e.seriesGroup).getData(),u=t.getName(i),d=l.indexOfName(u),f=t.getItemModel(i),p=f.getModel(`label`),m=l.getItemGraphicEl(d);eh(c,th(f),{labelFetcher:{getFormattedLabel:function(t,n){return e.getFormattedLabel(d,n)}},defaultText:u}),c.disableLabelAnimation=!0,p.get(`position`)||c.setTextConfig({position:`bottom`}),m.onHoverStateChange=function(e){Ld(c,e)}}n.add(c)}}})},t.type=`map`,t}(Rb),Ez={geoJSON:{aspectScale:.75,invertLongitute:!0},geoSVG:{aspectScale:1,invertLongitute:!1}},Dz=[`lng`,`lat`],Oz=function(e){_(t,e);function t(t,n,r){var i=e.call(this)||this;i.dimensions=Dz,i.type=`geo`,i._nameCoordMap=G(),i.name=t;var a=r.projection,o=nR.load(n,r.nameMap,r.nameProperty),s=nR.getGeoResource(n);i.resourceType=s?s.type:null;var c=i.regions=o.regions,l=Ez[s.type];i._clip=r.clip,i.view=new aR(a?!1:l.invertLongitute,KR(r.ecModel,r.api),i),i.map=n,i._regionsMap=o.regionsMap,i.regions=o.regions,i.projection=a;var u;if(a)for(var d=0;d1?(b.width=y,b.height=y/g):(b.height=y,b.width=y*g),b.y=v[1]-b.height/2,b.x=v[0]-b.width/2;else{var x=e.getBoxLayoutParams();x.aspect=g,b=o_(x,h),b=s_(e,b,g)}vR(n,b.x,b.y,b.width,b.height),gR(n,e)}function jz(e,t){L(t.get(`geoCoord`),function(t,n){e.addGeoCoord(n,t)})}var Mz=new(function(){function e(){this.dimensions=Dz}return e.prototype.create=function(e,t){var n=[];function r(e){return{nameProperty:e.get(`nameProperty`),aspectScale:e.get(`aspectScale`),projection:e.get(`projection`),clip:e.getShallow(`clip`,!0)}}return e.eachComponent(`geo`,function(i,a){var o=i.get(`map`),s=new Oz(o+a,o,P({nameMap:i.get(`nameMap`),api:t,ecModel:e},r(i)));n.push(s),i.coordinateSystem=s,s.model=i,s.resize=Az,s.resize(i,t)}),e.eachSeries(function(e){Xg({targetModel:e,coordSysType:`geo`,coordSysProvider:function(){var t=e.subType===`map`?e.getHostGeoModel():e.getReferringComponents(`geo`,Ws).models[0];return t&&t.coordinateSystem},allowNotFound:!0})}),L(wz(e,!0),function(i,a){if(xz(a)){var o=i.r[0],s=[];L(i.r,function(e){s.push(e.get(`nameMap`)),e.seriesGroup=null});var c=a.slice(1),l=new Oz(c,c,P({nameMap:de(s),api:t,ecModel:e},r(o))),u;L(i.r,function(e){u=W(u,e.get(`scaleLimit`))}),n.push(l),l.resize=Az,l.resize(o,t),L(i.r,function(e){e.coordinateSystem=l,jz(l,e)})}}),n},e.prototype.getFilledRegions=function(e,t,n,r){for(var i=(e||[]).slice(),a=G(),o=0;o=0;a--){var o=i[a];o.hierNode={defaultAncestor:null,ancestor:o,prelim:0,modifier:0,change:0,shift:0,i:a,thread:null},n.push(o)}}function Wz(e,t){var n=e.isExpand?e.children:[],r=e.parentNode.children,i=e.hierNode.i?r[e.hierNode.i-1]:null;if(n.length){Jz(e);var a=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;i?(e.hierNode.prelim=i.hierNode.prelim+t(e,i),e.hierNode.modifier=e.hierNode.prelim-a):e.hierNode.prelim=a}else i&&(e.hierNode.prelim=i.hierNode.prelim+t(e,i));e.parentNode.hierNode.defaultAncestor=Yz(e,i,e.parentNode.hierNode.defaultAncestor||r[0],t)}function Gz(e){var t=e.hierNode.prelim+e.parentNode.hierNode.modifier;e.setLayout({x:t},!0),e.hierNode.modifier+=e.parentNode.hierNode.modifier}function Kz(e){return arguments.length?e:eB}function qz(e,t){return e-=Math.PI/2,{x:t*Math.cos(e),y:t*Math.sin(e)}}function Jz(e){for(var t=e.children,n=t.length,r=0,i=0;--n>=0;){var a=t[n];a.hierNode.prelim+=r,a.hierNode.modifier+=r,i+=a.hierNode.change,r+=a.hierNode.shift+i}}function Yz(e,t,n,r){if(t){for(var i=e,a=e,o=a.parentNode.children[0],s=t,c=i.hierNode.modifier,l=a.hierNode.modifier,u=o.hierNode.modifier,d=s.hierNode.modifier;s=Xz(s),a=Zz(a),s&&a;){i=Xz(i),o=Zz(o),i.hierNode.ancestor=e;var f=s.hierNode.prelim+d-a.hierNode.prelim-l+r(s,a);f>0&&($z(Qz(s,e,n),e,f),l+=f,c+=f),d+=s.hierNode.modifier,l+=a.hierNode.modifier,c+=i.hierNode.modifier,u+=o.hierNode.modifier}s&&!Xz(i)&&(i.hierNode.thread=s,i.hierNode.modifier+=d-c),a&&!Zz(o)&&(o.hierNode.thread=a,o.hierNode.modifier+=l-u,n=e)}return n}function Xz(e){var t=e.children;return t.length&&e.isExpand?t[t.length-1]:e.hierNode.thread}function Zz(e){var t=e.children;return t.length&&e.isExpand?t[0]:e.hierNode.thread}function Qz(e,t,n){return e.hierNode.ancestor.parentNode===t.parentNode?e.hierNode.ancestor:n}function $z(e,t,n){var r=n/(t.hierNode.i-e.hierNode.i);t.hierNode.change-=r,t.hierNode.shift+=n,t.hierNode.modifier+=n,t.hierNode.prelim+=n,e.hierNode.change+=r}function eB(e,t){return e.parentNode===t.parentNode?1:2}var tB=Bs();function nB(e){var t=e.mainData,n=e.datas;n||(n={main:t},e.datasAttr={main:`data`}),e.datas=e.mainData=null,lB(t,n,e),L(n,function(n){L(t.TRANSFERABLE_METHODS,function(t){n.wrapMethod(t,xe(rB,e))})}),t.wrapMethod(`cloneShallow`,xe(aB,e)),L(t.CHANGABLE_METHODS,function(n){t.wrapMethod(n,xe(iB,e))}),Fe(n[t.dataType]===t)}function rB(e,t){if(cB(this)){var n=P({},tB(this).datas);n[this.dataType]=t,lB(t,n,e)}else uB(t,this.dataType,tB(this).mainData,e);return t}function iB(e,t){return e.struct&&e.struct.update(),t}function aB(e,t){return L(tB(t).datas,function(n,r){n!==t&&uB(n.cloneShallow(),r,t,e)}),t}function oB(e){var t=tB(this).mainData;return e==null||t==null?t:tB(t).datas[e]}function sB(){var e=tB(this).mainData;return e==null?[{data:e}]:R(ye(tB(e).datas),function(t){return{type:t,data:tB(e).datas[t]}})}function cB(e){return tB(e).mainData===e}function lB(e,t,n){tB(e).datas={},L(t,function(t,r){uB(t,r,e,n)})}function uB(e,t,n,r){tB(n).datas[t]=e,tB(e).mainData=n,e.dataType=t,r.struct&&(e[r.structAttr]=r.struct,r.struct[r.datasAttr[t]]=e),e.getLinkedData=oB,e.getLinkedDataAll=sB}var dB=function(){function e(e,t){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=e||``,this.hostTree=t}return e.prototype.isRemoved=function(){return this.dataIndex<0},e.prototype.eachNode=function(e,t,n){V(e)&&(n=t,t=e,e=null),e||={},H(e)&&(e={order:e});var r=e.order||`preorder`,i=this[e.attr||`children`],a;r===`preorder`&&(a=t.call(n,this));for(var o=0;!a&&ot&&(t=r.height)}this.height=t+1},e.prototype.getNodeById=function(e){if(this.getId()===e)return this;for(var t=0,n=this.children,r=n.length;t=0&&this.hostTree.data.setItemLayout(this.dataIndex,e,t)},e.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},e.prototype.getModel=function(e){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(e)},e.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},e.prototype.setVisual=function(e,t){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,e,t)},e.prototype.getVisual=function(e){return this.hostTree.data.getItemVisual(this.dataIndex,e)},e.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},e.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},e.prototype.getChildIndex=function(){if(this.parentNode){for(var e=this.parentNode.children,t=0;t=0){var r=n.getData().tree.root,i=e.targetNode;if(H(i)&&(i=r.getNodeById(i)),i&&r.contains(i))return{node:i};var a=e.targetNodeId;if(a!=null&&(i=r.getNodeById(a)))return{node:i}}}function hB(e){for(var t=[];e;)e=e.parentNode,e&&t.push(e);return t.reverse()}function gB(e,t){return I(hB(e),t)>=0}function _B(e,t){for(var n=[];e;){var r=e.dataIndex;n.push({name:e.name,dataIndex:r,value:t.getRawValue(r)}),e=e.parentNode}return n.reverse(),n}var vB=`tree`,yB=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.hasSymbolVisual=!0,n.ignoreStyleOnData=!0,n}return t.prototype.getInitialData=function(e){var t={name:e.name,children:e.data},n=new Th(e.leaves||{},this,this.ecModel),r=fB.createTree(t,this,i);function i(e){e.wrapMethod(`getItemModel`,function(e,t){var i=r.getNodeByDataIndex(t);return i&&i.children.length&&i.isExpand||(e.parentModel=n),e})}var a=0;r.eachNode(`preorder`,function(e){e.depth>a&&(a=e.depth)});var o=e.expandAndCollapse&&e.initialTreeDepth>=0?e.initialTreeDepth:a;return r.root.eachNode(`preorder`,function(e){var t=e.hostTree.data.getRawDataItem(e.dataIndex);e.isExpand=t&&t.collapsed!=null?!t.collapsed:e.depth<=o}),r.data},t.prototype.getOrient=function(){var e=this.get(`orient`);return e===`horizontal`?e=`LR`:e===`vertical`&&(e=`TB`),e},t.prototype.formatTooltip=function(e,t,n){for(var r=this.getData().tree,i=r.root.children[0],a=r.getNodeByDataIndex(e),o=a.getValue(),s=a.name;a&&a!==i;)s=a.parentNode.name+`.`+s,a=a.parentNode;return ib(`nameValue`,{name:s,value:o,noValue:isNaN(o)||o==null})},t.prototype.getDataParams=function(t){var n=e.prototype.getDataParams.apply(this,arguments),r=this.getData().tree.getNodeByDataIndex(t);return n.treeAncestors=_B(r,this),n.collapsed=!r.isExpand,n},t.prototype.__ownRoamView=function(){return this.coordinateSystem},t.type=`series.`+vB,t.layoutMode=`box`,t.defaultOption={z:2,coordinateSystemUsage:`box`,left:`12%`,top:`12%`,right:`12%`,bottom:`12%`,layout:`orthogonal`,edgeShape:`curve`,edgeForkPosition:`50%`,roam:!1,roamTrigger:`global`,nodeScaleRatio:.4,center:null,zoom:1,orient:`LR`,symbol:`emptyCircle`,symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:Q.color.borderTint,width:1.5,curveness:.5},itemStyle:{color:`lightsteelblue`,borderWidth:1.5},label:{show:!0},animationEasing:`linear`,animationDuration:700,animationDurationUpdate:500},t}(Tb),bB=function(){function e(){this.parentPoint=[],this.childPoints=[]}return e}(),xB=function(e){_(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultStyle=function(){return{stroke:Q.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new bB},t.prototype.buildPath=function(e,t){var n=t.childPoints,r=n.length,i=t.parentPoint,a=n[0],o=n[r-1];if(r===1){e.moveTo(i[0],i[1]),e.lineTo(a[0],a[1]);return}var s=t.orient,c=s===`TB`||s===`BT`?0:1,l=1-c,u=X(t.forkPosition,1),d=[];d[c]=i[c],d[l]=i[l]+(o[l]-i[l])*u,e.moveTo(i[0],i[1]),e.lineTo(d[0],d[1]),e.moveTo(a[0],a[1]),d[c]=a[c],e.lineTo(d[0],d[1]),d[c]=o[c],e.lineTo(d[0],d[1]),e.lineTo(o[0],o[1]);for(var f=1;fv.x,x||(b-=Math.PI));var C=x?`left`:`right`,w=s.getModel(`label`),T=w.get(`rotate`),E=Math.PI/180*T,D=g.getTextContent();D&&(g.setTextConfig({position:w.get(`position`)||C,rotation:T==null?-b:E,origin:`center`}),D.setStyle(`verticalAlign`,`middle`))}var O=s.get([`emphasis`,`focus`]),k=O===`relative`?We(o.getAncestorsIndices(),o.getDescendantIndices()):O===`ancestor`?o.getAncestorsIndices():O===`descendant`?o.getDescendantIndices():null;k&&(Z(n).focus=k),TB(i,o,u,n,m,p,h,r),n.__edge&&(n.onHoverStateChange=function(t){if(t!==`blur`){var r=o.parentNode&&e.getItemGraphicEl(o.parentNode.dataIndex);r&&r.hoverState===1||Ld(n.__edge,t)}})}function TB(e,t,n,r,i,a,o,s){var c=t.getModel(),l=e.get(`edgeShape`),u=e.get(`layout`),d=e.getOrient(),f=e.get([`lineStyle`,`curveness`]),p=e.get(`edgeForkPosition`),m=c.getModel(`lineStyle`).getLineStyle(),h=r.__edge;if(l===`curve`)t.parentNode&&t.parentNode!==n&&(h||=r.__edge=new Op({shape:kB(u,d,f,i,i)}),Yp(h,{shape:kB(u,d,f,a,o)},e));else if(l===`polyline`&&u===`orthogonal`&&t!==n&&t.children&&t.children.length!==0&&t.isExpand===!0){for(var g=t.children,_=[],v=0;v=0;a--)n.push(i[a])}}function MB(e,t){e.eachSeriesByType(`tree`,function(e){NB(e,t)})}function NB(e,t){var n=l_(e,t).refContainer,r=o_(e.getBoxLayoutParams(),n);e.layoutInfo=r;var i=e.get(`layout`),a=0,o=0,s=null;i===`radial`?(a=2*Math.PI,o=Math.min(r.height,r.width)/2,s=Kz(function(e,t){return(e.parentNode===t.parentNode?1:2)/e.depth})):(a=r.width,o=r.height,s=Kz());var c=e.getData().tree.root,l=c.children[0];if(l){Uz(c),AB(l,Wz,s),c.hierNode.modifier=-l.hierNode.prelim,jB(l,Gz);var u=l,d=l,f=l;jB(l,function(e){var t=e.getLayout().x;td.getLayout().x&&(d=e),e.depth>f.depth&&(f=e)});var p=u===d?1:s(u,d)/2,m=p-u.getLayout().x,h=0,g=0,_=0,v=0;if(i===`radial`)h=a/(d.getLayout().x+p+m),g=o/(f.depth-1||1),jB(l,function(e){_=(e.getLayout().x+m)*h,v=(e.depth-1)*g;var t=qz(_,v);e.setLayout({x:t.x,y:t.y,rawX:_,rawY:v},!0)});else{var y=e.getOrient();y===`RL`||y===`LR`?(g=o/(d.getLayout().x+p+m),h=a/(f.depth-1||1),jB(l,function(e){v=(e.getLayout().x+m)*g,_=y===`LR`?(e.depth-1)*h:a-(e.depth-1)*h,e.setLayout({x:_,y:v},!0)})):(y===`TB`||y===`BT`)&&(h=a/(d.getLayout().x+p+m),g=o/(f.depth-1||1),jB(l,function(e){_=(e.getLayout().x+m)*h,v=y===`TB`?(e.depth-1)*g:o-(e.depth-1)*g,e.setLayout({x:_,y:v},!0)}))}}}function PB(e){e.registerAction({type:`treeExpandAndCollapse`,event:`treeExpandAndCollapse`,update:`update`},function(e,t){t.eachComponent({mainType:nd,subType:vB,query:e},function(t){var n=e.dataIndex,r=t.getData().tree.getNodeByDataIndex(n);r.isExpand=!r.isExpand})}),tz(e,nd,vB)}var FB=_c(vB,IB);function IB(e){e.eachSeriesByType(vB,function(e){var t=e.getData();t.tree.eachNode(function(e){var n=e.getModel().getModel(`itemStyle`).getItemStyle();P(t.ensureUniqueItemVisual(e.dataIndex,`style`),n)})})}function LB(e){e.registerChartView(SB),e.registerSeriesModel(yB),e.registerLayout(MB),e.registerVisual(FB),PB(e)}var RB=[`treemapZoomToNode`,`treemapRender`,`treemapMove`];function zB(e){for(var t=0;t1;)r=r.parentNode;var i=H_(e.ecModel,r.name||r.dataIndex+``,n);t.setVisual(`decal`,i)})}var VB=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.preventUsingHoverLayer=!0,n}return t.prototype.getInitialData=function(e,t){var n={name:e.name,children:e.data};HB(n);var r=e.levels||[],i=new Th({itemStyle:this.designatedVisualItemStyle={}},this,t);r=e.levels=UB(r,t);var a=R(r||[],function(e){return new Th(e,i,t)},this),o=fB.createTree(n,this,s);function s(e){e.wrapMethod(`getItemModel`,function(e,t){var n=o.getNodeByDataIndex(t);return e.parentModel=(n?a[n.depth]:null)||i,e})}return o.data},t.prototype.optionUpdated=function(){this.resetViewRoot()},t.prototype.formatTooltip=function(e,t,n){var r=this.getData(),i=this.getRawValue(e);return ib(`nameValue`,{name:r.getName(e),value:i})},t.prototype.getDataParams=function(t){var n=e.prototype.getDataParams.apply(this,arguments);return n.treeAncestors=_B(this.getData().tree.getNodeByDataIndex(t),this),n.treePathInfo=n.treeAncestors,n},t.prototype.setLayoutInfo=function(e){this.layoutInfo=this.layoutInfo||{},P(this.layoutInfo,e)},t.prototype.mapIdToIndex=function(e){var t=this._idIndexMap;t||(t=this._idIndexMap=G(),this._idIndexMapCount=0);var n=t.get(e);return n??t.set(e,n=this._idIndexMapCount++),n},t.prototype.getViewRoot=function(){return this._viewRoot},t.prototype.resetViewRoot=function(e){e?this._viewRoot=e:e=this._viewRoot;var t=this.getRawData().tree.root;(!e||e!==t&&!t.contains(e))&&(this._viewRoot=t)},t.prototype.enableAriaDecal=function(){BB(this)},t.type=`series.treemap`,t.layoutMode=`box`,t.defaultOption={progressive:0,coordinateSystemUsage:`box`,left:Q.size.l,top:Q.size.xxxl,right:Q.size.l,bottom:Q.size.xxxl,sort:!0,clipWindow:`origin`,squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:`▶`,zoomToNodeRatio:.32*.32,scaleLimit:{max:5,min:.2},roam:!0,roamTrigger:`global`,nodeClick:`zoomToNode`,animation:!0,animationDurationUpdate:900,animationEasing:`quinticInOut`,breadcrumb:{show:!0,height:22,left:`center`,bottom:Q.size.m,emptyItemWidth:25,itemStyle:{color:Q.color.backgroundShade,textStyle:{color:Q.color.secondary}},emphasis:{itemStyle:{color:Q.color.background}}},label:{show:!0,distance:0,padding:5,position:`inside`,color:Q.color.neutral00,overflow:`truncate`},upperLabel:{show:!1,position:[0,`50%`],height:20,overflow:`truncate`,verticalAlign:`middle`},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:Q.color.neutral00,borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,`50%`],overflow:`truncate`,verticalAlign:`middle`}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:`index`,visibleMin:10,childrenVisibleMin:null,levels:[]},t}(Tb);function HB(e){var t=0;L(e.children,function(e){HB(e);var n=e.value;B(n)&&(n=n[0]),t+=n});var n=e.value;B(n)&&(n=n[0]),(n==null||isNaN(n))&&(n=t),n<0&&(n=0),B(e.value)?e.value[0]=n:e.value=n}function UB(e,t){var n=vs(t.get(`color`)),r=vs(t.get([`aria`,`decal`,`decals`]));if(n){e||=[];var i,a;L(e,function(e){var t=new Th(e),n=t.get(`color`),r=t.get(`decal`);(t.get([`itemStyle`,`color`])||n&&n!==`none`)&&(i=!0),(t.get([`itemStyle`,`decal`])||r&&r!==`none`)&&(a=!0)});var o=e[0]||={};return i||(o.color=n.slice()),!a&&r&&(o.decal=r.slice()),e}}var WB=8,GB=8,KB=5,qB=function(){function e(e){this.group=new Y,e.add(this.group)}return e.prototype.render=function(e,t,n,r){var i=e.getModel(`breadcrumb`),a=this.group;if(a.removeAll(),!(!i.get(`show`)||!n)){var o=i.getModel(`itemStyle`),s=i.getModel(`emphasis`),c=o.getModel(`textStyle`),l=s.getModel([`itemStyle`,`textStyle`]),u=l_(e,t).refContainer,d={left:i.get(`left`),right:i.get(`right`),top:i.get(`top`),bottom:i.get(`bottom`)},f={emptyItemWidth:i.get(`emptyItemWidth`),totalWidth:0,renderList:[]},p=o_(d,u);this._prepare(n,f,c),this._renderContent(e,f,p,o,s,c,l,r),u_(a,d,u)}},e.prototype._prepare=function(e,t,n){for(var r=e;r;r=r.parentNode){var i=Ms(r.getModel().get(`name`),``),a=n.getTextRect(i),o=Math.max(a.width+WB*2,t.emptyItemWidth);t.totalWidth+=o+GB,t.renderList.push({node:r,text:i,width:o})}},e.prototype._renderContent=function(e,t,n,r,i,a,o,s){for(var c=0,l=t.emptyItemWidth,u=e.get([`breadcrumb`,`height`]),d=t.totalWidth,f=t.renderList,p=i.getModel(`itemStyle`).getItemStyle(),m=f.length-1;m>=0;m--){var h=f[m],g=h.node,_=h.width,v=h.text;d>n.width&&(d-=_-l,_=l,v=null);var y=new yp({shape:{points:JB(c,0,_,u,m===f.length-1,m===0)},style:F(r.getItemStyle(),{lineJoin:`bevel`}),textContent:new Vu({style:nh(a,{text:v})}),textConfig:{position:`inside`},z2:10*1e4,onclick:xe(s,g)});y.disableLabelAnimation=!0,y.getTextContent().ensureState(`emphasis`).style=nh(o,{text:v}),y.ensureState(`emphasis`).style=p,ff(y,i.get(`focus`),i.get(`blurScope`),i.get(`disabled`)),this.group.add(y),YB(y,e,g),c+=_+GB}},e.prototype.remove=function(){this.group.removeAll()},e}();function JB(e,t,n,r,i,a){var o=[[i?e:e-KB,t],[e+n,t],[e+n,t+r],[i?e:e-KB,t+r]];return!a&&o.splice(2,0,[e+n+KB,t+r/2]),!i&&o.push([e,t+r/2]),o}function YB(e,t,n){Z(e).eventData={componentType:`series`,componentSubType:`treemap`,componentIndex:t.componentIndex,seriesIndex:t.seriesIndex,seriesName:t.name,seriesType:`treemap`,selfType:`breadcrumb`,nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&_B(n,t)}}var XB=function(){function e(){this._storage=[],this._elExistsMap={}}return e.prototype.add=function(e,t,n,r,i){return this._elExistsMap[e.id]?!1:(this._elExistsMap[e.id]=!0,this._storage.push({el:e,target:t,duration:n,delay:r,easing:i}),!0)},e.prototype.finished=function(e){return this._finishedCallback=e,this},e.prototype.start=function(){for(var e=this,t=this._storage.length,n=function(){t--,t<=0&&(e._storage.length=0,e._elExistsMap={},e._finishedCallback&&e._finishedCallback())},r=0,i=this._storage.length;r=0;c--){var l=i[r===`asc`?o-c-1:c].getValue();l/n*ts[1]&&(s[1]=t)})),{sum:r,dataExtent:s}}function dV(e,t,n){for(var r=0,i=1/0,a=0,o=void 0,s=e.length;ar&&(r=o));var c=e.area*e.area,l=t*t*n;return c?QB(l*r/c,c/(l*i)):1/0}function fV(e,t,n,r,i){var a=t===n.width?0:1,o=1-a,s=[`x`,`y`],c=[`width`,`height`],l=n[s[a]],u=t?e.area/t:0;(i||u>n[c[o]])&&(u=n[c[o]]);for(var d=0,f=e.length;dqo&&(u=qo),i=c}uxV||Math.abs(e.dy)>xV)){var t=this.seriesModel.getData().tree.root;if(!t)return;var n=t.getLayout();if(!n)return;this.api.dispatchAction({type:`treemapMove`,from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+e.dx,y:n.y+e.dy,width:n.width,height:n.height}})}},t.prototype._onZoom=function(e){var t=e.originX,n=e.originY,r=e.scale,i=this.seriesModel;if(this._state!==`animating`){var a=i.getData().tree.root;if(!a)return;var o=a.getLayout();if(!o)return;var s=new J(o.x,o.y,o.width,o.height),c=i.layoutInfo,l=_V(c,o),u=l*r;u=vV(u,i);var d=u/l;t-=c.x,n-=c.y;var f=Yt();$t(f,f,[-t,-n]),tn(f,f,[d,d]),$t(f,f,[t,n]),s.applyTransform(f),this.api.dispatchAction({type:`treemapRender`,from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:s.x,y:s.y,width:s.width,height:s.height}})}},t.prototype._initEvents=function(e){var t=this;e.on(`click`,function(e){if(t._state===`ready`){var n=t.seriesModel.get(`nodeClick`,!0);if(n){var r=t.findTarget(e.offsetX,e.offsetY);if(r){var i=r.node;if(i.getLayout().isLeafRoot)t._rootToNode(r);else if(n===`zoomToNode`)t._zoomToNode(r);else if(n===`link`){var a=i.hostTree.data.getItemModel(i.dataIndex),o=a.get(`link`,!0),s=a.get(`target`,!0)||`blank`;o&&Vg(o,s)}}}}},this)},t.prototype._renderBreadcrumb=function(e,t,n){var r=this;n||(n=e.get(`leafDepth`,!0)==null?this.findTarget(t.getWidth()/2,t.getHeight()/2):{node:e.getViewRoot()},n||={node:e.getData().tree.root}),(this._breadcrumb||=new qB(this.group)).render(e,t,n.node,function(t){r._state!==`animating`&&(gB(e.getViewRoot(),t)?r._rootToNode({node:t}):r._zoomToNode({node:t}))})},t.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage=jV(),this._state=`ready`,this._breadcrumb&&this._breadcrumb.remove()},t.prototype.dispose=function(){this._clearController()},t.prototype._zoomToNode=function(e){this.api.dispatchAction({type:`treemapZoomToNode`,from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},t.prototype._rootToNode=function(e){this.api.dispatchAction({type:`treemapRootToNode`,from:this.uid,seriesId:this.seriesModel.id,targetNode:e.node})},t.prototype.findTarget=function(e,t){var n;return this.seriesModel.getViewRoot().eachNode({attr:`viewChildren`,order:`preorder`},function(r){var i=this._storage.background[r.getRawIndex()];if(i){var a=i.transformCoordToLocal(e,t),o=i.shape;if(o.x<=a[0]&&a[0]<=o.x+o.width&&o.y<=a[1]&&a[1]<=o.y+o.height)n={node:r,offsetX:a[0],offsetY:a[1]};else return!1}},this),n},t.type=`treemap`,t}(Rb);function jV(){return{nodeGroup:[],background:[],content:[]}}function MV(e,t,n,r,i,a,o,s,c,l){if(!o)return;var u=o.getLayout(),d=e.getData(),f=o.getModel();if(d.setItemGraphicEl(o.dataIndex,null),!u||!u.isInView)return;var p=u.width,m=u.height,h=u.borderWidth,g=u.invisible,_=o.getRawIndex(),v=s&&s.getRawIndex(),y=o.viewChildren,b=u.upperHeight,x=y&&y.length,S=f.getModel(`itemStyle`),C=f.getModel([`emphasis`,`itemStyle`]),w=f.getModel([`blur`,`itemStyle`]),T=f.getModel([`select`,`itemStyle`]),E=S.get(`borderRadius`)||0,D=le(`nodeGroup`,yV);if(!D)return;if(c.add(D),D.x=u.x||0,D.y=u.y||0,D.markRedraw(),kV(D).nodeWidth=p,kV(D).nodeHeight=m,u.isAboveViewRoot)return D;var O=le(`background`,bV,l,TV);O&&ie(D,O,x&&u.upperLabelHeight);var k=f.getModel(`emphasis`),A=k.get(`focus`),j=k.get(`blurScope`),ee=k.get(`disabled`),te=A===`ancestor`?o.getAncestorsIndices():A===`descendant`?o.getDescendantIndices():A;if(x)vf(D)&&_f(D,!1),O&&(_f(O,!ee),d.setItemGraphicEl(o.dataIndex,O),pf(O,te,j));else{var ne=le(`content`,bV,l,EV);ne&&ae(D,ne),O.disableMorphing=!0,O&&vf(O)&&_f(O,!1),_f(D,!ee),d.setItemGraphicEl(o.dataIndex,D);var re=f.getShallow(`cursor`);re&&ne.attr(`cursor`,re),pf(D,te,j)}return D;function ie(t,n,r){var i=Z(n);if(i.dataIndex=o.dataIndex,i.seriesIndex=e.seriesIndex,n.setShape({x:0,y:0,width:p,height:m,r:E}),g)oe(n);else{n.invisible=!1;var a=o.getVisual(`style`),s=a.stroke,c=OV(S);c.fill=s;var l=DV(C);l.fill=C.get(`borderColor`);var u=DV(w);u.fill=w.get(`borderColor`);var d=DV(T);if(d.fill=T.get(`borderColor`),r){var f=p-2*h;se(n,s,a.opacity,{x:h,y:0,width:f,height:b})}else n.removeTextContent();n.setStyle(c),n.ensureState(`emphasis`).style=l,n.ensureState(`blur`).style=u,n.ensureState(`select`).style=d,Ud(n)}t.add(n)}function ae(t,n){var r=Z(n);r.dataIndex=o.dataIndex,r.seriesIndex=e.seriesIndex;var i=Math.max(p-2*h,0),a=Math.max(m-2*h,0);if(n.culling=!0,n.setShape({x:h,y:h,width:i,height:a,r:E}),g)oe(n);else{n.invisible=!1;var s=o.getVisual(`style`),c=s.fill,l=OV(S);l.fill=c,l.decal=s.decal;var u=DV(C),d=DV(w),f=DV(T);se(n,c,s.opacity,null),n.setStyle(l),n.ensureState(`emphasis`).style=u,n.ensureState(`blur`).style=d,n.ensureState(`select`).style=f,Ud(n)}t.add(n)}function oe(e){!e.invisible&&a.push(e)}function se(t,n,r,i){var a=f.getModel(i?CV:SV),s=Ms(f.get(`name`),null),c=a.getShallow(`show`);eh(t,th(f,i?CV:SV),{defaultText:c?s:null,inheritColor:n,defaultOpacity:r,labelFetcher:e,labelDataIndex:o.dataIndex});var l=t.getTextContent();if(l){var d=l.style,p=Pe(d.padding||0);i&&(t.setTextConfig({layoutRect:i}),l.disableLabelLayout=!0),l.beforeUpdate=function(){var e=Math.max((i?i.width:t.shape.width)-p[1]-p[3],0),n=Math.max((i?i.height:t.shape.height)-p[0]-p[2],0);(d.width!==e||d.height!==n)&&l.setStyle({width:e,height:n})},d.truncateMinChar=2,d.lineOverflow=`truncate`,ce(d,i,u);var m=l.getState(`emphasis`);ce(m?m.style:null,i,u)}}function ce(t,n,r){var i=t?t.text:null;if(!n&&r.isLeafRoot&&i!=null){var a=e.get(`drillDownIcon`,!0);t.text=a?a+` `+i:i}}function le(e,r,a,o){var s=v!=null&&n[e][v],c=i[e];return s?(n[e][v]=null,ue(c,s)):g||(s=new r,s instanceof ml&&(s.z2=NV(a,o)),M(c,s)),t[e][_]=s}function ue(e,t){var n=e[_]={};t instanceof yV?(n.oldX=t.x,n.oldY=t.y):n.oldShape=P({},t.shape)}function M(e,t){var n=e[_]={},a=o.parentNode,s=t instanceof Y;if(a&&(!r||r.direction===`drillDown`)){var c=0,l=0,u=i.background[a.getRawIndex()];!r&&u&&u.oldShape&&(c=u.oldShape.width,l=u.oldShape.height),s?(n.oldX=0,n.oldY=l):n.oldShape={x:c,y:l,width:0,height:0}}n.fadein=!s}}function NV(e,t){return e*wV+t}var PV=L,FV=U,IV=-1,LV=function(){function e(t){var n=t.mappingMethod,r=t.type,i=this.option=M(t);this.type=r,this.mappingMethod=n,this._normalizeData=YV[n];var a=e.visualHandlers[r];this.applyVisual=a.applyVisual,this.getColorMapper=a.getColorMapper,this._normalizedToVisual=a._normalizedToVisual[n],n===`piecewise`?(BV(i),RV(i)):n===`category`?i.categories?zV(i):BV(i,!0):(Fe(n!==`linear`||i.dataExtent),BV(i))}return e.prototype.mapValueToVisual=function(e){var t=this._normalizeData(e);return this._normalizedToVisual(t,e)},e.prototype.getNormalizer=function(){return z(this._normalizeData,this)},e.listVisualTypes=function(){return ye(e.visualHandlers)},e.isValidType=function(t){return e.visualHandlers.hasOwnProperty(t)},e.eachVisual=function(e,t,n){U(e)?L(e,t,n):t.call(n,e)},e.mapVisual=function(t,n,r){var i,a=B(t)?[]:U(t)?{}:(i=!0,null);return e.eachVisual(t,function(e,t){var o=n.call(r,e,t);i?a=o:a[t]=o}),a},e.retrieveVisuals=function(t){var n={},r;return t&&PV(e.visualHandlers,function(e,i){t.hasOwnProperty(i)&&(n[i]=t[i],r=!0)}),r?n:null},e.prepareVisualTypes=function(e){if(B(e))e=e.slice();else if(FV(e)){var t=[];PV(e,function(e,n){t.push(n)}),e=t}else return[];return e.sort(function(e,t){return t===`color`&&e!==`color`&&e.indexOf(`color`)===0?1:-1}),e},e.dependsOn=function(e,t){return t===`color`?!!(e&&e.indexOf(t)===0):e===t},e.findPieceIndex=function(e,t,n){for(var r,i=1/0,a=0,o=t.length;a=0;a--)r[a]??(delete n[t[a]],t.pop())}function BV(e,t){var n=e.visual,r=[];U(n)?PV(n,function(e){r.push(e)}):n!=null&&r.push(n),!t&&r.length===1&&!{color:1,symbol:1}.hasOwnProperty(e.type)&&(r[1]=r[0]),JV(e,r)}function VV(e){return{applyVisual:function(t,n,r){var i=this.mapValueToVisual(t);r(`color`,e(n(`color`),i))},_normalizedToVisual:KV([0,1])}}function HV(e){var t=this.option.visual;return t[Math.round(Fo(e,[0,1],[0,t.length-1],!0))]||{}}function UV(e){return function(t,n,r){r(e,this.mapValueToVisual(t))}}function WV(e){var t=this.option.visual;return t[this.option.loop&&e!==IV?e%t.length:e]}function GV(){return this.option.visual[0]}function KV(e){return{linear:function(t){return Fo(t,e,this.option.visual,!0)},category:WV,piecewise:function(t,n){var r=qV.call(this,n);return r??=Fo(t,e,this.option.visual,!0),r},fixed:GV}}function qV(e){var t=this.option,n=t.pieceList;if(t.hasSpecialVisual){var r=n[LV.findPieceIndex(e,n)];if(r&&r.visual)return r.visual[this.type]}}function JV(e,t){return e.visual=t,e.type===`color`&&(e.parsedVisual=R(t,function(e){return Kr(e)||[0,0,0,1]})),t}var YV={linear:function(e){return Fo(e,this.option.dataExtent,[0,1],!0)},piecewise:function(e){var t=this.option.pieceList,n=LV.findPieceIndex(e,t,!0);if(n!=null)return Fo(n,[0,t.length-1],[0,1],!0)},category:function(e){return(this.option.categories?this.option.categoryMap[e]:e)??IV},fixed:qe};function XV(e,t,n){return e?t<=n:t=n.length||e===n[e.depth])&&eH(e,sH(i,c,e,t,m,r),n,r)})}}}function tH(e,t,n){var r=P({},t),i=n.designatedVisualItemStyle;return L([`color`,`colorAlpha`,`colorSaturation`],function(n){i[n]=t[n];var a=e.get(n);i[n]=null,a!=null&&(r[n]=a)}),r}function nH(e){var t=iH(e,`color`);if(t){var n=iH(e,`colorAlpha`),r=iH(e,`colorSaturation`);return r&&(t=Qr(t,null,null,r)),n&&(t=$r(t,n)),t}}function rH(e,t){return t==null?null:Qr(t,null,null,e)}function iH(e,t){var n=e[t];if(n!=null&&n!==`none`)return n}function aH(e,t,n,r,i,a){if(!(!a||!a.length)){var o=oH(t,`color`)||i.color!=null&&i.color!==`none`&&(oH(t,`colorAlpha`)||oH(t,`colorSaturation`));if(o){var s=t.get(`visualMin`),c=t.get(`visualMax`),l=n.dataExtent.slice();s!=null&&sl[1]&&(l[1]=c);var u=t.get(`colorMappingBy`),d={type:o.name,dataExtent:l,visual:o.range};d.type===`color`&&(u===`index`||u===`id`)?(d.mappingMethod=`category`,d.loop=!0):d.mappingMethod=`linear`;var f=new LV(d);return QV(f).drColorMappingBy=u,f}}}function oH(e,t){var n=e.get(t);return B(n)&&n.length?{name:t,range:n}:null}function sH(e,t,n,r,i,a){var o=P({},t);if(i){var s=i.type,c=s===`color`&&QV(i).drColorMappingBy,l=c===`index`?r:c===`id`?a.mapIdToIndex(n.getId()):n.getValue(e.get(`visualDimension`));o[s]=i.mapValueToVisual(l)}return o}function cH(e){e.registerSeriesModel(VB),e.registerChartView(AV),e.registerVisual($V),e.registerLayout(aV),zB(e)}function lH(e){return`_EC_`+e}var uH=function(){function e(e){this.type=`graph`,this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=e||!1}return e.prototype.isDirected=function(){return this._directed},e.prototype.addNode=function(e,t){e=e==null?``+t:``+e;var n=this._nodesMap;if(!n[lH(e)]){var r=new dH(e,t);return r.hostGraph=this,this.nodes.push(r),n[lH(e)]=r,r}},e.prototype.getNodeByIndex=function(e){var t=this.data.getRawIndex(e);return this.nodes[t]},e.prototype.getNodeById=function(e){return this._nodesMap[lH(e)]},e.prototype.addEdge=function(e,t,n){var r=this._nodesMap,i=this._edgesMap;if(Ce(e)&&(e=this.nodes[e]),Ce(t)&&(t=this.nodes[t]),e instanceof dH||(e=r[lH(e)]),t instanceof dH||(t=r[lH(t)]),!(!e||!t)){var a=e.id+`-`+t.id,o=new fH(e,t,n);return o.hostGraph=this,this._directed&&(e.outEdges.push(o),t.inEdges.push(o)),e.edges.push(o),e!==t&&t.edges.push(o),this.edges.push(o),i[a]=o,o}},e.prototype.getEdgeByIndex=function(e){var t=this.edgeData.getRawIndex(e);return this.edges[t]},e.prototype.getEdge=function(e,t){e instanceof dH&&(e=e.id),t instanceof dH&&(t=t.id);var n=this._edgesMap;return this._directed?n[e+`-`+t]:n[e+`-`+t]||n[t+`-`+e]},e.prototype.eachNode=function(e,t){for(var n=this.nodes,r=n.length,i=0;i=0&&e.call(t,n[i],i)},e.prototype.eachEdge=function(e,t){for(var n=this.edges,r=n.length,i=0;i=0&&n[i].node1.dataIndex>=0&&n[i].node2.dataIndex>=0&&e.call(t,n[i],i)},e.prototype.breadthFirstTraverse=function(e,t,n,r){if(t instanceof dH||(t=this._nodesMap[lH(t)]),t){for(var i=n===`out`?`outEdges`:n===`in`?`inEdges`:`edges`,a=0;a=0&&n.node2.dataIndex>=0});for(var i=0,a=r.length;i=0&&!e.hasKey(p)&&(e.set(p,!0),a.push(f.node1))}for(s=0;s=0&&!e.hasKey(v)&&(e.set(v,!0),o.push(_.node2))}}}return{edge:e.keys(),node:t.keys()}},e}(),fH=function(){function e(e,t,n){this.dataIndex=-1,this.node1=e,this.node2=t,this.dataIndex=n??-1}return e.prototype.getModel=function(e){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(e)},e.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},e.prototype.getTrajectoryDataIndices=function(){var e=G(),t=G();e.set(this.dataIndex,!0);for(var n=[this.node1],r=[this.node2],i=0;i=0&&!e.hasKey(u)&&(e.set(u,!0),n.push(l.node1))}for(i=0;i=0&&!e.hasKey(m)&&(e.set(m,!0),r.push(p.node2))}return{edge:e.keys(),node:t.keys()}},e}();function pH(e,t){return{getValue:function(n){var r=this[e][t];return r.getStore().get(r.getDimensionIndex(n||`value`),this.dataIndex)},setVisual:function(n,r){this.dataIndex>=0&&this[e][t].setItemVisual(this.dataIndex,n,r)},getVisual:function(n){return this[e][t].getItemVisual(this.dataIndex,n)},setLayout:function(n,r){this.dataIndex>=0&&this[e][t].setItemLayout(this.dataIndex,n,r)},getLayout:function(){return this[e][t].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[e][t].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[e][t].getRawIndex(this.dataIndex)}}}me(dH,pH(`hostGraph`,`data`)),me(fH,pH(`hostGraph`,`edgeData`));function mH(e,t,n,r,i){for(var a=new uH(r),o=0;o `+f)),l++)}var p=n.get(`coordinateSystem`),m;if(p===`cartesian2d`||p===`polar`||p===`matrix`)m=ET(e,n);else{var h=Wg.get(p),g=h&&h.dimensions||[];I(g,`value`)<0&&g.concat([`value`]);var _=pT(e,{coordDimensions:g,encodeDefine:n.getEncode()}).dimensions;m=new fT(_,n),m.initData(e)}var v=new fT([`value`],n);return v.initData(c,s),i&&i(m,v),nB({mainData:m,struct:a,structAttr:`graph`,datas:{node:m,edge:v},datasAttr:{node:`data`,edge:`edgeData`}}),a.update(),a}var hH=`-->`,gH=function(e){return e.get(`autoCurveness`)||null},_H=function(e,t){var n=gH(e),r=20,i=[];if(Ce(n))r=n;else if(B(n)){e.__curvenessList=n;return}t>r&&(r=t);var a=r%2?r+2:r+3;i=[];for(var o=0;o `),value:i.value,noValue:i.value==null})}return bb({series:this,dataIndex:e,multipleSeries:t})},t.prototype._updateCategoriesData=function(){var e=R(this.option.categories||[],function(e){return e.value==null?P({value:0},e):e}),t=new fT([`value`],this);t.initData(e),this._categoriesData=t,this._categoriesModels=t.mapArray(function(e){return t.getItemModel(e)})},t.prototype.isAnimationEnabled=function(){return e.prototype.isAnimationEnabled.call(this)&&!(this.get(`layout`)===`force`&&this.get([`force`,`layoutAnimation`]))},t.prototype.__ownRoamView=function(){var e=this.coordinateSystem;return NR(e)&&e},t.type=`series.`+EH,t.dependencies=[`grid`,`polar`,`geo`,`singleAxis`,`calendar`],t.defaultOption={z:2,coordinateSystem:`view`,legendHoverLink:!0,layout:null,circular:{rotateLabel:!1},force:{initLayout:null,repulsion:[0,50],gravity:.1,friction:.6,edgeLength:30,layoutAnimation:!0},left:`center`,top:`center`,symbol:`circle`,symbolSize:10,edgeSymbol:[`none`,`none`],edgeSymbolSize:10,edgeLabel:{position:`middle`,distance:5},draggable:!1,roam:!1,center:null,zoom:1,nodeScaleRatio:.6,label:{show:!1,formatter:`{b}`},itemStyle:{},lineStyle:{color:Q.color.neutral50,width:1,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:Q.color.primary}}},t}(Tb);function OH(e){return e instanceof Array||(e=[e,e]),e}var kH=_c(EH,AH);function AH(e){e.eachSeriesByType(EH,function(e){var t=e.getGraph(),n=e.getEdgeData(),r=OH(e.get(`edgeSymbol`)),i=OH(e.get(`edgeSymbolSize`));n.setVisual(`fromSymbol`,r&&r[0]),n.setVisual(`toSymbol`,r&&r[1]),n.setVisual(`fromSymbolSize`,i&&i[0]),n.setVisual(`toSymbolSize`,i&&i[1]),n.setVisual(`style`,e.getModel(`lineStyle`).getLineStyle()),n.each(function(e){var r=n.getItemModel(e),i=t.getEdgeByIndex(e),a=OH(r.getShallow(`symbol`,!0)),o=OH(r.getShallow(`symbolSize`,!0)),s=r.getModel(`lineStyle`).getLineStyle(),c=n.ensureUniqueItemVisual(e,`style`);switch(P(c,s),c.stroke){case`source`:var l=i.node1.getVisual(`style`);c.stroke=l&&l.fill;break;case`target`:var l=i.node2.getVisual(`style`);c.stroke=l&&l.fill;break}a[0]&&i.setVisual(`fromSymbol`,a[0]),a[1]&&i.setVisual(`toSymbol`,a[1]),o[0]&&i.setVisual(`fromSymbolSize`,o[0]),o[1]&&i.setVisual(`toSymbolSize`,o[1])})})}function jH(e){var t=e.coordinateSystem;if(!(t&&t.type!==`view`)){var n=e.getGraph();n.eachNode(function(e){var t=e.getModel();e.setLayout([+t.get(`x`),+t.get(`y`)])}),MH(n,e)}}function MH(e,t){e.eachEdge(function(e,n){var r=Me(e.getModel().get([`lineStyle`,`curveness`]),-TH(e,t,n,!0),0),i=$e(e.node1.getLayout()),a=$e(e.node2.getLayout()),o=[i,a];+r&&o.push([(i[0]+a[0])/2-(i[1]-a[1])*r,(i[1]+a[1])/2-(a[0]-i[0])*r]),e.setLayout(o)})}var NH=_c(EH,PH);function PH(e,t){e.eachSeriesByType(EH,function(e){var t=e.get(`layout`),n=e.coordinateSystem;if(n&&n.type!==`view`){var r=e.getData(),i=[];L(n.dimensions,function(e){i=i.concat(r.mapDimensionsAll(e))});for(var a=0;a0&&(y[0]=-y[0],y[1]=-y[1]);var x=v[0]<0?-1:1;if(r.__position!==`start`&&r.__position!==`end`){var S=-Math.atan2(v[1],v[0]);l[0].8?`left`:u[0]<-.8?`right`:`center`,p=u[1]>.8?`top`:u[1]<-.8?`bottom`:`middle`;break;case`start`:r.x=-u[0]*h+c[0],r.y=-u[1]*g+c[1],f=u[0]>.8?`right`:u[0]<-.8?`left`:`center`,p=u[1]>.8?`bottom`:u[1]<-.8?`top`:`middle`;break;case`insideStartTop`:case`insideStart`:case`insideStartBottom`:r.x=h*x+c[0],r.y=c[1]+C,f=v[0]<0?`right`:`left`,r.originX=-h*x,r.originY=-C;break;case`insideMiddleTop`:case`insideMiddle`:case`insideMiddleBottom`:case`middle`:r.x=b[0],r.y=b[1]+C,f=`center`,r.originY=-C;break;case`insideEndTop`:case`insideEnd`:case`insideEndBottom`:r.x=-h*x+l[0],r.y=l[1]+C,f=v[0]>=0?`right`:`left`,r.originX=h*x,r.originY=-C;break}r.scaleX=r.scaleY=i,r.setStyle({verticalAlign:r.__verticalAlign||p,align:r.__align||f})}},t}(Y),cU=function(){function e(e){this.group=new Y,this._LineCtor=e||sU}return e.prototype.updateData=function(e){var t=this;this._progressiveEls=null;var n=this,r=n.group,i=n._lineData;n._lineData=e,i||r.removeAll();var a=uU(e);e.diff(i).add(function(n){t._doAdd(e,n,a)}).update(function(n,r){t._doUpdate(i,e,r,n,a)}).remove(function(e){r.remove(i.getItemGraphicEl(e))}).execute()},e.prototype.updateLayout=function(){var e=this._lineData;e&&e.eachItemGraphicEl(function(t,n){t.updateLayout(e,n)},this)},e.prototype.incrementalPrepareUpdate=function(e){this._seriesScope=uU(e),this._lineData=null,this.group.removeAll()},e.prototype.incrementalUpdate=function(e,t,n){this._progressiveEls=[];function r(e){!e.isGroup&&!lU(e)&&(e.incremental=n,e.ensureState(`emphasis`).hoverLayer=2)}for(var i=e.start;i0}function uU(e){var t=e.hostModel,n=t.getModel(`emphasis`);return{lineStyle:t.getModel(`lineStyle`).getLineStyle(),emphasisLineStyle:n.getModel([`lineStyle`]).getLineStyle(),blurLineStyle:t.getModel([`blur`,`lineStyle`]).getLineStyle(),selectLineStyle:t.getModel([`select`,`lineStyle`]).getLineStyle(),emphasisDisabled:n.get(`disabled`),blurScope:n.get(`blurScope`),focus:n.get(`focus`),labelStatesModels:th(t)}}function dU(e){return isNaN(e[0])||isNaN(e[1])}function fU(e){return e&&!dU(e[0])&&!dU(e[1])}var pU=[],mU=[],hU=[],gU=br,_U=dt,vU=Math.abs;function yU(e,t,n){for(var r=e[0],i=e[1],a=e[2],o=1/0,s,c=n*n,l=.1,u=.1;u<=.9;u+=.1){pU[0]=gU(r[0],i[0],a[0],u),pU[1]=gU(r[1],i[1],a[1],u);var d=vU(_U(pU,t)-c);d=0?s+=l:s-=l:m>=0?s-=l:s+=l}return s}function bU(e,t){var n=[],r=wr,i=[[],[],[]],a=[[],[]],o=[];t/=2,e.eachEdge(function(e,s){var c=e.getLayout(),l=e.getVisual(`fromSymbol`),u=e.getVisual(`toSymbol`);c.__original||(c.__original=[$e(c[0]),$e(c[1])],c[2]&&c.__original.push($e(c[2])));var d=c.__original;if(c[2]!=null){if(Qe(i[0],d[0]),Qe(i[1],d[2]),Qe(i[2],d[1]),l&&l!==`none`){var f=IH(e.node1),p=yU(i,d[0],f*t);r(i[0][0],i[1][0],i[2][0],p,n),i[0][0]=n[3],i[1][0]=n[4],r(i[0][1],i[1][1],i[2][1],p,n),i[0][1]=n[3],i[1][1]=n[4]}if(u&&u!==`none`){var f=IH(e.node2),p=yU(i,d[1],f*t);r(i[0][0],i[1][0],i[2][0],p,n),i[1][0]=n[1],i[2][0]=n[2],r(i[0][1],i[1][1],i[2][1],p,n),i[1][1]=n[1],i[2][1]=n[2]}Qe(c[0],i[0]),Qe(c[1],i[2]),Qe(c[2],i[1])}else{if(Qe(a[0],d[0]),Qe(a[1],d[1]),rt(o,a[1],a[0]),st(o,o),l&&l!==`none`){var f=IH(e.node1);nt(a[0],a[0],o,f*t)}if(u&&u!==`none`){var f=IH(e.node2);nt(a[1],a[1],o,-f*t)}Qe(c[0],a[0]),Qe(c[1],a[1])}})}var xU=Bs();function SU(e){if(e)return xU(e).bridge}function CU(e,t){e&&(xU(e).bridge=t)}var wU=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=EH,t}return t.prototype.init=function(e,t){var n=new zj,r=new cU,i=this.group,a=new Y;this._controller=new eL(t.getZr()),a.add(n.group),a.add(r.group),i.add(a),this._symbolDraw=n,this._lineDraw=r,this._mainGroup=a,this._firstRender=!0},t.prototype.render=function(e,t,n){var r=this,i=zR(e),a=!1;this._model=e,this._api=n,this._active=!0;var o=this._mainGroup,s=this._getThumbnailInfo();s&&s.bridge.reset(n);var c=this._symbolDraw,l=this._lineDraw;i&&PR(o,2,i,this._firstRender?null:e),bU(e.getGraph(),FH(e));var u=e.getData();c.updateData(u);var d=e.getEdgeData();l.updateData(d),this._updateNodeAndLinkScale(),i&&QR(e,n,this._controller,function(t,n,r){return e.coordinateSystem.containPoint([n,r])},null),clearTimeout(this._layoutTimeout);var f=e.forceLayout,p=e.get([`force`,`layoutAnimation`]);f&&(a=!0,this._startForceLayoutIteration(f,n,p));var m=e.get(`layout`);u.graph.eachNode(function(t){var i=t.dataIndex,a=t.getGraphicEl(),o=t.getModel();if(a){a.off(`drag`).off(`dragend`);var s=o.get(`draggable`);s&&a.on(`drag`,function(o){switch(m){case`force`:f.warmUp(),!r._layouting&&r._startForceLayoutIteration(f,n,p),f.setFixed(i),u.setItemLayout(i,[a.x,a.y]);break;case`circular`:u.setItemLayout(i,[a.x,a.y]),t.setLayout({fixed:!0},!0),zH(e,`symbolSize`,t,[o.offsetX,o.offsetY]),r.updateLayout(e);break;default:u.setItemLayout(i,[a.x,a.y]),MH(e.getGraph(),e),r.updateLayout(e);break}}).on(`dragend`,function(){f&&f.setUnfixed(i)}),a.setDraggable(s,!!o.get(`cursor`)),o.get([`emphasis`,`focus`])===`adjacency`&&(Z(a).focus=t.getAdjacentDataIndices())}}),u.graph.eachEdge(function(e){var t=e.getGraphicEl(),n=e.getModel().get([`emphasis`,`focus`]);t&&n===`adjacency`&&(Z(t).focus={edge:[e.dataIndex],node:[e.node1.dataIndex,e.node2.dataIndex]})});var h=e.get(`layout`)===`circular`&&e.get([`circular`,`rotateLabel`]),g=u.getLayout(`cx`),_=u.getLayout(`cy`);u.graph.eachNode(function(e){VH(e,h,g,_)}),this._firstRender=!1,a||this._renderThumbnail(e,n,this._symbolDraw,this._lineDraw)},t.prototype.dispose=function(){this.remove(),this._controller&&this._controller.dispose()},t.prototype._startForceLayoutIteration=function(e,t,n){var r=this,i=!1;(function a(){e.step(function(e){r.updateLayout(r._model),(e||!i)&&(i=!0,r._renderThumbnail(r._model,t,r._symbolDraw,r._lineDraw)),(r._layouting=!e)&&(n?r._layoutTimeout=setTimeout(a,16):a())})})()},t.prototype.__updateOnOwnRoam=function(e,t,n){var r=zR(t);!this._active||!r||(PR(this._mainGroup,2,r,null),rz(e)&&(this._updateNodeAndLinkScale(),bU(t.getGraph(),FH(t)),this._lineDraw.updateLayout(),n.updateLabelLayout()),this._updateThumbnailWindow())},t.prototype._updateNodeAndLinkScale=function(){var e=this._model,t=e.getData(),n=FH(e);t.eachItemGraphicEl(function(e,t){e&&e.setSymbolScale(n)})},t.prototype.updateLayout=function(e){this._active&&(bU(e.getGraph(),FH(e)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout())},t.prototype.remove=function(){this._active=!1,clearTimeout(this._layoutTimeout),this._layouting=!1,this._layoutTimeout=null,this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove(),this._controller&&this._controller.disable()},t.prototype._getThumbnailInfo=function(){var e=this._model,t=e.coordinateSystem;if(t.type===`view`){var n=SU(e);if(n)return{bridge:n,coordSys:t}}},t.prototype._updateThumbnailWindow=function(){var e=this._getThumbnailInfo();e&&e.bridge.updateWindow(sR(null,e.coordSys),this._api)},t.prototype._renderThumbnail=function(e,t,n,r){var i=this._getThumbnailInfo();if(i){var a=new Y,o=n.group.children(),s=r.group.children(),c=new Y,l=new Y;a.add(l),a.add(c);for(var u=0;u `),value:r.value,noValue:r.value==null})}return ib(`nameValue`,{name:r.name,value:r.value,noValue:r.value==null})},t.prototype.getDataParams=function(t,n){var r=e.prototype.getDataParams.call(this,t,n);if(n===`node`){var i=this.getData(),a=this.getGraph().getNodeByIndex(t);r.name??=i.getName(t),r.value??=a.getLayout().value}return r},t.type=`series.`+AU,t.defaultOption={z:2,coordinateSystem:`none`,legendHoverLink:!0,colorBy:`data`,left:0,top:0,right:0,bottom:0,width:null,height:null,center:[`50%`,`50%`],radius:[`70%`,`80%`],clockwise:!0,startAngle:90,endAngle:`auto`,minAngle:0,padAngle:3,itemStyle:{borderRadius:[0,0,5,5]},lineStyle:{width:0,color:`source`,opacity:.2},label:{show:!0,position:`outside`,distance:5},emphasis:{focus:`adjacency`,lineStyle:{opacity:.5}}},t}(Tb),MU=function(e){_(t,e);function t(t,n,r){var i=e.call(this)||this;Z(i).dataType=`node`,i.z2=2;var a=new Vu;return i.setTextContent(a),i.updateData(t,n,r,!0),i}return t.prototype.updateData=function(e,t,n,r){var i=this,a=e.graph.getNodeByIndex(t),o=e.hostModel,s=a.getModel(),c=s.getModel(`emphasis`),l=e.getItemLayout(t),u=P(hP(s.getModel(`itemStyle`),l,!0),l),d=this;if(isNaN(u.startAngle)){d.setShape(u);return}r?d.setShape(u):Yp(d,{shape:u},o,t);var f=P(hP(s.getModel(`itemStyle`),l,!0),l);i.setShape(f),i.useStyle(e.getItemVisual(t,`style`)),gf(i,s),this._updateLabel(o,s,a),e.setItemGraphicEl(t,d),gf(d,s,`itemStyle`);var p=c.get(`focus`);ff(this,p===`adjacency`?a.getAdjacentDataIndices():p,c.get(`blurScope`),c.get(`disabled`))},t.prototype._updateLabel=function(e,t,n){var r=this.getTextContent(),i=n.getLayout(),a=(i.startAngle+i.endAngle)/2,o=Math.cos(a),s=Math.sin(a),c=t.getModel(`label`);r.ignore=!c.get(`show`);var l=th(t),u=n.getVisual(`style`);eh(r,l,{labelFetcher:{getFormattedLabel:function(n,r,i,a,o,s){return e.getFormattedLabel(n,r,`node`,a,Me(o,l.normal&&l.normal.get(`formatter`),t.get(`name`)),s)}},labelDataIndex:n.dataIndex,defaultText:n.dataIndex+``,inheritColor:u.fill,defaultOpacity:u.opacity,defaultOutsidePosition:`startArc`});var d=c.get(`position`)||`outside`,f=c.get(`distance`)||0,p=d===`outside`?i.r+f:(i.r+i.r0)/2;this.textConfig={inside:d!==`outside`};var m=d===`outside`?o>0?`left`:`right`:c.get(`align`)||`center`,h=d===`outside`?s>0?`top`:`bottom`:c.get(`verticalAlign`)||`middle`;r.attr({x:o*p+i.cx,y:s*p+i.cy,rotation:0,style:{align:m,verticalAlign:h}})},t}(pp);(function(){function e(){this.s1=[0,0],this.s2=[0,0],this.sStartAngle=0,this.sEndAngle=0,this.t1=[0,0],this.t2=[0,0],this.tStartAngle=0,this.tEndAngle=0,this.cx=0,this.cy=0,this.r=0,this.clockwise=!0}return e})();var NU=function(e){_(t,e);function t(t,n,r,i){var a=e.call(this)||this;return Z(a).dataType=`edge`,a.updateData(t,n,r,i,!0),a}return t.prototype.buildPath=function(e,t){e.moveTo(t.s1[0],t.s1[1]);var n=.7,r=t.clockwise;e.arc(t.cx,t.cy,t.r,t.sStartAngle,t.sEndAngle,!r),e.bezierCurveTo((t.cx-t.s2[0])*n+t.s2[0],(t.cy-t.s2[1])*n+t.s2[1],(t.cx-t.t1[0])*n+t.t1[0],(t.cy-t.t1[1])*n+t.t1[1],t.t1[0],t.t1[1]),e.arc(t.cx,t.cy,t.r,t.tStartAngle,t.tEndAngle,!r),e.bezierCurveTo((t.cx-t.t2[0])*n+t.t2[0],(t.cy-t.t2[1])*n+t.t2[1],(t.cx-t.s1[0])*n+t.s1[0],(t.cy-t.s1[1])*n+t.s1[1],t.s1[0],t.s1[1]),e.closePath()},t.prototype.updateData=function(e,t,n,r,i){var a=e.hostModel,o=t.graph.getEdgeByIndex(n),s=o.getLayout(),c=o.node1.getModel(),l=t.getItemModel(o.dataIndex),u=l.getModel(`lineStyle`),d=l.getModel(`emphasis`),f=d.get(`focus`),p=P(hP(c.getModel(`itemStyle`),s,!0),s),m=this;if(isNaN(p.sStartAngle)||isNaN(p.tStartAngle)){m.setShape(p);return}i?(m.setShape(p),PU(m,o,e,u)):(tm(m),PU(m,o,e,u),Yp(m,{shape:p},a,n)),ff(this,f===`adjacency`?o.getAdjacentDataIndices():f,d.get(`blurScope`),d.get(`disabled`)),gf(m,l,`lineStyle`),t.setItemGraphicEl(o.dataIndex,m)},t}(Su);function PU(e,t,n,r){var i=t.node1,a=t.node2,o=e.style;switch(e.setStyle(r.getLineStyle()),r.get(`color`)){case`source`:o.fill=n.getItemVisual(i.dataIndex,`style`).fill,o.decal=i.getVisual(`style`).decal;break;case`target`:o.fill=n.getItemVisual(a.dataIndex,`style`).fill,o.decal=a.getVisual(`style`).decal;break;case`gradient`:var s=n.getItemVisual(i.dataIndex,`style`).fill,c=n.getItemVisual(a.dataIndex,`style`).fill;if(H(s)&&H(c)){var l=e.shape;o.fill=new Np((l.s1[0]+l.s2[0])/2,(l.s1[1]+l.s2[1])/2,(l.t1[0]+l.t2[0])/2,(l.t1[1]+l.t2[1])/2,[{offset:0,color:s},{offset:1,color:c}],!0)}break}}var FU=Math.PI/180,IU=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=AU,t}return t.prototype.init=function(e,t){},t.prototype.render=function(e,t,n){var r=e.getData(),i=this._data,a=this.group,o=-e.get(`startAngle`)*FU;if(r.diff(i).add(function(e){if(r.getItemLayout(e)){var t=new MU(r,e,o);Z(t).dataIndex=e,a.add(t)}}).update(function(t,n){var s=i.getItemGraphicEl(n);if(!r.getItemLayout(t)){s&&em(s,e,n);return}s?s.updateData(r,t,o):s=new MU(r,t,o),a.add(s)}).remove(function(t){var n=i.getItemGraphicEl(t);n&&em(n,e,t)}).execute(),!i){var s=e.get(`center`);this.group.scaleX=.01,this.group.scaleY=.01,this.group.originX=X(s[0],n.getWidth()),this.group.originY=X(s[1],n.getHeight()),Xp(this.group,{scaleX:1,scaleY:1},e)}this._data=r,this.renderEdges(e,o)},t.prototype.renderEdges=function(e,t){var n=e.getData(),r=e.getEdgeData(),i=this._edgeData,a=this.group;r.diff(i).add(function(e){var i=new NU(n,r,e,t);Z(i).dataIndex=e,a.add(i)}).update(function(e,o){var s=i.getItemGraphicEl(o);s.updateData(n,r,e,t),a.add(s)}).remove(function(t){var n=i.getItemGraphicEl(t);n&&em(n,e,t)}).execute(),this._edgeData=r},t.prototype.dispose=function(){},t.type=AU,t}(Rb),LU=Math.PI/180,RU=_c(AU,zU);function zU(e,t){e.eachSeriesByType(AU,function(e){BU(e,t)})}function BU(e,t){var n=e.getData(),r=n.graph,i=e.getEdgeData();if(i.count()){var a=a_(e,t),o=a.cx,s=a.cy,c=a.r,l=a.r0,u=Math.max((e.get(`padAngle`)||0)*LU,0),d=Math.max((e.get(`minAngle`)||0)*LU,0),f=-e.get(`startAngle`)*LU,p=f+Math.PI*2,m=e.get(`clockwise`),h=m?1:-1,g=[f,p];Xl(g,!m);var _=g[0],v=g[1]-_,y=n.getSum(`value`)===0&&i.getSum(`value`)===0,b=[],x=0;r.eachEdge(function(e){var t=y?1:e.getValue(`value`);y&&(t>0||d)&&(x+=2);var n=e.node1.dataIndex,r=e.node2.dataIndex;b[n]=(b[n]||0)+t,b[r]=(b[r]||0)+t});var S=0;if(r.eachNode(function(e){var t=e.getValue(`value`);isNaN(t)||(b[e.dataIndex]=Math.max(t,b[e.dataIndex]||0)),!y&&(b[e.dataIndex]>0||d)&&x++,S+=b[e.dataIndex]||0}),!(x===0||S===0)){u*x>=Math.abs(v)&&(u=Math.max(0,(Math.abs(v)-d*x)/x)),(u+d)*x>=Math.abs(v)&&(d=(Math.abs(v)-u*x)/x);var C=(v-u*x*h)/S,w=0,T=0,E=0,D=1/0;r.eachNode(function(e){var t=b[e.dataIndex]||0,n=C*(S?t:1)*h;Math.abs(n)T){var k=w/T;r.eachNode(function(e){var t=e.getLayout().angle;Math.abs(t)>=d?e.setLayout({angle:t*k,ratio:k},!0):e.setLayout({angle:d,ratio:d===0?1:t/d},!0)})}else r.eachNode(function(e){if(!O){var t=e.getLayout().angle;t-Math.min(t/E,1)*wd&&d>0){var n=O?1:Math.min(t/E,1),r=t-d,i=Math.min(r,Math.min(A,w*n));A-=i,e.setLayout({angle:t-i,ratio:(t-i)/t},!0)}else d>0&&e.setLayout({angle:d,ratio:t===0?1:d/t},!0)}});var j=_,ee=[];r.eachNode(function(e){var t=Math.max(e.getLayout().angle,d);e.setLayout({cx:o,cy:s,r0:l,r:c,startAngle:j,endAngle:j+t*h,clockwise:m},!0),ee[e.dataIndex]=j,j+=(t+u)*h}),r.eachEdge(function(e){var t=y?1:e.getValue(`value`),n=C*(S?t:1)*h,r=e.node1.dataIndex,i=ee[r]||0,a=i+Math.abs((e.node1.getLayout().ratio||1)*n)*h,c=[o+l*Math.cos(i),s+l*Math.sin(i)],u=[o+l*Math.cos(a),s+l*Math.sin(a)],d=e.node2.dataIndex,f=ee[d]||0,p=f+Math.abs((e.node2.getLayout().ratio||1)*n)*h,g=[o+l*Math.cos(f),s+l*Math.sin(f)],_=[o+l*Math.cos(p),s+l*Math.sin(p)];e.setLayout({s1:c,s2:u,sStartAngle:i,sEndAngle:a,t1:g,t2:_,tStartAngle:f,tEndAngle:p,cx:o,cy:s,r:l,value:t,clockwise:m}),ee[r]=a,ee[d]=p})}}}function VU(e){e.registerChartView(IU),e.registerSeriesModel(jU),e.registerLayout(e.PRIORITY.VISUAL.POST_CHART_LAYOUT,RU),e.registerProcessor(HP(`chord`))}var HU=function(){function e(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0}return e}(),UU=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`pointer`,n}return t.prototype.getDefaultShape=function(){return new HU},t.prototype.buildPath=function(e,t){var n=Math.cos,r=Math.sin,i=t.r,a=t.width,o=t.angle,s=t.x-n(o)*a*(a>=i/3?1:2),c=t.y-r(o)*a*(a>=i/3?1:2);o=t.angle-Math.PI/2,e.moveTo(s,c),e.lineTo(t.x+n(o)*a,t.y+r(o)*a),e.lineTo(t.x+n(t.angle)*i,t.y+r(t.angle)*i),e.lineTo(t.x-n(o)*a,t.y-r(o)*a),e.lineTo(s,c)},t}(Su);function WU(e,t){var n=e.get(`center`),r=t.getWidth(),i=t.getHeight(),a=Math.min(r,i);return{cx:X(n[0],t.getWidth()),cy:X(n[1],t.getHeight()),r:X(e.get(`radius`),a/2)}}function GU(e,t){var n=e==null?``:e+``;return t&&(H(t)?n=t.replace(`{value}`,n):V(t)&&(n=t(e))),n}var KU=function(e){_(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){this.group.removeAll();var r=e.get([`axisLine`,`lineStyle`,`color`]),i=WU(e,n);this._renderMain(e,t,n,r,i),this._data=e.getData()},t.prototype.dispose=function(){},t.prototype._renderMain=function(e,t,n,r,i){var a=this.group,o=e.get(`clockwise`),s=-e.get(`startAngle`)/180*Math.PI,c=-e.get(`endAngle`)/180*Math.PI,l=e.getModel(`axisLine`),u=l.get(`roundCap`)?uP:pp,d=l.get(`show`),f=l.getModel(`lineStyle`),p=f.get(`width`),m=[s,c];Xl(m,!o),s=m[0],c=m[1];for(var h=c-s,g=s,_=[],v=0;d&&v=e&&(t===0?0:r[t-1][0])Math.PI/2&&(oe+=Math.PI)):ae===`tangential`?oe=-S-Math.PI/2:Ce(ae)&&(oe=ae*Math.PI/180),oe===0?l.add(new Vu({style:nh(_,{text:te,x:re,y:ie,verticalAlign:k<-.8?`top`:k>.8?`bottom`:`middle`,align:O<-.4?`left`:O>.4?`right`:`center`},{inheritColor:ne}),silent:!0})):l.add(new Vu({style:nh(_,{text:te,x:re,y:ie,verticalAlign:`middle`,align:`center`},{inheritColor:ne}),silent:!0,originX:re,originY:ie,rotation:oe}))}if(g.get(`show`)&&A!==v){var j=g.get(`distance`);j=j?j+c:c;for(var se=0;se<=y;se++){O=Math.cos(S),k=Math.sin(S);var ce=new wp({shape:{x1:O*(f-j)+u,y1:k*(f-j)+d,x2:O*(f-x-j)+u,y2:k*(f-x-j)+d},silent:!0,style:E});E.stroke===`auto`&&ce.setStyle({stroke:r((A+se/y)/v)}),l.add(ce),S+=w}S-=w}else S+=C}},t.prototype._renderPointer=function(e,t,n,r,i,a,o,s,c){var l=this.group,u=this._data,d=this._progressEls,f=[],p=e.get([`pointer`,`show`]),m=e.getModel(`progress`),h=m.get(`show`),g=e.getData(),_=g.mapDimension(`value`),v=+e.get(`min`),y=+e.get(`max`),b=[v,y],x=[a,o];function S(t,n){var r=g.getItemModel(t).getModel(`pointer`),a=X(r.get(`width`),i.r),o=X(r.get(`length`),i.r),s=e.get([`pointer`,`icon`]),c=r.get(`offsetCenter`),l=X(c[0],i.r),u=X(c[1],i.r),d=r.get(`keepAspect`),f=s?oS(s,l-a/2,u-o,a,o,null,d):new UU({shape:{angle:-Math.PI/2,width:a,r:o,x:l,y:u}});return f.rotation=-(n+Math.PI/2),f.x=i.cx,f.y=i.cy,f}function C(e,t){var n=m.get(`roundCap`)?uP:pp,r=m.get(`overlap`),o=r?m.get(`width`):c/g.count(),l=r?i.r-o:i.r-(e+1)*o,u=r?i.r:i.r-e*o,d=new n({shape:{startAngle:a,endAngle:t,cx:i.cx,cy:i.cy,clockwise:s,r0:l,r:u}});return r&&(d.z2=Fo(g.get(_,e),[v,y],[100,0],!0)),d}(h||p)&&(g.diff(u).add(function(t){var n=g.get(_,t);if(p){var r=S(t,a);Xp(r,{rotation:-((isNaN(+n)?x[0]:Fo(n,b,x,!0))+Math.PI/2)},e),l.add(r),g.setItemGraphicEl(t,r)}if(h){var i=C(t,a);Xp(i,{shape:{endAngle:Fo(n,b,x,m.get(`clip`))}},e),l.add(i),td(e.seriesIndex,g.dataType,t,i),f[t]=i}}).update(function(t,n){var r=g.get(_,t);if(p){var i=u.getItemGraphicEl(n),o=i?i.rotation:a,s=S(t,o);s.rotation=o,Yp(s,{rotation:-((isNaN(+r)?x[0]:Fo(r,b,x,!0))+Math.PI/2)},e),l.add(s),g.setItemGraphicEl(t,s)}if(h){var c=d[n],v=C(t,c?c.shape.endAngle:a);Yp(v,{shape:{endAngle:Fo(r,b,x,m.get(`clip`))}},e),l.add(v),td(e.seriesIndex,g.dataType,t,v),f[t]=v}}).execute(),g.each(function(e){var t=g.getItemModel(e),n=t.getModel(`emphasis`),i=n.get(`focus`),a=n.get(`blurScope`),o=n.get(`disabled`),s=r(Fo(g.get(_,e),b,[0,1],!0));if(p){var c=g.getItemGraphicEl(e),l=g.getItemVisual(e,`style`),u=l.fill;if(c instanceof Ou){var d=c.style;c.useStyle(P({image:d.image,x:d.x,y:d.y,width:d.width,height:d.height},l))}else c.useStyle(l),c.type!==`pointer`&&c.setColor(u);c.setStyle(t.getModel([`pointer`,`itemStyle`]).getItemStyle()),c.style.fill===`auto`&&c.setStyle(`fill`,s),c.z2EmphasisLift=0,gf(c,t),ff(c,i,a,o)}if(h){var m=f[e];m.useStyle(g.getItemVisual(e,`style`)),m.setStyle(t.getModel([`progress`,`itemStyle`]).getItemStyle()),m.style.fill===`auto`&&m.setStyle(`fill`,s),m.z2EmphasisLift=0,gf(m,t),ff(m,i,a,o)}}),this._progressEls=f)},t.prototype._renderAnchor=function(e,t){var n=e.getModel(`anchor`);if(n.get(`show`)){var r=n.get(`size`),i=n.get(`icon`),a=n.get(`offsetCenter`),o=n.get(`keepAspect`),s=oS(i,t.cx-r/2+X(a[0],t.r),t.cy-r/2+X(a[1],t.r),r,r,null,o);s.z2=+!!n.get(`showAbove`),s.setStyle(n.getModel(`itemStyle`).getItemStyle()),this.group.add(s)}},t.prototype._renderTitleAndDetail=function(e,t,n,r,i){var a=this,o=e.getData(),s=o.mapDimension(`value`),c=+e.get(`min`),l=+e.get(`max`),u=new Y,d=[],f=[],p=e.isAnimationEnabled(),m=e.get([`pointer`,`showAbove`]);o.diff(this._data).add(function(e){d[e]=new Vu({silent:!0}),f[e]=new Vu({silent:!0})}).update(function(e,t){d[e]=a._titleEls[t],f[e]=a._detailEls[t]}).execute(),o.each(function(t){var n=o.getItemModel(t),a=o.get(s,t),h=new Y,g=r(Fo(a,[c,l],[0,1],!0)),_=n.getModel(`title`);if(_.get(`show`)){var v=_.get(`offsetCenter`),y=i.cx+X(v[0],i.r),b=i.cy+X(v[1],i.r),x=d[t];x.attr({z2:m?0:2,style:nh(_,{x:y,y:b,text:o.getName(t),align:`center`,verticalAlign:`middle`},{inheritColor:g})}),h.add(x)}var S=n.getModel(`detail`);if(S.get(`show`)){var C=S.get(`offsetCenter`),w=i.cx+X(C[0],i.r),T=i.cy+X(C[1],i.r),E=X(S.get(`width`),i.r),D=X(S.get(`height`),i.r),O=e.get([`progress`,`show`])?o.getItemVisual(t,`style`).fill:g,x=f[t],k=S.get(`formatter`);x.attr({z2:m?0:2,style:nh(S,{x:w,y:T,text:GU(a,k),width:isNaN(E)?null:E,height:isNaN(D)?null:D,align:`center`,verticalAlign:`middle`},{inheritColor:O})}),fh(x,{normal:S},a,function(e){return GU(e,k)}),p&&ph(x,t,o,e,{getFormattedLabel:function(e,t,n,r,i,o){return GU(o?o.interpolatedValue:a,k)}}),h.add(x)}u.add(h)}),this.group.add(u),this._titleEls=d,this._detailEls=f},t.type=`gauge`,t}(Rb),qU=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.visualStyleAccessPath=`itemStyle`,n}return t.prototype.getInitialData=function(e,t){return UP(this,[`value`])},t.type=`series.gauge`,t.defaultOption={z:2,colorBy:`data`,center:[`50%`,`50%`],legendHoverLink:!0,radius:`75%`,startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,Q.color.neutral10]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:Q.color.axisTick,width:3,type:`solid`}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:Q.color.axisTickMinor,width:1,type:`solid`}},axisLabel:{show:!0,distance:15,color:Q.color.axisLabel,fontSize:12,rotate:0},pointer:{icon:null,offsetCenter:[0,0],show:!0,showAbove:!0,length:`60%`,width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:`circle`,offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:Q.color.neutral00,borderWidth:0,borderColor:Q.color.theme[0]}},title:{show:!0,offsetCenter:[0,`20%`],color:Q.color.secondary,fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:Q.color.transparent,borderWidth:0,borderColor:Q.color.neutral40,width:100,height:null,padding:[5,10],offsetCenter:[0,`40%`],color:Q.color.primary,fontSize:30,fontWeight:`bold`,lineHeight:30,valueAnimation:!1}},t}(Tb);function JU(e){e.registerChartView(KU),e.registerSeriesModel(qU)}var YU=`funnel`,XU=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new WP(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(t)},t.prototype.getInitialData=function(e,t){return UP(this,{coordDimensions:[`value`],encodeDefaulter:xe(j_,this)})},t.prototype._defaultLabelLine=function(e){ys(e,`labelLine`,[`show`]);var t=e.labelLine,n=e.emphasis.labelLine;t.show=t.show&&e.label.show,n.show=n.show&&e.emphasis.label.show},t.prototype.getDataParams=function(t){var n=this.getData(),r=e.prototype.getDataParams.call(this,t),i=n.mapDimension(`value`),a=n.getSum(i);return r.percent=a?+(n.get(i,t)/a*100).toFixed(2):0,r.$vars.push(`percent`),r},t.type=`series.`+YU,t.defaultOption={coordinateSystemUsage:`box`,z:2,legendHoverLink:!0,colorBy:`data`,left:80,top:60,right:80,bottom:65,minSize:`0%`,maxSize:`100%`,sort:`descending`,orient:`vertical`,gap:0,funnelAlign:`center`,label:{show:!0,position:`outer`},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:Q.color.neutral00,borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:Q.color.primary}}},t}(Tb),ZU=[`itemStyle`,`opacity`],QU=function(e){_(t,e);function t(t,n){var r=e.call(this)||this,i=r,a=new xp,o=new Vu;return i.setTextContent(o),r.setTextGuideLine(a),r.updateData(t,n,!0),r}return t.prototype.updateData=function(e,t,n){var r=this,i=e.hostModel,a=e.getItemModel(t),o=e.getItemLayout(t),s=a.getModel(`emphasis`),c=a.get(ZU);c??=1,n||tm(r),r.useStyle(e.getItemVisual(t,`style`)),r.style.lineJoin=`round`,n?(r.setShape({points:o.points}),r.style.opacity=0,Xp(r,{style:{opacity:c}},i,t)):Yp(r,{style:{opacity:c},shape:{points:o.points}},i,t),gf(r,a),this._updateLabel(e,t),ff(this,s.get(`focus`),s.get(`blurScope`),s.get(`disabled`))},t.prototype._updateLabel=function(e,t){var n=this,r=this.getTextGuideLine(),i=n.getTextContent(),a=e.hostModel,o=e.getItemModel(t),s=e.getItemLayout(t).label,c=e.getItemVisual(t,`style`),l=c.fill;eh(i,th(o),{labelFetcher:e.hostModel,labelDataIndex:t,defaultOpacity:c.opacity,defaultText:e.getName(t)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}});var u=o.getModel(`label`).get(`color`)===`inherit`?l:null;n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var d=s.linePoints;r.setShape({points:d}),n.textGuideLineConfig={anchor:d?new q(d[0][0],d[0][1]):null},Yp(i,{style:{x:s.x,y:s.y}},a,t),i.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),QO(n,$O(o),{stroke:l})},t}(yp),$U=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=YU,t.ignoreLabelLineUpdate=!0,t}return t.prototype.render=function(e,t,n){var r=e.getData(),i=this._data,a=this.group;r.diff(i).add(function(e){var t=new QU(r,e);r.setItemGraphicEl(e,t),a.add(t)}).update(function(e,t){var n=i.getItemGraphicEl(t);n.updateData(r,e),a.add(n),r.setItemGraphicEl(e,n)}).remove(function(t){em(i.getItemGraphicEl(t),e,t)}).execute(),this._data=r},t.prototype.remove=function(){this.group.removeAll(),this._data=null},t.prototype.dispose=function(){},t.type=YU,t}(Rb);function eW(e,t){for(var n=e.mapDimension(`value`),r=e.mapArray(n,function(e){return e}),i=[],a=t===`ascending`,o=0,s=e.count();o-1&&(i=`left`),n&&I([`left`,`right`],i)>-1&&(i=`bottom`)),i===`left`?(p=(s[3][0]+s[0][0])/2,m=(s[3][1]+s[0][1])/2,h=p-_,u=h-5,l=`right`):i===`right`?(p=(s[1][0]+s[2][0])/2,m=(s[1][1]+s[2][1])/2,h=p+_,u=h+5,l=`left`):i===`top`?(p=(s[3][0]+s[0][0])/2,m=(s[3][1]+s[0][1])/2,g=m-_,d=g-5,l=`center`):i===`bottom`?(p=(s[1][0]+s[2][0])/2,m=(s[1][1]+s[2][1])/2,g=m+_,d=g+5,l=`center`):i===`rightTop`?(p=n?s[3][0]:s[1][0],m=n?s[3][1]:s[1][1],n?(g=m-_,d=g-5,l=`center`):(h=p+_,u=h+5,l=`top`)):i===`rightBottom`?(p=s[2][0],m=s[2][1],n?(g=m+_,d=g+5,l=`center`):(h=p+_,u=h+5,l=`bottom`)):i===`leftTop`?(p=s[0][0],m=n?s[0][1]:s[1][1],n?(g=m-_,d=g-5,l=`center`):(h=p-_,u=h-5,l=`right`)):i===`leftBottom`?(p=n?s[1][0]:s[3][0],m=n?s[1][1]:s[2][1],n?(g=m+_,d=g+5,l=`center`):(h=p-_,u=h-5,l=`right`)):(p=(s[1][0]+s[2][0])/2,m=(s[1][1]+s[2][1])/2,n?(g=m+_,d=g+5,l=`center`):(h=p+_,u=h+5,l=`left`)),n?(h=p,u=h):(g=m,d=g),f=[[p,m],[h,g]]}o.label={linePoints:f,x:u,y:d,verticalAlign:`middle`,textAlign:l,inside:c}})}var nW=_c(YU,rW);function rW(e,t){e.eachSeriesByType(YU,function(e){var n=e.getData(),r=n.mapDimension(`value`),i=e.get(`sort`),a=l_(e,t),o=o_(e.getBoxLayoutParams(),a.refContainer),s=iW(e),c=o.width,l=o.height,u=eW(n,i),d=o.x,f=o.y,p=s?[X(e.get(`minSize`),l),X(e.get(`maxSize`),l)]:[X(e.get(`minSize`),c),X(e.get(`maxSize`),c)],m=n.getDataExtent(r),h=e.get(`min`),g=e.get(`max`);h??=Math.min(m[0],0),g??=m[1];var _=e.get(`funnelAlign`),v=e.get(`gap`),y=((s?c:l)-v*(n.count()-1))/n.count(),b=function(e,t){if(s){var i=Fo(n.get(r,e)||0,[h,g],p,!0),a=void 0;switch(_){case`top`:a=f;break;case`center`:a=f+(l-i)/2;break;case`bottom`:a=f+(l-i);break}return[[t,a],[t,a+i]]}var o=Fo(n.get(r,e)||0,[h,g],p,!0),u;switch(_){case`left`:u=d;break;case`center`:u=d+(c-o)/2;break;case`right`:u=d+c-o;break}return[[u,t],[u+o,t]]};i===`ascending`&&(y=-y,v=-v,s?d+=c:f+=l,u=u.reverse());for(var x=0;xSW)return;var r=this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]);r.behavior!==`none`&&this._dispatchExpand({axisExpandWindow:r.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(e){if(!(this._mouseDownPoint||!TW(this,`mousemove`))){var t=this._model,n=t.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX,e.offsetY]),r=n.behavior;r===`jump`&&this._throttledDispatchExpand.debounceNextCall(t.get(`axisExpandDebounce`)),this._throttledDispatchExpand(r===`none`?null:{axisExpandWindow:n.axisExpandWindow,animation:r===`jump`?null:{duration:0}})}}};function TW(e,t){var n=e._model;return n.get(`axisExpandable`)&&n.get(`axisExpandTriggerOn`)===t}var EW=`parallel`,DW=EW,OW=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(){e.prototype.init.apply(this,arguments),this.mergeOption({})},t.prototype.mergeOption=function(e){var t=this.option;e&&N(t,e,!0),this._initDimensions()},t.prototype.contains=function(e,t){var n=e.get(`parallelIndex`);return n!=null&&t.getComponent(`parallel`,n)===this},t.prototype.setAxisExpand=function(e){L([`axisExpandable`,`axisExpandCenter`,`axisExpandCount`,`axisExpandWidth`,`axisExpandWindow`],function(t){e.hasOwnProperty(t)&&(this.option[t]=e[t])},this)},t.prototype._initDimensions=function(){var e=this.dimensions=[],t=this.parallelAxisIndex=[];L(_e(this.ecModel.queryComponents({mainType:`parallelAxis`}),function(e){return(e.get(`parallelIndex`)||0)===this.componentIndex},this),function(n){e.push(`dim`+n.get(`dim`)),t.push(n.componentIndex)})},t.type=DW,t.dependencies=[`parallelAxis`],t.layoutMode=`box`,t.defaultOption={z:0,left:80,top:60,right:80,bottom:60,layout:`horizontal`,axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:`click`,parallelAxisDefault:null},t}(__),kW=function(e){_(t,e);function t(t,n,r,i,a){var o=e.call(this,t,n,r)||this;return o.type=i||`value`,o.axisIndex=a,o}return t.prototype.isHorizontal=function(){return this.coordinateSystem.getModel().get(`layout`)!==`horizontal`},t}(DO);function AW(e,t,n,r,i,a){e||=0;var o=Ko(n[1],-n[0]);if(i!=null&&(i=MW(i,[0,o])),a!=null&&(a=Math.max(a,i??0)),r===`all`){var s=Math.abs(Ko(t[1],-t[0]));s=MW(s,[0,o]),i=a=MW(s,[i,a]),r=0}t[0]=MW(t[0],n),t[1]=MW(t[1],n);var c=jW(t,r);t[r]+=e;var l=i||0,u=n.slice();c.sign<0?u[0]=Ko(u[0],l):u[1]=Ko(u[1],-l),t[r]=MW(t[r],u);var d=jW(t,r);return i!=null&&(d.sign!==c.sign||d.spana&&(t[1-r]=Ko(t[r],d.sign*a)),t}function jW(e,t){var n=e[t]-e[1-t];return{span:Math.abs(n),sign:n>0?-1:n<0?1:t?-1:1}}function MW(e,t){return Math.min(t[1]==null?1/0:t[1],Math.max(t[0]==null?-1/0:t[0],e))}var NW=function(){function e(e,t,n){this.type=EW,this._axesMap=G(),this._axesLayout={},this.dimensions=e.dimensions,this._model=e,this._init(e,t,n)}return e.prototype._init=function(e,t,n){var r=e.dimensions,i=e.parallelAxisIndex;L(r,function(e,n){var r=i[n],a=t.getComponent(`parallelAxis`,r),o=OE(a),s=this._axesMap.set(e,new kW(e,kE(a,o,!1),[0,0],o,r));s.onBand=WE(s.scale,a),s.inverse=a.get(`inverse`),a.axis=s,s.model=a,s.coordinateSystem=a.coordinateSystem=this},this)},e.prototype.update=function(e,t){L(this.dimensions,function(e){var t=this._axesMap.get(e);SD(t,1),PD(t)},this)},e.prototype.containPoint=function(e){var t=this._makeLayoutInfo(),n=t.axisBase,r=t.layoutBase,i=t.pixelDimIndex,a=e[1-i],o=e[i];return a>=n&&a<=n+t.axisLength&&o>=r&&o<=r+t.layoutLength},e.prototype.getModel=function(){return this._model},e.prototype.resize=function(e,t){var n=l_(e,t).refContainer;this._rect=o_(e.getBoxLayoutParams(),n),this._layoutAxes()},e.prototype.getRect=function(){return this._rect},e.prototype._makeLayoutInfo=function(){var e=this._model,t=this._rect,n=[`x`,`y`],r=[`width`,`height`],i=e.get(`layout`),a=i===`horizontal`?0:1,o=t[r[a]],s=[0,o],c=this.dimensions.length,l=PW(e.get(`axisExpandWidth`),s),u=PW(e.get(`axisExpandCount`)||0,[0,c]),d=e.get(`axisExpandable`)&&c>3&&c>u&&u>1&&l>0&&o>0,f=e.get(`axisExpandWindow`),p;f?(p=PW(f[1]-f[0],s),f[1]=f[0]+p):(p=PW(l*(u-1),s),f=[l*(e.get(`axisExpandCenter`)||Oo(c/2))-p/2],f[1]=f[0]+p);var m=(o-p)/(c-u);m<3&&(m=0);var h=[Oo(Bo(f[0]/l,1))+1,ko(Bo(f[1]/l,1))-1],g=m/l*f[0];return{layout:i,pixelDimIndex:a,layoutBase:t[n[a]],layoutLength:o,axisBase:t[n[1-a]],axisLength:t[r[1-a]],axisExpandable:d,axisExpandWidth:l,axisCollapseWidth:m,axisExpandWindow:f,axisCount:c,winInnerIndices:h,axisExpandWindow0Pos:g}},e.prototype._layoutAxes=function(){var e=this._rect,t=this._axesMap,n=this.dimensions,r=this._makeLayoutInfo(),i=r.layout;t.each(function(e){var t=[0,r.axisLength],n=+!!e.inverse;e.setExtent(t[n],t[1-n])}),L(n,function(t,n){var a=(r.axisExpandable?IW:FW)(n,r),o={horizontal:{x:a.position,y:r.axisLength},vertical:{x:0,y:a.position}},s={horizontal:No/2,vertical:0},c=[o[i].x+e.x,o[i].y+e.y],l=s[i],u=Yt();en(u,u,l),$t(u,u,c),this._axesLayout[t]={position:c,rotation:l,transform:u,axisNameAvailableWidth:a.axisNameAvailableWidth,axisLabelShow:a.axisLabelShow,nameTruncateMaxWidth:a.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}},this)},e.prototype.getAxis=function(e){return this._axesMap.get(e)},e.prototype.dataToPoint=function(e,t){return this.axisCoordToPoint(this._axesMap.get(t).dataToCoord(e),t)},e.prototype.eachActiveState=function(e,t,n,r){n??=0,r??=e.count();var i=this._axesMap,a=this.dimensions,o=[],s=[];L(a,function(t){o.push(e.mapDimension(t)),s.push(i.get(t).model)});for(var c=this.hasAxisBrushed(),l=n;li*(1-u[0])?(c=`jump`,s=o-i*(1-u[2])):(s=o-i*u[1])>=0&&(s=o-i*(1-u[1]))<=0&&(s=0),s*=t.axisExpandWidth/l,s?AW(s,r,a,`all`):c=`none`;else{var f=r[1]-r[0];r=[To(0,a[1]*o/f-f/2)],r[1]=wo(a[1],r[0]+f),r[0]=r[1]-f}return{axisExpandWindow:r,behavior:c}},e}();function PW(e,t){return wo(To(e,t[0]),t[1])}function FW(e,t){var n=t.layoutLength/(t.axisCount-1);return{position:n*e,axisNameAvailableWidth:n,axisLabelShow:!0}}function IW(e,t){var n=t.layoutLength,r=t.axisExpandWidth,i=t.axisCount,a=t.axisCollapseWidth,o=t.winInnerIndices,s,c=a,l=!1,u;return e=0;n--)Vo(t[n])},t.prototype.getActiveState=function(e){var t=this.activeIntervals;if(!t.length)return`normal`;if(e==null||isNaN(+e))return`inactive`;if(t.length===1){var n=t[0];if(n[0]<=e&&e<=n[1])return`active`}else for(var r=0,i=t.length;rGW}function uG(e){var t=e.length-1;return t<0&&(t=0),[e[0],e[t]]}function dG(e,t,n,r){var i=new Y;return i.add(new Iu({name:`main`,style:hG(n),silent:!0,draggable:!0,cursor:`move`,drift:xe(bG,e,t,i,[`n`,`s`,`w`,`e`]),ondragend:xe(cG,t,{isEnd:!0})})),L(r,function(n){i.add(new Iu({name:n.join(``),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:xe(bG,e,t,i,n),ondragend:xe(cG,t,{isEnd:!0})}))}),i}function fG(e,t,n,r){var i=r.brushStyle.lineWidth||0,a=HW(i,KW),o=n[0][0],s=n[1][0],c=o-i/2,l=s-i/2,u=n[0][1],d=n[1][1],f=u-a+i/2,p=d-a+i/2,m=u-o,h=d-s,g=m+i,_=h+i;mG(e,t,`main`,o,s,m,h),r.transformable&&(mG(e,t,`w`,c,l,a,_),mG(e,t,`e`,f,l,a,_),mG(e,t,`n`,c,l,g,a),mG(e,t,`s`,c,p,g,a),mG(e,t,`nw`,c,l,a,a),mG(e,t,`ne`,f,l,a,a),mG(e,t,`sw`,c,p,a,a),mG(e,t,`se`,f,p,a,a))}function pG(e,t){var n=t.__brushOption,r=n.transformable,i=t.childAt(0);i.useStyle(hG(n)),i.attr({silent:!r,cursor:r?`move`:`default`}),L([[`w`],[`e`],[`n`],[`s`],[`s`,`e`],[`s`,`w`],[`n`,`e`],[`n`,`w`]],function(n){var i=t.childOfName(n.join(``)),a=n.length===1?vG(e,n[0]):yG(e,n);i&&i.attr({silent:!r,invisible:!r,cursor:r?YW[a]+`-resize`:null})})}function mG(e,t,n,r,i,a,o){var s=t.childOfName(n);s&&s.setShape(wG(CG(e,t,[[r,i],[r+a,i+o]])))}function hG(e){return F({strokeNoScale:!0},e.brushStyle)}function gG(e,t,n,r){var i=[VW(e,n),VW(t,r)],a=[HW(e,n),HW(t,r)];return[[i[0],a[0]],[i[1],a[1]]]}function _G(e){return bm(e.group)}function vG(e,t){return{left:`w`,right:`e`,top:`n`,bottom:`s`}[Sm({w:`left`,e:`right`,n:`top`,s:`bottom`}[t],_G(e))]}function yG(e,t){var n=[vG(e,t[0]),vG(e,t[1])];return(n[0]===`e`||n[0]===`w`)&&n.reverse(),n.join(``)}function bG(e,t,n,r,i,a){var o=n.__brushOption,s=e.toRectRange(o.range),c=SG(t,i,a);L(r,function(e){var t=JW[e];s[t[0]][t[1]]+=c[t[0]]}),o.range=e.fromRectRange(gG(s[0][0],s[1][0],s[0][1],s[1][1])),rG(t,n),cG(t,{isEnd:!1})}function xG(e,t,n,r){var i=t.__brushOption.range,a=SG(e,n,r);L(i,function(e){e[0]+=a[0],e[1]+=a[1]}),rG(e,t),cG(e,{isEnd:!1})}function SG(e,t,n){var r=e.group,i=r.transformCoordToLocal(t,n),a=r.transformCoordToLocal(0,0);return[i[0]-a[0],i[1]-a[1]]}function CG(e,t,n){var r=oG(e,t);return r&&r!==BW?r.clipPath(n,e._transform):M(n)}function wG(e){var t=VW(e[0][0],e[1][0]),n=VW(e[0][1],e[1][1]),r=HW(e[0][0],e[1][0]),i=HW(e[0][1],e[1][1]);return{x:t,y:n,width:r-t,height:i-n}}function TG(e,t,n){if(!(!e._brushType||MG(e,t.offsetX,t.offsetY))){var r=e._zr,i=e._covers,a=aG(e,t,n);if(!e._dragging)for(var o=0;or.getWidth()||n<0||n>r.getHeight()}var NG={lineX:PG(0),lineY:PG(1),rect:{createCover:function(e,t){function n(e){return e}return dG({toRectRange:n,fromRectRange:n},e,t,[[`w`],[`e`],[`n`],[`s`],[`s`,`e`],[`s`,`w`],[`n`,`e`],[`n`,`w`]])},getCreatingRange:function(e){var t=uG(e);return gG(t[1][0],t[1][1],t[0][0],t[0][1])},updateCoverShape:function(e,t,n,r){fG(e,t,n,r)},updateCommon:pG,contain:DG},polygon:{createCover:function(e,t){var n=new Y;return n.add(new xp({name:`main`,style:hG(t),silent:!0})),n},getCreatingRange:function(e){return e},endCreating:function(e,t){t.remove(t.childAt(0)),t.add(new yp({name:`main`,draggable:!0,drift:xe(xG,e,t),ondragend:xe(cG,e,{isEnd:!0})}))},updateCoverShape:function(e,t,n,r){t.childAt(0).setShape({points:CG(e,t,n)})},updateCommon:pG,contain:DG}};function PG(e){return{createCover:function(t,n){return dG({toRectRange:function(t){var n=[t,[0,100]];return e&&n.reverse(),n},fromRectRange:function(t){return t[e]}},t,n,[[[`w`],[`e`]],[[`n`],[`s`]]][e])},getCreatingRange:function(t){var n=uG(t);return[VW(n[0][e],n[1][e]),HW(n[0][e],n[1][e])]},updateCoverShape:function(t,n,r,i){var a,o=oG(t,n);if(o!==BW&&o.getLinearBrushOtherExtent)a=o.getLinearBrushOtherExtent(e);else{var s=t._zr;a=[0,[s.getWidth(),s.getHeight()][1-e]]}var c=[r,a];e&&c.reverse(),fG(t,n,c,i)},updateCommon:pG,contain:DG}}function FG(e){return e=RG(e),function(t){return Em(t,e)}}function IG(e,t){return e=RG(e),function(n){var r=t??n,i=r?e.width:e.height,a=r?e.x:e.y;return[a,a+(i||0)]}}function LG(e,t,n){var r=RG(e);return function(e,i){return r.contain(i[0],i[1])&&!$I(e,t,n)}}function RG(e){return J.create(e)}var zG=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t,n){e.prototype.init.apply(this,arguments),(this._brushController=new QW(n.getZr())).on(`brush`,z(this._onBrush,this))},t.prototype.render=function(e,t,n,r){if(!BG(e,t,r)){this.axisModel=e,this.api=n,this.group.removeAll();var i=this._axisGroup;if(this._axisGroup=new Y,this.group.add(this._axisGroup),e.get(`show`)){var a=HG(e,t),o=a.coordinateSystem,s=e.getAreaSelectStyle(),c=s.width,l=e.axis.dim,u=o.getAxisLayout(l),d=P({strokeContainThreshold:c},u),f=new cN(e,n,d);f.build(),this._axisGroup.add(f.group),this._refreshBrushController(d,s,e,a,c,n),Tm(i,this._axisGroup,e)}}},t.prototype._refreshBrushController=function(e,t,n,r,i,a){var o=n.axis.getExtent(),s=o[1]-o[0],c=Math.min(30,Math.abs(s)*.1),l=J.create({x:o[0],y:-i/2,width:s,height:i});l.x-=c,l.width+=2*c,this._brushController.mount({enableGlobalPan:!0,rotation:e.rotation,x:e.position[0],y:e.position[1]}).setPanels([{panelId:`pl`,clipPath:FG(l),isTargetByCursor:LG(l,a,r),getLinearBrushOtherExtent:IG(l,0)}]).enableBrush({brushType:`lineX`,brushStyle:t,removeOnClick:!0}).updateCovers(VG(n))},t.prototype._onBrush=function(e){var t=e.areas,n=this.axisModel,r=n.axis,i=R(t,function(e){return[r.coordToData(e.range[0],!0),r.coordToData(e.range[1],!0)]});(!n.option.realtime===e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:`axisAreaSelect`,parallelAxisId:n.id,intervals:i})},t.prototype.dispose=function(){this._brushController.dispose()},t.type=`parallelAxis`,t}(Pb);function BG(e,t,n){return n&&n.type===`axisAreaSelect`&&t.findComponents({mainType:`parallelAxis`,query:n})[0]===e}function VG(e){var t=e.axis;return R(e.activeIntervals,function(e){return{brushType:`lineX`,panelId:`pl`,range:[t.dataToCoord(e[0],!0),t.dataToCoord(e[1],!0)]}})}function HG(e,t){return t.getComponent(`parallel`,e.get(`parallelIndex`))}var UG={type:`axisAreaSelect`,event:`axisAreaSelected`};function WG(e){e.registerAction(UG,function(e,t){t.eachComponent({mainType:`parallelAxis`,query:e},function(t){t.axis.model.setActiveIntervals(e.intervals)})}),e.registerAction(`parallelAxisExpand`,function(e,t){t.eachComponent({mainType:`parallel`,query:e},function(t){t.setAxisExpand(e)})})}var GG={type:`value`,areaSelectStyle:{width:20,borderWidth:1,borderColor:`rgba(160,197,232)`,color:`rgba(160,197,232)`,opacity:.3},realtime:!0,z:10};function KG(e){e.registerComponentView(CW),e.registerComponentModel(OW),e.registerCoordinateSystem(`parallel`,RW),e.registerPreprocessor(yW),e.registerComponentModel(zW),e.registerComponentView(zG),CF(e,`parallel`,zW,GG),WG(e)}function qG(e){Fw(KG),e.registerChartView(sW),e.registerSeriesModel(mW),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,vW)}var JG=`sankey`,YG=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.getInitialData=function(e,t){var n=e.edges||e.links||[],r=e.data||e.nodes||[],i=e.levels||[];this.levelModels=[];for(var a=this.levelModels,o=0;o=0&&(a[i[o].depth]=new Th(i[o],this,t));return mH(r,n,this,!0,s).data;function s(e,t){e.wrapMethod(`getItemModel`,function(e,t){var n=e.parentModel,r=n.getData().getItemLayout(t);if(r){var i=r.depth,a=n.levelModels[i];a&&(e.parentModel=a)}return e}),t.wrapMethod(`getItemModel`,function(e,t){var n=e.parentModel,r=n.getGraph().getEdgeByIndex(t).node1.getLayout();if(r){var i=r.depth,a=n.levelModels[i];a&&(e.parentModel=a)}return e})}},t.prototype.setNodePosition=function(e,t){var n=(this.option.data||this.option.nodes)[e];n.localX=t[0],n.localY=t[1]},t.prototype.getGraph=function(){return this.getData().graph},t.prototype.getEdgeData=function(){return this.getGraph().edgeData},t.prototype.formatTooltip=function(e,t,n){function r(e){return isNaN(e)||e==null}if(n===`edge`){var i=this.getDataParams(e,n),a=i.data,o=i.value;return ib(`nameValue`,{name:a.source+` -- `+a.target,value:o,noValue:r(o)})}else{var s=this.getGraph().getNodeByIndex(e).getLayout().value,c=this.getDataParams(e,n).data.name;return ib(`nameValue`,{name:c==null?null:c+``,value:s,noValue:r(s)})}},t.prototype.optionUpdated=function(){},t.prototype.getDataParams=function(t,n){var r=e.prototype.getDataParams.call(this,t,n);return r.value==null&&n===`node`&&(r.value=this.getGraph().getNodeByIndex(t).getLayout().value),r},t.prototype.__ownRoamView=function(){return this.coordinateSystem},t.type=`series.`+JG,t.layoutMode=`box`,t.defaultOption={z:2,coordinateSystemUsage:`box`,left:`5%`,top:`5%`,right:`20%`,bottom:`5%`,orient:`horizontal`,nodeWidth:20,nodeGap:8,draggable:!0,layoutIterations:32,roam:!1,roamTrigger:`global`,center:null,zoom:1,label:{show:!0,position:`right`,fontSize:12},edgeLabel:{show:!1,fontSize:12},levels:[],nodeAlign:`justify`,lineStyle:{color:Q.color.neutral50,opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:Q.color.primary}},animationEasing:`linear`,animationDuration:1e3},t}(Tb),XG=function(){function e(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0}return e}(),ZG=function(e){_(t,e);function t(t){return e.call(this,t)||this}return t.prototype.getDefaultShape=function(){return new XG},t.prototype.buildPath=function(e,t){var n=t.extent;e.moveTo(t.x1,t.y1),e.bezierCurveTo(t.cpx1,t.cpy1,t.cpx2,t.cpy2,t.x2,t.y2),t.orient===`vertical`?(e.lineTo(t.x2+n,t.y2),e.bezierCurveTo(t.cpx2+n,t.cpy2,t.cpx1+n,t.cpy1,t.x1+n,t.y1)):(e.lineTo(t.x2,t.y2+n),e.bezierCurveTo(t.cpx2,t.cpy2+n,t.cpx1,t.cpy1+n,t.x1,t.y1+n)),e.closePath()},t.prototype.highlight=function(){Kd(this)},t.prototype.downplay=function(){qd(this)},t}(Su),QG=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=JG,t._mainGroup=new Y,t}return t.prototype.init=function(e,t){this._controller=new eL(t.getZr()),this.group.add(this._mainGroup),this._firstRender=!0},t.prototype.render=function(e,t,n){var r=e.getGraph(),i=this._mainGroup,a=e.layoutInfo,o=a.width,s=a.height,c=e.getData(),l=e.getData(`edge`),u=e.get(`orient`);i.removeAll(),i.x=a.x,i.y=a.y,this._updateViewCoordSys(e,n),QR(e,n,this._controller,$R(i),null),r.eachEdge(function(t){var n=new ZG,r=Z(n);r.dataIndex=t.dataIndex,r.seriesIndex=e.seriesIndex,r.dataType=`edge`;var a=t.getModel(),c=a.getModel(`lineStyle`),d=c.get(`curveness`),f=t.node1.getLayout(),p=t.node1.getModel(),m=p.get(`localX`),h=p.get(`localY`),g=t.node2.getLayout(),_=t.node2.getModel(),v=_.get(`localX`),y=_.get(`localY`),b=t.getLayout(),x,S,C,w,T,E,D,O;n.shape.extent=Math.max(1,b.dy),n.shape.orient=u,u===`vertical`?(x=(m==null?f.x:m*o)+b.sy,S=(h==null?f.y:h*s)+f.dy,C=(v==null?g.x:v*o)+b.ty,w=y==null?g.y:y*s,T=x,E=S*(1-d)+w*d,D=C,O=S*d+w*(1-d)):(x=(m==null?f.x:m*o)+f.dx,S=(h==null?f.y:h*s)+b.sy,C=v==null?g.x:v*o,w=(y==null?g.y:y*s)+b.ty,T=x*(1-d)+C*d,E=S,D=x*d+C*(1-d),O=w),n.setShape({x1:x,y1:S,x2:C,y2:w,cpx1:T,cpy1:E,cpx2:D,cpy2:O}),n.useStyle(c.getItemStyle()),$G(n.style,u,t);var k=``+a.get(`value`),A=th(a,`edgeLabel`);eh(n,A,{labelFetcher:{getFormattedLabel:function(t,n,r,i,a,o){return e.getFormattedLabel(t,n,`edge`,i,Me(a,A.normal&&A.normal.get(`formatter`),k),o)}},labelDataIndex:t.dataIndex,defaultText:k}),n.setTextConfig({position:`inside`});var j=a.getModel(`emphasis`);gf(n,a,`lineStyle`,function(e){var n=e.getItemStyle();return $G(n,u,t),n}),i.add(n),l.setItemGraphicEl(t.dataIndex,n);var ee=j.get(`focus`);ff(n,ee===`adjacency`?t.getAdjacentDataIndices():ee===`trajectory`?t.getTrajectoryDataIndices():ee,j.get(`blurScope`),j.get(`disabled`))}),r.eachNode(function(t){var n=t.getLayout(),r=t.getModel(),a=r.get(`localX`),l=r.get(`localY`),u=r.getModel(`emphasis`),d=r.get([`itemStyle`,`borderRadius`])||0,f=new Iu({shape:{x:a==null?n.x:a*o,y:l==null?n.y:l*s,width:n.dx,height:n.dy,r:d},style:r.getModel(`itemStyle`).getItemStyle(),z2:10});eh(f,th(r),{labelFetcher:{getFormattedLabel:function(t,n){return e.getFormattedLabel(t,n,`node`)}},labelDataIndex:t.dataIndex,defaultText:t.id}),f.disableLabelAnimation=!0,f.setStyle(`fill`,t.getVisual(`color`)),f.setStyle(`decal`,t.getVisual(`style`).decal),gf(f,r),i.add(f),c.setItemGraphicEl(t.dataIndex,f),Z(f).dataType=`node`;var p=u.get(`focus`);ff(f,p===`adjacency`?t.getAdjacentDataIndices():p===`trajectory`?t.getTrajectoryDataIndices():p,u.get(`blurScope`),u.get(`disabled`))}),c.eachItemGraphicEl(function(t,r){c.getItemModel(r).get(`draggable`)&&(t.drift=function(t,i){this.shape.x+=t,this.shape.y+=i,this.dirty(),n.dispatchAction({type:`dragNode`,seriesId:e.id,dataIndex:c.getRawIndex(r),localX:this.shape.x/o,localY:this.shape.y/s})},t.draggable=!0,t.cursor=`move`)}),!this._data&&e.isAnimationEnabled()&&i.setClipPath(eK(i.getBoundingRect(),e,function(){i.removeClipPath()})),this._data=e.getData(),this._firstRender=!1},t.prototype.__updateOnOwnRoam=function(e,t,n){PR(this.group,2,t.coordinateSystem,null)},t.prototype.dispose=function(){this._controller&&this._controller.dispose()},t.prototype._updateViewCoordSys=function(e,t){var n=e.layoutInfo,r=e.coordinateSystem=iz(e,t,n.x,n.y,n.width,n.height);PR(this.group,2,r,this._firstRender?null:e)},t.type=JG,t}(Rb);function $G(e,t,n){switch(e.fill){case`source`:e.fill=n.node1.getVisual(`color`),e.decal=n.node1.getVisual(`style`).decal;break;case`target`:e.fill=n.node2.getVisual(`color`),e.decal=n.node2.getVisual(`style`).decal;break;case`gradient`:var r=n.node1.getVisual(`color`),i=n.node2.getVisual(`color`);H(r)&&H(i)&&(e.fill=new Np(0,0,+(t===`horizontal`),+(t===`vertical`),[{color:r,offset:0},{color:i,offset:1}]))}}function eK(e,t,n){var r=new Iu({shape:{x:e.x-10,y:e.y-10,width:0,height:e.height+20}});return Xp(r,{shape:{width:e.width+20}},t,n),r}var tK=_c(JG,nK);function nK(e,t){e.eachSeriesByType(JG,function(e){var n=e.get(`nodeWidth`),r=e.get(`nodeGap`),i=l_(e,t).refContainer,a=o_(e.getBoxLayoutParams(),i);e.layoutInfo=a;var o=a.width,s=a.height,c=e.getGraph(),l=c.nodes,u=c.edges;iK(l),rK(l,u,n,r,o,s,_e(l,function(e){return e.getLayout().value===0}).length===0?e.get(`layoutIterations`):0,e.get(`orient`),e.get(`nodeAlign`))})}function rK(e,t,n,r,i,a,o,s,c){aK(e,t,n,i,a,s,c),uK(e,t,a,i,r,o,s),CK(e,s)}function iK(e){L(e,function(e){var t=xK(e.outEdges,bK),n=xK(e.inEdges,bK),r=e.getValue()||0,i=Math.max(t,n,r);e.setLayout({value:i},!0)})}function aK(e,t,n,r,i,a,o){for(var s=[],c=[],l=[],u=[],d=0,f=0;f=0;_&&g.depth>p&&(p=g.depth),h.setLayout({depth:_?g.depth:d},!0),a===`vertical`?h.setLayout({dy:n},!0):h.setLayout({dx:n},!0);for(var v=0;vd-1?p:d-1;o&&o!==`left`&&sK(e,o,a,C),lK(e,a===`vertical`?(i-n)/C:(r-n)/C,a)}function oK(e){var t=e.hostGraph.data.getRawDataItem(e.dataIndex);return t.depth!=null&&t.depth>=0}function sK(e,t,n,r){if(t===`right`){for(var i=[],a=e,o=0;a.length;){for(var s=0;s0;a--)c*=.99,mK(s,c,o),pK(s,i,n,r,o),SK(s,c,o),pK(s,i,n,r,o)}function dK(e,t){var n=[],r=t===`vertical`?`y`:`x`,i=Zs(e,function(e){return e.getLayout()[r]});return Vo(i.keys),L(i.keys,function(e){n.push(i.buckets.get(e))}),n}function fK(e,t,n,r,i,a){var o=1/0;L(e,function(e){var t=e.length,s=0;L(e,function(e){s+=e.getLayout().value});var c=a===`vertical`?(r-(t-1)*i)/s:(n-(t-1)*i)/s;c0&&(o=s.getLayout()[a]+c,i===`vertical`?s.setLayout({x:o},!0):s.setLayout({y:o},!0)),l=s.getLayout()[a]+s.getLayout()[d]+t;var p=i===`vertical`?r:n;if(c=l-t-p,c>0){o=s.getLayout()[a]-c,i===`vertical`?s.setLayout({x:o},!0):s.setLayout({y:o},!0),l=o;for(var f=u-2;f>=0;--f)s=e[f],c=s.getLayout()[a]+s.getLayout()[d]+t-l,c>0&&(o=s.getLayout()[a]-c,i===`vertical`?s.setLayout({x:o},!0):s.setLayout({y:o},!0)),l=s.getLayout()[a]}})}function mK(e,t,n){L(e.slice().reverse(),function(e){L(e,function(e){if(e.outEdges.length){var r=xK(e.outEdges,hK,n)/xK(e.outEdges,bK);if(isNaN(r)){var i=e.outEdges.length;r=i?xK(e.outEdges,gK,n)/i:0}if(n===`vertical`){var a=e.getLayout().x+(r-yK(e,n))*t;e.setLayout({x:a},!0)}else{var o=e.getLayout().y+(r-yK(e,n))*t;e.setLayout({y:o},!0)}}})})}function hK(e,t){return yK(e.node2,t)*e.getValue()}function gK(e,t){return yK(e.node2,t)}function _K(e,t){return yK(e.node1,t)*e.getValue()}function vK(e,t){return yK(e.node1,t)}function yK(e,t){return t===`vertical`?e.getLayout().x+e.getLayout().dx/2:e.getLayout().y+e.getLayout().dy/2}function bK(e){return e.getValue()}function xK(e,t,n){for(var r=0,i=e.length,a=-1;++aa&&(a=t)}),L(n,function(t){var n=new LV({type:`color`,mappingMethod:`linear`,dataExtent:[i,a],visual:e.get(`color`)}).mapValueToVisual(t.getLayout().value),r=t.getModel().get([`itemStyle`,`color`]);r==null?(t.setVisual(`color`,n),t.setVisual(`style`,{fill:n})):(t.setVisual(`color`,r),t.setVisual(`style`,{fill:r}))})}r.length&&L(r,function(e){var t=e.getModel().get(`lineStyle`);e.setVisual(`style`,t)})})}function EK(e){e.registerChartView(QG),e.registerSeriesModel(YG),e.registerLayout(tK),e.registerVisual(wK),e.registerAction({type:`dragNode`,event:`dragnode`,update:`update`},function(e,t){t.eachComponent({mainType:nd,subType:JG,query:e},function(t){t.setNodePosition(e.dataIndex,[e.localX,e.localY])})}),tz(e,nd,JG)}var DK=function(){function e(){}return e.prototype._hasEncodeRule=function(e){var t=this.getEncode();return t&&t.get(e)!=null},e.prototype.getInitialData=function(e,t){var n,r=t.getComponent(`xAxis`,this.get(`xAxisIndex`)),i=t.getComponent(`yAxis`,this.get(`yAxisIndex`)),a=r.get(`type`),o=i.get(`type`),s,c=e.layout;a===`category`?(c=`horizontal`,n=r.getOrdinalMeta(),s=!this._hasEncodeRule(`x`)):o===`category`&&(c=`vertical`,n=i.getOrdinalMeta(),s=!this._hasEncodeRule(`y`)),c||=o===`time`?`vertical`:`horizontal`,this._layout=c;var l=[`x`,`y`],u=c===`horizontal`?0:1,d=this._baseAxisDim=l[u],f=l[1-u],p=[r,i],m=p[u].get(`type`),h=p[1-u].get(`type`),g=e.data;if(g&&s){var _=[];L(g,function(e,t){var n;B(e)?(n=e.slice(),e.unshift(t)):B(e.value)?(n=P({},e),n.value=n.value.slice(),e.value.unshift(t)):n=e,_.push(n)}),e.data=_}var v=this.defaultValueDimensions,y=[{name:d,type:Hw(m),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:[`base`]},{name:f,type:Hw(h),dimsDef:v.slice()}];return UP(this,{coordDimensions:y,dimensionsCount:v.length+1,encodeDefaulter:xe(A_,y,this)})},e.prototype.getBaseAxis=function(){var e=this._baseAxisDim;return this.ecModel.getComponent(e+`Axis`,this.get(e+`AxisIndex`)).axis},e.prototype.getWhiskerBoxesLayout=function(){return this._layout},e}();function OK(e,t){for(var n=t.ends.length,r=0,i=0;ih){var b=[_,y];r.push(b)}}}return{boxData:n,outliers:r}}var WK={type:`echarts:boxplot`,transform:function(e){var t=e.upstream;t.sourceFormat!==`arrayRows`&&ms(``);var n=UK(t.getRawData(),e.config);return[{dimensions:[`ItemName`,`Low`,`Q1`,`Q2`,`Q3`,`High`],data:n.boxData},{data:n.outliers}]}};function GK(e){e.registerSeriesModel(AK),e.registerChartView(jK),e.registerLayout(RK),e.registerTransform(WK),HK(e)}var KK=`candlestick`,qK=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.defaultValueDimensions=[{name:`open`,defaultTooltip:!0},{name:`close`,defaultTooltip:!0},{name:`lowest`,defaultTooltip:!0},{name:`highest`,defaultTooltip:!0}],n}return t.prototype.getShadowDim=function(){return`open`},t.prototype.brushSelector=function(e,t,n){var r=t.getItemLayout(e);return r&&n.rect(r.brushRect)},t.type=`series.`+KK,t.dependencies=[`xAxis`,`yAxis`,`grid`],t.defaultOption={z:2,coordinateSystem:`cartesian2d`,legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:`#eb5454`,color0:`#47b262`,borderColor:`#eb5454`,borderColor0:`#47b262`,borderColorDoji:null,borderWidth:1},emphasis:{itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:`mod`,animationEasing:`linear`,animationDuration:300},t}(Tb);me(qK,DK,!0);var JK=[`itemStyle`,`borderColor`],YK=[`itemStyle`,`borderColor0`],XK=[`itemStyle`,`borderColorDoji`],ZK=[`itemStyle`,`color`],QK=[`itemStyle`,`color0`];function $K(e,t){return t.get(e>0?ZK:QK)}function eq(e,t){return t.get(e===0?XK:e>0?JK:YK)}var tq={seriesType:KK,plan:Fb(),performRawSeries:!0,reset:function(e,t){if(!t.isSeriesFiltered(e))return!e.pipelineContext.large&&{progress:function(e,t){for(var n;(n=e.next())!=null;){var r=t.getItemModel(n),i=t.getItemLayout(n).sign,a=r.getItemStyle();a.fill=$K(i,r),a.stroke=eq(i,r)||a.fill,P(t.ensureUniqueItemVisual(n,`style`),a)}}}}},nq=[`color`,`borderColor`],rq=function(e){_(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){this.group.removeClipPath(),this._progressiveEls=null,this._updateDrawMode(e),this._isLargeDraw?this._renderLarge(e):this._renderNormal(e)},t.prototype.incrementalPrepareRender=function(e,t,n){this._clear(),this._updateDrawMode(e)},t.prototype.incrementalRender=function(e,t,n,r){this._progressiveEls=[],this._isLargeDraw?this._incrementalRenderLarge(e,t):this._incrementalRenderNormal(e,t)},t.prototype.eachRendered=function(e){Rm(this._progressiveEls||this.group,e)},t.prototype._updateDrawMode=function(e){var t=e.pipelineContext.large;(this._isLargeDraw==null||t!==this._isLargeDraw)&&(this._isLargeDraw=t,this._clear())},t.prototype._renderNormal=function(e){var t=e.getData(),n=this._data,r=this.group,i=t.getLayout(`isSimpleBox`),a=e.get(`clip`,!0),o=e.coordinateSystem,s=o.getArea&&o.getArea(),c=a&&aM(o,!1,e);this._data||r.removeAll();var l=lq(e);t.diff(n).add(function(n){if(t.hasValue(n)){var o=t.getItemLayout(n),u=a?OK(s,o):0;if(u===2)return;var d=oq(o,n,l,!0);Xp(d,{shape:{points:o.ends}},e,n),oM(u===1,d,c),sq(d,t,n,i),r.add(d),t.setItemGraphicEl(n,d)}}).update(function(o,u){var d=n.getItemGraphicEl(u);if(!t.hasValue(o)){r.remove(d);return}var f=t.getItemLayout(o),p=a?OK(s,f):0;if(p===2){r.remove(d);return}d?(Yp(d,{shape:{points:f.ends}},e,o),tm(d)):d=oq(f,o,l),sq(d,t,o,i),oM(p===1,d,c),r.add(d),t.setItemGraphicEl(o,d)}).remove(function(e){var t=n.getItemGraphicEl(e);t&&r.remove(t)}).execute(),this._data=t},t.prototype._renderLarge=function(e){this._clear(),fq(e,this.group);var t=e.get(`clip`,!0)?aM(e.coordinateSystem,!1,e):null;oM(!!t,this.group,t)},t.prototype._incrementalRenderNormal=function(e,t){for(var n=t.getData(),r=n.getLayout(`isSimpleBox`),i=lq(t),a;(a=e.next())!=null;){var o=oq(n.getItemLayout(a),a,i);sq(o,n,a,r),o.incremental=hc(t),this.group.add(o),this._progressiveEls.push(o)}},t.prototype._incrementalRenderLarge=function(e,t){fq(t,this.group,this._progressiveEls,!0)},t.prototype.remove=function(e){this._clear()},t.prototype._clear=function(){this.group.removeAll(),oM(!1,this.group,null),this._data=null},t.type=KK,t}(Rb),iq=function(){function e(){}return e}(),aq=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`normalCandlestickBox`,n}return t.prototype.getDefaultShape=function(){return new iq},t.prototype.buildPath=function(e,t){var n=t.points;this.__simpleBox?(e.moveTo(n[4][0],n[4][1]),e.lineTo(n[6][0],n[6][1])):(e.moveTo(n[0][0],n[0][1]),e.lineTo(n[1][0],n[1][1]),e.lineTo(n[2][0],n[2][1]),e.lineTo(n[3][0],n[3][1]),e.closePath(),e.moveTo(n[4][0],n[4][1]),e.lineTo(n[5][0],n[5][1]),e.moveTo(n[6][0],n[6][1]),e.lineTo(n[7][0],n[7][1]))},t}(Su);function oq(e,t,n,r){var i=e.ends;return new aq({shape:{points:r?cq(i,n,e):i},z2:100})}function sq(e,t,n,r){var i=t.getItemModel(n);e.useStyle(t.getItemVisual(n,`style`)),e.style.strokeNoScale=!0;var a=i.getShallow(`cursor`);a&&e.attr(`cursor`,a),e.__simpleBox=r,gf(e,i);var o=t.getItemLayout(n).sign;L(e.states,function(e,t){var n=i.getModel(t),r=$K(o,n),a=eq(o,n)||r,s=e.style||={};r&&(s.fill=r),a&&(s.stroke=a)});var s=i.getModel(`emphasis`);ff(e,s.get(`focus`),s.get(`blurScope`),s.get(`disabled`))}function cq(e,t,n){return R(e,function(e){return e=e.slice(),e[t]=n.initBaseline,e})}function lq(e){return+(e.getWhiskerBoxesLayout()===`horizontal`)}var uq=function(){function e(){}return e}(),dq=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n.type=`largeCandlestickBox`,n}return t.prototype.getDefaultShape=function(){return new uq},t.prototype.buildPath=function(e,t){for(var n=t.points,r=0;rh?x[a]:b[a],ends:w,brushRect:O(g,_,p)})}function E(e,n){var r=[];return r[i]=n,r[a]=e,isNaN(n)||isNaN(e)?[NaN,NaN]:t.dataToPoint(r)}function D(e,t,n){var a=t.slice(),o=t.slice();a[i]=ym(a[i]+r/2,1,!1),o[i]=ym(o[i]-r/2,1,!0),n?e.push(a,o):e.push(o,a)}function O(e,t,n){var o=E(e,n),s=E(t,n);return o[i]-=r/2,s[i]-=r/2,{x:o[0],y:o[1],width:a?r:s[0]-o[0],height:a?s[1]-o[1]:r}}function k(e){return e[i]=ym(e[i],1),e}}function m(n,r){for(var o=Kj(n.count*4),c=0,p,m=[],h=[],g,_=r.getStore(),v=!!e.get([`itemStyle`,`borderColorDoji`]);(g=n.next())!=null;){var y=_.get(s,g),b=_.get(l,g),x=_.get(u,g),S=_.get(d,g),C=_.get(f,g);if(isNaN(y)||isNaN(S)||isNaN(C)){o[c++]=NaN,c+=3;continue}o[c++]=_q(_,g,b,x,u,v),m[i]=y,m[a]=S,p=t.dataToPoint(m,null,h),o[c++]=p?p[0]:NaN,o[c++]=p?p[1]:NaN,m[a]=C,p=t.dataToPoint(m,null,h),o[c++]=p?p[1]:NaN}r.setLayout(`largePoints`,o)}}};function _q(e,t,n,r,i,a){return n>r?-1:n0?e.get(i,t-1)<=r?1:-1:1}function vq(e,t){var n=CO(e.getBaseAxis(),{fromStat:{key:zN(KK)},min:1}).w,r=X(W(e.get(`barMaxWidth`),n),n),i=X(W(e.get(`barMinWidth`),1),n),a=e.get(`barWidth`);return a==null?To(wo(n/2,r),i):X(a,n)}function yq(e){hq(e,function(){var t=zN(KK);dD(e,{key:t,seriesType:KK,getMetrics:VN}),ED(t,RN(t))})}function bq(e){e.registerChartView(rq),e.registerSeriesModel(qK),e.registerPreprocessor(mq),e.registerVisual(tq),e.registerLayout(gq),yq(e)}function xq(e,t){var n=t.rippleEffectColor||t.color;e.eachChild(function(e){e.attr({z:t.z,zlevel:t.zlevel,style:{stroke:t.brushType===`stroke`?n:null,fill:t.brushType===`fill`?n:null}})})}var Sq=function(e){_(t,e);function t(t,n){var r=e.call(this)||this,i=new Nj(t,n),a=new Y;return r.add(i),r.add(a),r.updateData(t,n),r}return t.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},t.prototype.startEffectAnimation=function(e){for(var t=e.symbolType,n=e.color,r=e.rippleNumber,i=this.childAt(1),a=0;a0&&(a=this._getLineLength(r)/c*1e3),a!==this._period||o!==this._loop||s!==this._roundTrip){r.stopAnimation();var u=void 0;u=V(l)?l(n):l,r.__t>0&&(u=-a*r.__t),this._animateSymbol(r,a,u,o,s)}this._period=a,this._loop=o,this._roundTrip=s}},t.prototype._animateSymbol=function(e,t,n,r,i){if(t>0){e.__t=0;var a=this,o=e.animate(``,r).when(i?t*2:t,{__t:i?2:1}).delay(n).during(function(){a._updateSymbolPosition(e)});r||o.done(function(){a.remove(e)}),o.start()}},t.prototype._getLineLength=function(e){return lt(e.__p1,e.__cp1)+lt(e.__cp1,e.__p2)},t.prototype._updateAnimationPoints=function(e,t){e.__p1=t[0],e.__p2=t[1],e.__cp1=t[2]||[(t[0][0]+t[1][0])/2,(t[0][1]+t[1][1])/2]},t.prototype.updateData=function(e,t,n){this.childAt(0).updateData(e,t,n),this._updateEffectSymbol(e,t)},t.prototype._updateSymbolPosition=function(e){var t=e.__p1,n=e.__p2,r=e.__cp1,i=e.__t<=1?e.__t:2-e.__t,a=[e.x,e.y],o=a.slice(),s=br,c=xr;a[0]=s(t[0],r[0],n[0],i),a[1]=s(t[1],r[1],n[1],i);var l=e.__t<=1?c(t[0],r[0],n[0],i):c(n[0],r[0],t[0],1-i),u=e.__t<=1?c(t[1],r[1],n[1],i):c(n[1],r[1],t[1],1-i);e.rotation=-Math.atan2(u,l)-Math.PI/2,(this._symbolType===`line`||this._symbolType===`rect`||this._symbolType===`roundRect`)&&(e.__lastT!==void 0&&e.__lastT=0&&!(r[o]<=t);o--);o=Math.min(o,i-2)}else{for(o=a;ot);o++);o=Math.min(o-1,i-2)}var s=(t-r[o])/(r[o+1]-r[o]),c=n[o],l=n[o+1];e.x=c[0]*(1-s)+s*l[0],e.y=c[1]*(1-s)+s*l[1];var u=e.__t<=1?l[0]-c[0]:c[0]-l[0],d=e.__t<=1?l[1]-c[1]:c[1]-l[1];e.rotation=-Math.atan2(d,u)-Math.PI/2,this._lastFrame=o,this._lastFramePercent=t,e.ignore=!1}},t}(Dq),Aq=function(){function e(){this.polyline=!1,this.curveness=0,this.segs=[]}return e}(),jq=function(e){_(t,e);function t(t){var n=e.call(this,t)||this;return n._off=0,n.hoverDataIdx=-1,n}return t.prototype.reset=function(){this.notClear=!1,this._off=0},t.prototype.beforeBrush=function(e){e&&!e.contentRetained&&this.reset()},t.prototype.getDefaultStyle=function(){return{stroke:Q.color.neutral99,fill:null}},t.prototype.getDefaultShape=function(){return new Aq},t.prototype.buildPath=function(e,t){var n=t.segs,r=t.curveness,i;if(t.polyline)for(i=this._off;i0){e.moveTo(n[i++],n[i++]);for(var o=1;o0){var d=(s+l)/2-(c-u)*r,f=(c+u)/2-(l-s)*r;e.quadraticCurveTo(d,f,l,u)}else e.lineTo(l,u)}this.incremental&&(this._off=i,this.notClear=!0)},t.prototype.findDataIndex=function(e,t){var n=this.shape,r=n.segs,i=n.curveness,a=this.style.lineWidth;if(n.polyline)for(var o=0,s=0;s0)for(var l=r[s++],u=r[s++],d=1;d0){if(eu(l,u,(l+f)/2-(u-p)*i,(u+p)/2-(f-l)*i,f,p,a,e,t))return o}else if(Ql(l,u,f,p,a,e,t))return o;o++}return-1},t.prototype.contain=function(e,t){var n=this.transformCoordToLocal(e,t),r=this.getBoundingRect();return e=n[0],t=n[1],r.contain(e,t)?(this.hoverDataIdx=this.findDataIndex(e,t))>=0:(this.hoverDataIdx=-1,!1)},t.prototype.getBoundingRect=function(){var e=this._rect;if(!e){for(var t=this.shape.segs,n=1/0,r=1/0,i=-1/0,a=-1/0,o=0;o0&&(a.dataIndex=n+e.__startIndex)})},e.prototype._clear=function(){this._newAdded=[],this.group.removeAll()},e}(),Nq={seriesType:`lines`,plan:Fb(),reset:function(e){var t=e.coordinateSystem;if(t){var n=e.get(`polyline`),r=e.pipelineContext.large;return{progress:function(i,a){var o=[];if(r){var s=void 0,c=i.end-i.start;if(n){for(var l=0,u=i.start;u0&&c&&s.configLayer(a,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(o/10+.9,1),0)}),i.updateData(r);var l=e.get(`clip`,!0)&&aM(e.coordinateSystem,!1,e);l?this.group.setClipPath(l):this.group.removeClipPath(),this._lastZlevel=a,this._finished=!0},t.prototype.incrementalPrepareRender=function(e,t,n){var r=e.getData();this._updateLineDraw(r,e).incrementalPrepareUpdate(r),this._clearLayer(n),this._finished=!1},t.prototype.incrementalRender=function(e,t,n){this._lineDraw.incrementalUpdate(e,t.getData(),hc(t)),this._finished=e.end===t.getData().count()},t.prototype.eachRendered=function(e){this._lineDraw&&this._lineDraw.eachRendered(e)},t.prototype.updateTransform=function(e,t,n){var r=e.getData(),i=this._lineDraw;if(!this._finished||!i||!i.updateLayout)return{update:!0};var a=Nq.reset(e,t,n);a.progress&&a.progress({start:0,end:r.count(),count:r.count()},r),i.updateLayout(),this._clearLayer(n)},t.prototype._updateLineDraw=function(e,t){var n=this._lineDraw,r=this._showEffect(t),i=!!t.get(`polyline`),a=t.pipelineContext.large;return(!n||r!==this._hasEffet||i!==this._isPolyline||a!==this._isLargeDraw)&&(n&&n.remove(),n=this._lineDraw=a?new Mq:new cU(i?r?kq:Oq:r?Dq:sU),this._hasEffet=r,this._isPolyline=i,this._isLargeDraw=a),this.group.add(n.group),n},t.prototype._showEffect=function(e){return!!e.get([`effect`,`show`])},t.prototype._clearLayer=function(e){var t=Xm(e);t&&this._lastZlevel!=null&&t.getLayer(this._lastZlevel).clear(!0)},t.prototype.remove=function(e,t){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(t)},t.prototype.dispose=function(e,t){this.remove(e,t)},t.type=`lines`,t}(Rb),Fq=typeof Uint32Array>`u`?Array:Uint32Array,Iq=typeof Float64Array>`u`?Array:Float64Array;function Lq(e){var t=e.data;t&&t[0]&&t[0][0]&&t[0][0].coord&&(e.data=R(t,function(e){var t={coords:[e[0].coord,e[1].coord]};return e[0].name&&(t.fromName=e[0].name),e[1].name&&(t.toName=e[1].name),de([t,e[0],e[1]])}))}var Rq=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.visualStyleAccessPath=`lineStyle`,n.visualDrawType=`stroke`,n}return t.prototype.init=function(t){t.data=t.data||[],Lq(t);var n=this._processFlatCoordsArray(t.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(t.data=new Float32Array(n.count)),e.prototype.init.apply(this,arguments)},t.prototype.mergeOption=function(t){if(Lq(t),t.data){var n=this._processFlatCoordsArray(t.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(t.data=new Float32Array(n.count))}e.prototype.mergeOption.apply(this,arguments)},t.prototype.appendData=function(e){var t=this._processFlatCoordsArray(e.data);t.flatCoords&&(this._flatCoords?(this._flatCoords=We(this._flatCoords,t.flatCoords),this._flatCoordsOffset=We(this._flatCoordsOffset,t.flatCoordsOffset)):(this._flatCoords=t.flatCoords,this._flatCoordsOffset=t.flatCoordsOffset),e.data=new Float32Array(t.count)),this.getRawData().appendData(e.data)},t.prototype._getCoordsFromItemModel=function(e){var t=this.getData().getItemModel(e);return t.option instanceof Array?t.option:t.getShallow(`coords`)},t.prototype.getLineCoordsCount=function(e){return this._flatCoordsOffset?this._flatCoordsOffset[e*2+1]:this._getCoordsFromItemModel(e).length},t.prototype.getLineCoords=function(e,t){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[e*2],r=this._flatCoordsOffset[e*2+1],i=0;i `)}return ib(`nameValue`,{name:o,value:i,noValue:i==null||isNaN(i)})},t.prototype.preventIncremental=function(){return!!this.get([`effect`,`show`])},t.prototype.getProgressive=function(){return this.option.progressive??(this.option.large?1e4:this.get(`progressive`))},t.prototype.getProgressiveThreshold=function(){return this.option.progressiveThreshold??(this.option.large?2e4:this.get(`progressiveThreshold`))},t.prototype.getZLevelKey=function(){var e=this.getModel(`effect`),t=e.get(`trailLength`);return this.getData().count()>this.getProgressiveThreshold()?this.id:e.get(`show`)&&t>0?t+``:``},t.type=`series.lines`,t.dependencies=[`grid`,`polar`,`geo`,`calendar`],t.defaultOption={coordinateSystem:`geo`,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:[`none`,`none`],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:`circle`,symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:`end`},lineStyle:{opacity:.5}},t}(Tb);function zq(e){return e instanceof Array||(e=[e,e]),e}var Bq={seriesType:`lines`,reset:function(e){var t=zq(e.get(`symbol`)),n=zq(e.get(`symbolSize`)),r=e.getData();r.setVisual(`fromSymbol`,t&&t[0]),r.setVisual(`toSymbol`,t&&t[1]),r.setVisual(`fromSymbolSize`,n&&n[0]),r.setVisual(`toSymbolSize`,n&&n[1]);function i(e,t){var n=e.getItemModel(t),r=zq(n.getShallow(`symbol`,!0)),i=zq(n.getShallow(`symbolSize`,!0));r[0]&&e.setItemVisual(t,`fromSymbol`,r[0]),r[1]&&e.setItemVisual(t,`toSymbol`,r[1]),i[0]&&e.setItemVisual(t,`fromSymbolSize`,i[0]),i[1]&&e.setItemVisual(t,`toSymbolSize`,i[1])}return{dataEach:r.hasItemOption?i:null}}};function Vq(e){e.registerChartView(Pq),e.registerSeriesModel(Rq),e.registerLayout(Nq),e.registerVisual(Bq)}var Hq=256,Uq=function(){function e(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var e=D.createCanvas();this.canvas=e}return e.prototype.update=function(e,t,n,r,i,a){var o=this._getBrush(),s=this._getGradient(i,`inRange`),c=this._getGradient(i,`outOfRange`),l=this.pointSize+this.blurSize,u=this.canvas,d=u.getContext(`2d`),f=e.length;u.width=t,u.height=n;for(var p=0;p0){var E=a(v)?s:c;v>0&&(v=v*w+C),b[x++]=E[T],b[x++]=E[T+1],b[x++]=E[T+2],b[x++]=E[T+3]*v*256}else x+=4}return d.putImageData(y,0,0),u},e.prototype._getBrush=function(){var e=this._brushCanvas||=D.createCanvas(),t=this.pointSize+this.blurSize,n=t*2;e.width=n,e.height=n;var r=e.getContext(`2d`);return r.clearRect(0,0,n,n),r.shadowOffsetX=n,r.shadowBlur=this.blurSize,r.shadowColor=Q.color.neutral99,r.beginPath(),r.arc(-t,t,this.pointSize,0,Math.PI*2,!0),r.closePath(),r.fill(),e},e.prototype._getGradient=function(e,t){for(var n=this._gradientPixels,r=n[t]||(n[t]=new Uint8ClampedArray(256*4)),i=[0,0,0,0],a=0,o=0;o<256;o++)e[t](o/255,!0,i),r[a++]=i[0],r[a++]=i[1],r[a++]=i[2],r[a++]=i[3];return r},e}();function Wq(e,t,n){var r=e[1]-e[0];t=R(t,function(t){return{interval:[(t.interval[0]-e[0])/r,(t.interval[1]-e[0])/r]}});var i=t.length,a=0;return function(e){var r;for(r=a;r=0;r--){var o=t[r].interval;if(o[0]<=e&&e<=o[1]){a=r;break}}return r>=0&&r=t[0]&&e<=t[1]}}var Kq=function(e){_(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.eachComponent(`visualMap`,function(t){t.eachTargetSeries(function(n){n===e&&(r=t)})}),this._progressiveEls=null,this.group.removeAll();var i=e.coordinateSystem;i.type===`cartesian2d`||i.type===`calendar`||i.type===`matrix`?this._renderOnGridLike(e,n,0,e.getData().count()):lM(i)&&this._renderOnGeo(i,e,r,n)},t.prototype.incrementalPrepareRender=function(e,t,n){this.group.removeAll()},t.prototype.incrementalRender=function(e,t,n,r){var i=t.coordinateSystem;i&&(lM(i)?this.render(t,n,r):(this._progressiveEls=[],this._renderOnGridLike(t,r,e.start,e.end,!0)))},t.prototype.eachRendered=function(e){Rm(this._progressiveEls||this.group,e)},t.prototype._renderOnGridLike=function(e,t,n,r,i){var a=e.coordinateSystem,o=cM(a,`cartesian2d`),s=cM(a,`matrix`),c,l,u,d;if(o){var f=a.getAxis(`x`),p=a.getAxis(`y`);c=CO(f).w+.5,l=CO(p).w+.5,u=f.scale.getExtent(),d=p.scale.getExtent()}for(var m=this.group,h=e.getData(),g=e.getModel([`emphasis`,`itemStyle`]).getItemStyle(),_=e.getModel([`blur`,`itemStyle`]).getItemStyle(),v=e.getModel([`select`,`itemStyle`]).getItemStyle(),y=e.get([`itemStyle`,`borderRadius`]),b=th(e),x=e.getModel(`emphasis`),S=x.get(`focus`),C=x.get(`blurScope`),w=x.get(`disabled`),T=o||s?[h.mapDimension(`x`),h.mapDimension(`y`),h.mapDimension(`value`)]:[h.mapDimension(`time`),h.mapDimension(`value`)],E=n;Eu[1]||Ad[1])continue;var j=a.dataToPoint([k,A]);D=new Iu({shape:{x:j[0]-c/2,y:j[1]-l/2,width:c,height:l},style:O})}else if(s){var ee=a.dataToLayout([h.get(T[0],E),h.get(T[1],E)]).rect;if(Ae(ee.x))continue;D=new Iu({z2:1,shape:ee,style:O})}else{if(isNaN(h.get(T[1],E)))continue;var te=a.dataToLayout([h.get(T[0],E)]),ee=te.contentRect||te.rect;if(Ae(ee.x)||Ae(ee.y))continue;D=new Iu({z2:1,shape:ee,style:O})}if(h.hasItemOption){var ne=h.getItemModel(E),re=ne.getModel(`emphasis`);g=re.getModel(`itemStyle`).getItemStyle(),_=ne.getModel([`blur`,`itemStyle`]).getItemStyle(),v=ne.getModel([`select`,`itemStyle`]).getItemStyle(),y=ne.get([`itemStyle`,`borderRadius`]),S=re.get(`focus`),C=re.get(`blurScope`),w=re.get(`disabled`),b=th(ne)}D.shape.r=y;var ie=e.getRawValue(E),ae=`-`;ie&&ie[2]!=null&&(ae=ie[2]+``),eh(D,b,{labelFetcher:e,labelDataIndex:E,defaultOpacity:O.opacity,defaultText:ae}),D.ensureState(`emphasis`).style=g,D.ensureState(`blur`).style=_,D.ensureState(`select`).style=v,ff(D,S,C,w),D.incremental=hc(e,i),i&&(D.states.emphasis.hoverLayer=2),m.add(D),h.setItemGraphicEl(E,D),this._progressiveEls&&this._progressiveEls.push(D)}},t.prototype._renderOnGeo=function(e,t,n,r){var i=n.targetVisuals.inRange,a=n.targetVisuals.outOfRange,o=t.getData(),s=this._hmLayer||this._hmLayer||new Uq;s.blurSize=t.get(`blurSize`),s.pointSize=t.get(`pointSize`),s.minOpacity=t.get(`minOpacity`),s.maxOpacity=t.get(`maxOpacity`);var c=e.getViewRect().clone(),l=e.getRoamTransform();c.applyTransform(l);var u=Math.max(c.x,0),d=Math.max(c.y,0),f=Math.min(c.width+c.x,r.getWidth()),p=Math.min(c.height+c.y,r.getHeight()),m=f-u,h=p-d,g=[o.mapDimension(`lng`),o.mapDimension(`lat`),o.mapDimension(`value`)],_=o.mapArray(g,function(t,n,r){var i=e.dataToPoint([t,n]);return i[0]-=u,i[1]-=d,i.push(r),i}),v=n.getExtent(),y=n.type===`visualMap.continuous`?Gq(v,n.option.range):Wq(v,n.getPieceList(),n.option.selected);s.update(_,m,h,i.color.getNormalizer(),{inRange:i.color.getColorMapper(),outOfRange:a.color.getColorMapper()},y);var b=new Ou({style:{width:m,height:h,x:u,y:d,image:s.canvas},silent:!0});this.group.add(b)},t.type=`heatmap`,t}(Rb),qq=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.getInitialData=function(e,t){return ET(null,this,{generateCoord:`value`})},t.prototype.preventIncremental=function(){var e=Wg.get(this.get(`coordinateSystem`));if(e&&e.dimensions)return e.dimensions[0]===`lng`&&e.dimensions[1]===`lat`},t.type=`series.heatmap`,t.dependencies=[`grid`,`geo`,`calendar`,`matrix`],t.defaultOption={coordinateSystem:`cartesian2d`,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:Q.color.primary}}},t}(Tb);function Jq(e){e.registerChartView(Kq),e.registerSeriesModel(qq)}var Yq=[`itemStyle`,`borderWidth`],Xq=[{xy:`x`,wh:`width`,index:0,posDesc:[`left`,`right`]},{xy:`y`,wh:`height`,index:1,posDesc:[`top`,`bottom`]}],Zq=new Jf,Qq=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=HN,t}return t.prototype.render=function(e,t,n){var r=this.group,i=e.getData(),a=this._data,o=e.coordinateSystem,s=o.getBaseAxis().isHorizontal(),c=o.master.getRect(),l={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:e,coordSys:o,coordSysExtent:[[c.x,c.x+c.width],[c.y,c.y+c.height]],isHorizontal:s,valueDim:Xq[+s],categoryDim:Xq[1-s]};i.diff(a).add(function(e){if(i.hasValue(e)){var t=$q(i,e,uJ(i,e),l),n=pJ(i,l,t);i.setItemGraphicEl(e,n),r.add(n),yJ(n,l,t)}}).update(function(e,t){var n=a.getItemGraphicEl(t);if(!i.hasValue(e)){r.remove(n);return}var o=$q(i,e,uJ(i,e),l),s=gJ(i,o);n&&s!==n.__pictorialShapeStr&&(r.remove(n),i.setItemGraphicEl(e,null),n=null),n?mJ(n,l,o):n=pJ(i,l,o,!0),i.setItemGraphicEl(e,n),n.__pictorialSymbolMeta=o,r.add(n),yJ(n,l,o)}).remove(function(e){var t=a.getItemGraphicEl(e);t&&hJ(a,e,t.__pictorialSymbolMeta.animationModel,t)}).execute();var u=e.get(`clip`,!0)?aM(e.coordinateSystem,!1,e):null;return u?r.setClipPath(u):r.removeClipPath(),this._data=i,this.group},t.prototype.remove=function(e,t){var n=this.group,r=this._data;e.get(`animation`)?r&&r.eachItemGraphicEl(function(t){hJ(r,Z(t).dataIndex,e,t)}):n.removeAll()},t.type=HN,t}(Rb);function $q(e,t,n,r){var i=e.getItemLayout(t),a=n.get(`symbolRepeat`),o=n.get(`symbolClip`),s=n.get(`symbolPosition`)||`start`,c=(n.get(`symbolRotate`)||0)*Math.PI/180||0,l=n.get(`symbolPatternSize`)||2,u=n.isAnimationEnabled(),d={dataIndex:t,layout:i,itemModel:n,symbolType:e.getItemVisual(t,`symbol`)||`circle`,style:e.getItemVisual(t,`style`),symbolClip:o,symbolRepeat:a,symbolRepeatDirection:n.get(`symbolRepeatDirection`),symbolPatternSize:l,rotation:c,animationModel:u?n:null,hoverScale:u&&n.get([`emphasis`,`scale`]),z2:n.getShallow(`z`,!0)||0};eJ(n,a,i,r,d),nJ(e,t,i,a,o,d.boundingLength,d.pxSign,l,r,d),rJ(n,d.symbolScale,c,r,d);var f=d.symbolSize;return iJ(n,f,i,a,o,cS(n.get(`symbolOffset`),f),s,d.valueLineWidth,d.boundingLength,d.repeatCutLength,r,d),d}function eJ(e,t,n,r,i){var a=r.valueDim,o=e.get(`symbolBoundingData`),s=r.coordSys.getOtherAxis(r.coordSys.getBaseAxis()),c=s.toGlobalCoord(s.dataToCoord(0)),l=1-(n[a.wh]<=0),u;if(B(o)){var d=[tJ(s,o[0])-c,tJ(s,o[1])-c];d[1]=0?1:-1:u>0?1:-1}function tJ(e,t){return e.toGlobalCoord(e.dataToCoord(e.scale.parse(t)))}function nJ(e,t,n,r,i,a,o,s,c,l){var u=c.valueDim,d=c.categoryDim,f=Math.abs(n[d.wh]),p=e.getItemVisual(t,`symbolSize`),m=B(p)?p.slice():p==null?[`100%`,`100%`]:[p,p];m[d.index]=X(m[d.index],f),m[u.index]=X(m[u.index],r?f:Math.abs(a)),l.symbolSize=m;var h=l.symbolScale=[m[0]/s,m[1]/s];h[u.index]*=(c.isHorizontal?-1:1)*o}function rJ(e,t,n,r,i){var a=e.get(Yq)||0;a&&(Zq.attr({scaleX:t[0],scaleY:t[1],rotation:n}),Zq.updateTransform(),a/=Zq.getLineScale(),a*=t[r.valueDim.index]),i.valueLineWidth=a||0}function iJ(e,t,n,r,i,a,o,s,c,l,u,d){var f=u.categoryDim,p=u.valueDim,m=d.pxSign,h=Math.max(t[p.index]+s,0),g=h;if(r){var _=Math.abs(c),v=je(e.get(`symbolMargin`),`15%`)+``,y=!1;v.lastIndexOf(`!`)===v.length-1&&(y=!0,v=v.slice(0,v.length-1));var b=X(v,t[p.index]),x=Math.max(h+b*2,0),S=y?0:b*2,C=is(r),w=C?r:bJ((_+S)/x);b=(_-w*h)/2/(y?w:Math.max(w-1,1)),x=h+b*2,S=y?0:b*2,!C&&r!==`fixed`&&(w=l?bJ((Math.abs(l)+S)/x):0),g=w*x-S,d.repeatTimes=w,d.symbolMargin=b}var T=g/2*m,E=d.pathPosition=[];E[f.index]=n[f.wh]/2,E[p.index]=o===`start`?T:o===`end`?c-T:c/2,a&&(E[0]+=a[0],E[1]+=a[1]);var D=d.bundlePosition=[];D[f.index]=n[f.xy],D[p.index]=n[p.xy];var O=d.barRectShape=P({},n);O[p.wh]=m*Math.max(Math.abs(n[p.wh]),Math.abs(E[p.index]+T)),O[f.wh]=n[f.wh];var k=d.clipShape={};k[f.xy]=-n[f.xy],k[f.wh]=u.ecSize[f.wh],k[p.xy]=0,k[p.wh]=n[p.wh]}function aJ(e){var t=e.symbolPatternSize,n=oS(e.symbolType,-t/2,-t/2,t,t);return n.attr({culling:!0}),n.type!==`image`&&n.setStyle({strokeNoScale:!0}),n}function oJ(e,t,n,r){var i=e.__pictorialBundle,a=n.symbolSize,o=n.valueLineWidth,s=n.pathPosition,c=t.valueDim,l=n.repeatTimes||0,u=0,d=a[t.valueDim.index]+o+n.symbolMargin*2;for(_J(e,function(e){e.__pictorialAnimationIndex=u,e.__pictorialRepeatTimes=l,u0:r<0)&&(i=l-1-e),t[c.index]=d*(i-l/2+.5)+s[c.index],{x:t[0],y:t[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function sJ(e,t,n,r){var i=e.__pictorialBundle,a=e.__pictorialMainPath;a?vJ(a,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,r):(a=e.__pictorialMainPath=aJ(n),i.add(a),vJ(a,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,r))}function cJ(e,t,n){var r=P({},t.barRectShape),i=e.__pictorialBarRect;i?vJ(i,null,{shape:r},t,n):(i=e.__pictorialBarRect=new Iu({z2:2,shape:r,silent:!0,style:{stroke:`transparent`,fill:`transparent`,lineWidth:0}}),i.disableMorphing=!0,e.add(i))}function lJ(e,t,n,r){if(n.symbolClip){var i=e.__pictorialClipPath,a=P({},n.clipShape),o=t.valueDim,s=n.animationModel,c=n.dataIndex;if(i)Yp(i,{shape:a},s,c);else{a[o.wh]=0,i=new Iu({shape:a}),e.__pictorialBundle.setClipPath(i),e.__pictorialClipPath=i;var l={};l[o.wh]=n.clipShape[o.wh],rm[r?`updateProps`:`initProps`](i,{shape:l},s,c)}}}function uJ(e,t){var n=e.getItemModel(t);return n.getAnimationDelayParams=dJ,n.isAnimationEnabled=fJ,n}function dJ(e){return{index:e.__pictorialAnimationIndex,count:e.__pictorialRepeatTimes}}function fJ(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow(`animation`)}function pJ(e,t,n,r){var i=new Y,a=new Y;return i.add(a),i.__pictorialBundle=a,a.x=n.bundlePosition[0],a.y=n.bundlePosition[1],n.symbolRepeat?oJ(i,t,n):sJ(i,t,n),cJ(i,n,r),lJ(i,t,n,r),i.__pictorialShapeStr=gJ(e,n),i.__pictorialSymbolMeta=n,i}function mJ(e,t,n){var r=n.animationModel,i=n.dataIndex,a=e.__pictorialBundle;Yp(a,{x:n.bundlePosition[0],y:n.bundlePosition[1]},r,i),n.symbolRepeat?oJ(e,t,n,!0):sJ(e,t,n,!0),cJ(e,n,!0),lJ(e,t,n,!0)}function hJ(e,t,n,r){var i=r.__pictorialBarRect;i&&i.removeTextContent();var a=[];_J(r,function(e){a.push(e)}),r.__pictorialMainPath&&a.push(r.__pictorialMainPath),r.__pictorialClipPath&&(n=null),L(a,function(e){Qp(e,{scaleX:0,scaleY:0},n,t,function(){r.parent&&r.parent.remove(r)})}),e.setItemGraphicEl(t,null)}function gJ(e,t){return[e.getItemVisual(t.dataIndex,`symbol`)||`none`,!!t.symbolRepeat,!!t.symbolClip].join(`:`)}function _J(e,t,n){L(e.__pictorialBundle.children(),function(r){r!==e.__pictorialBarRect&&t.call(n,r)})}function vJ(e,t,n,r,i,a){t&&e.attr(t),r.symbolClip&&!i?n&&e.attr(n):n&&rm[i?`updateProps`:`initProps`](e,n,r.animationModel,r.dataIndex,a)}function yJ(e,t,n){var r=n.dataIndex,i=n.itemModel,a=i.getModel(`emphasis`),o=a.getModel(`itemStyle`).getItemStyle(),s=i.getModel([`blur`,`itemStyle`]).getItemStyle(),c=i.getModel([`select`,`itemStyle`]).getItemStyle(),l=i.getShallow(`cursor`),u=a.get(`focus`),d=a.get(`blurScope`),f=a.get(`scale`);_J(e,function(e){if(e instanceof Ou){var t=e.style;e.useStyle(P({image:t.image,x:t.x,y:t.y,width:t.width,height:t.height},n.style))}else e.useStyle(n.style);var r=e.ensureState(`emphasis`);r.style=o,f&&(r.scaleX=e.scaleX*1.1,r.scaleY=e.scaleY*1.1),e.ensureState(`blur`).style=s,e.ensureState(`select`).style=c,l&&(e.cursor=l),e.z2=n.z2});var p=t.valueDim.posDesc[+(n.boundingLength>0)],m=e.__pictorialBarRect;m.ignoreClip=!0,eh(m,th(i),{labelFetcher:t.seriesModel,labelDataIndex:r,defaultText:jj(t.seriesModel.getData(),r),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:p}),ff(e,u,d,a.get(`disabled`))}function bJ(e){var t=Math.round(e);return Math.abs(e-t)<1e-4?t:Math.ceil(e)}var xJ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.hasSymbolVisual=!0,n.defaultSymbol=`roundRect`,n}return t.prototype.getInitialData=function(t){return t.stack=null,e.prototype.getInitialData.apply(this,arguments)},t.type=`series.`+HN,t.dependencies=[`grid`],t.defaultOption=Ah(sP.defaultOption,{symbol:`circle`,symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:`end`,symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:`-100%`,clip:!1,progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:Q.color.primary}}}),t}(sP);function SJ(e){e.registerChartView(Qq),e.registerSeriesModel(xJ),e.registerLayout(e.PRIORITY.VISUAL.LAYOUT,nP(HN)),e.registerLayout(e.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,rP(HN)),oP(e)}var CJ=2,wJ=`themeRiver`,TJ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t){e.prototype.init.apply(this,arguments),this.legendVisualProvider=new WP(z(this.getData,this),z(this.getRawData,this))},t.prototype.fixData=function(e){var t=e.length,n={},r=Zs(e,function(e){return n.hasOwnProperty(e[0]+``)||(n[e[0]+``]=-1),e[2]}),i=[];r.buckets.each(function(e,t){i.push({name:t,dataList:e})});for(var a=i.length,o=0;oa&&(a=s),r.push(s)}for(var l=0;la&&(a=d)}return{y0:i,max:a}}function MJ(e){e.registerChartView(EJ),e.registerSeriesModel(TJ),e.registerLayout(OJ),e.registerProcessor(HP(wJ))}var NJ=2,PJ=4,FJ=function(e){_(t,e);function t(t,n,r,i){var a=e.call(this)||this;a.z2=NJ,a.textConfig={inside:!0},Z(a).seriesIndex=n.seriesIndex;var o=new Vu({z2:PJ,silent:t.getModel().get([`label`,`silent`])});return a.setTextContent(o),a.updateData(!0,t,n,r,i),a}return t.prototype.updateData=function(e,t,n,r,i){this.node=t,t.piece=this,n||=this._seriesModel,r||=this._ecModel;var a=this;Z(a).dataIndex=t.dataIndex;var o=t.getModel(),s=o.getModel(`emphasis`),c=t.getLayout(),l=P({},c);l.label=null;var u=t.getVisual(`style`);u.lineJoin=`bevel`;var d=t.getVisual(`decal`);d&&(u.decal=YS(d,i)),P(l,hP(o.getModel(`itemStyle`),l,!0)),L(yd,function(e){var t=a.ensureState(e),n=o.getModel([e,`itemStyle`]);t.style=n.getItemStyle();var r=hP(n,l);r&&(t.shape=r)}),e?(a.setShape(l),a.shape.r=c.r0,Xp(a,{shape:{r:c.r}},n,t.dataIndex)):(Yp(a,{shape:l},n),tm(a)),a.useStyle(u),this._updateLabel(n);var f=o.getShallow(`cursor`);f&&a.attr(`cursor`,f),this._seriesModel=n||this._seriesModel,this._ecModel=r||this._ecModel;var p=s.get(`focus`),m=p===`relative`?We(t.getAncestorsIndices(),t.getDescendantIndices()):p===`ancestor`?t.getAncestorsIndices():p===`descendant`?t.getDescendantIndices():p;ff(this,m,s.get(`blurScope`),s.get(`disabled`))},t.prototype._updateLabel=function(e){var t=this,n=this.node.getModel(),r=n.getModel(`label`),i=this.node.getLayout(),a=i.endAngle-i.startAngle,o=(i.startAngle+i.endAngle)/2,s=Math.cos(o),c=Math.sin(o),l=this,u=l.getTextContent(),d=this.node.dataIndex,f=r.get(`minAngle`)/180*Math.PI;u.ignore=!(r.get(`show`)&&!(f!=null&&Math.abs(a)T&&!Yo(D-T)&&D0?(i.virtualPiece?i.virtualPiece.updateData(!1,r,e,t,n):(i.virtualPiece=new FJ(r,e,t,n),c.add(i.virtualPiece)),a.piece.off(`click`),i.virtualPiece.on(`click`,function(e){i._rootToNode(a.parentNode)})):i.virtualPiece&&=(c.remove(i.virtualPiece),null)}},t.prototype._initEvents=function(){var e=this;this.group.off(`click`),this.group.on(`click`,function(t){var n=!1;e.seriesModel.getViewRoot().eachNode(function(r){if(!n&&r.piece&&r.piece===t.target){var i=r.getModel().get(`nodeClick`);if(i===`rootToNode`)e._rootToNode(r);else if(i===`link`){var a=r.getModel(),o=a.get(`link`);o&&Vg(o,a.get(`target`,!0)||`_blank`)}n=!0}})})},t.prototype._rootToNode=function(e){e!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:zJ,from:this.uid,seriesId:this.seriesModel.id,targetNode:e})},t.prototype.containPoint=function(e,t){var n=t.getData().getItemLayout(0);if(n){var r=e[0]-n.cx,i=e[1]-n.cy,a=Math.sqrt(r*r+i*i);return a<=n.r&&a>=n.r0}},t.type=IJ,t}(Rb),WJ=_c(IJ,GJ);function GJ(e){var t={};function n(e,n,r){if(e.depth===0)return Q.color.neutral50;for(var i=e;i&&i.depth>1;)i=i.parentNode;var a=n.getColorFromPalette(i.name||i.dataIndex+``,t);return e.depth>1&&H(a)&&(a=Yr(a,(e.depth-1)/(r-1)*.5)),a}e.eachSeriesByType(IJ,function(e){var t=e.getData(),r=t.tree;r.eachNode(function(i){var a=i.getModel().getModel(`itemStyle`).getItemStyle();a.fill||=n(i,e,r.root.height),P(t.ensureUniqueItemVisual(i.dataIndex,`style`),a)})})}var KJ=Math.PI/180,qJ=_c(IJ,JJ);function JJ(e,t){e.eachSeriesByType(IJ,function(e){var n=e.get(`center`),r=e.get(`radius`);B(r)||(r=[0,r]),B(n)||(n=[n,n]);var i=t.getWidth(),a=t.getHeight(),o=Math.min(i,a),s=X(n[0],i),c=X(n[1],a),l=X(r[0],o/2),u=X(r[1],o/2),d=-e.get(`startAngle`)*KJ,f=e.get(`minAngle`)*KJ,p=e.getData().tree.root,m=e.getViewRoot(),h=m.depth,g=e.get(`sort`);g!=null&&YJ(m,g);var _=0;L(m.children,function(e){!isNaN(e.getValue())&&_++});var v=m.getValue(),y=Math.PI/(v||_)*2,b=m.depth>0,x=m.height-(b?-1:1),S=(u-l)/(x||1),C=e.get(`clockwise`),w=e.get(`stillShowZeroSum`),T=C?1:-1,E=function(t,n){if(t){var r=n;if(t!==p){var i=t.getValue(),a=v===0&&w?y:i*y;ar[1]&&r.reverse(),{coordSys:{type:`polar`,cx:e.cx,cy:e.cy,r:r[1],r0:r[0]},api:{coord:function(r){var i=t.dataToRadius(r[0]),a=n.dataToAngle(r[1]),o=e.coordToPoint([i,a]);return o.push(i,a*Math.PI/180),o},size:z(cY,e)}}}function uY(e){var t=e.getRect(),n=e.getRangeInfo();return{coordSys:{type:`calendar`,x:t.x,y:t.y,width:t.width,height:t.height,cellWidth:e.getCellWidth(),cellHeight:e.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(t,n){return e.dataToPoint(t,n)},layout:function(t,n){return e.dataToLayout(t,n)}}}}function dY(e){var t=e.getRect();return{coordSys:{type:`matrix`,x:t.x,y:t.y,width:t.width,height:t.height},api:{coord:function(t,n){return e.dataToPoint(t,n)},layout:function(t,n){return e.dataToLayout(t,n)}}}}var fY={position:[`x`,`y`],scale:[`scaleX`,`scaleY`],origin:[`originX`,`originY`]},pY=ye(fY);ge(ja,function(e,t){return e[t]=1,e},{}),ja.join(`, `);var mY=[``,`style`,`shape`,`extra`],hY=Bs();function gY(e,t,n,r,i){var a=e+`Animation`,o=qp(e,r,i)||{},s=hY(t).userDuring;return o.duration>0&&(o.during=s?z(EY,{el:t,userDuring:s}):null,o.setToFinal=!0,o.scope=e),P(o,n[a]),o}function _Y(e,t,n,r){r||={};var i=r.dataIndex,a=r.isInit,o=r.clearStyle,s=n.isAnimationEnabled(),c=hY(e),l=t.style;c.userDuring=t.during;var u={},d={};if(AY(e,t,d),e.type===`compound`)for(var f=e.shape.paths,p=t.shape.paths,m=0;m0&&e.animateFrom(g,_)}else SY(e,t,i||0,n,u);vY(e,t),l?e.dirty():e.markRedraw()}function vY(e,t){for(var n=hY(e).leaveToProps,r=0;r0&&e.animateFrom(i,a)}}function CY(e,t){K(t,`silent`)&&(e.silent=t.silent),K(t,`ignore`)&&(e.ignore=t.ignore),e instanceof ml&&K(t,`invisible`)&&(e.invisible=t.invisible),e instanceof Su&&K(t,`autoBatch`)&&(e.autoBatch=t.autoBatch)}var wY={},TY={setTransform:function(e,t){return wY.el[e]=t,this},getTransform:function(e){return wY.el[e]},setShape:function(e,t){var n=wY.el,r=n.shape||={};return r[e]=t,n.dirtyShape&&n.dirtyShape(),this},getShape:function(e){var t=wY.el.shape;if(t)return t[e]},setStyle:function(e,t){var n=wY.el,r=n.style;return r&&(r[e]=t,n.dirtyStyle&&n.dirtyStyle()),this},getStyle:function(e){var t=wY.el.style;if(t)return t[e]},setExtra:function(e,t){var n=wY.el.extra||(wY.el.extra={});return n[e]=t,this},getExtra:function(e){var t=wY.el.extra;if(t)return t[e]}};function EY(){var e=this,t=e.el;if(t){var n=hY(t).userDuring,r=e.userDuring;if(n!==r){e.el=e.userDuring=null;return}wY.el=t,r(TY)}}function DY(e,t,n,r){var i=n[e];if(i){var a=t[e],o;if(a){var s=n.transition,c=i.transition;if(c)if(!o&&(o=r[e]={}),bY(c))P(o,a);else for(var l=vs(c),u=0;u=0){!o&&(o=r[e]={});for(var p=ye(a),u=0;u=0)){var f=e.getAnimationStyleProps(),p=f?f.style:null;if(p){!a&&(a=r.style={});for(var m=ye(n),l=0;l=0?t.getStore().get(i,n):void 0}var a=t.get(r.name,n),o=r&&r.ordinalMeta;return o?o.categories[a]:a}function C(n,r){r??=u;var i=t.getItemVisual(r,`style`),a=i&&i.fill,o=i&&i.opacity,s=y(r,RY).getItemStyle();a!=null&&(s.fill=a),o!=null&&(s.opacity=o);var c={inheritColor:H(a)?a:Q.color.neutral99},l=b(r,RY),d=nh(l,null,c,!1,!0);d.text=l.getShallow(`show`)?W(e.getFormattedLabel(r,RY),jj(t,r)):null;var f=rh(l,c,!1);return E(n,s),s=pM(s,d,f),n&&T(s,n),s.legacy=!0,s}function w(n,r){r??=u;var i=y(r,LY).getItemStyle(),a=b(r,LY),o=nh(a,null,null,!0,!0);o.text=a.getShallow(`show`)?Me(e.getFormattedLabel(r,LY),e.getFormattedLabel(r,RY),jj(t,r)):null;var s=rh(a,null,!0);return E(n,i),i=pM(i,o,s),n&&T(i,n),i.legacy=!0,i}function T(e,t){for(var n in t)K(t,n)&&(e[n]=t[n])}function E(e,t){e&&(e.textFill&&(t.textFill=e.textFill),e.textPosition&&(t.textPosition=e.textPosition))}function D(e,n){if(n??=u,K(QJ,e)){var r=t.getItemVisual(n,`style`);return r?r[QJ[e]]:null}if(K($J,e))return t.getItemVisual(n,e)}function O(e){if(o.type===`cartesian2d`)return QN(F({axis:o.getBaseAxis()},e))}function k(){return n.getCurrentSeriesIndices()}function A(e){return uh(e,n)}}function iX(e){var t={};return L(e.dimensions,function(n){var r=e.getDimensionInfo(n);if(!r.isExtraCoord){var i=r.coordDim,a=t[i]=t[i]||[];a[r.coordDimIndex]=e.getDimensionIndex(n)}}),t}function aX(e,t,n,r,i,a,o){if(!r){a.remove(t);return}var s=oX(e,t,n,r,i,a);return s&&o.setItemGraphicEl(n,s),s&&ff(s,r.focus,r.blurScope,r.emphasisDisabled),s}function oX(e,t,n,r,i,a){var o=-1,s=t;t&&sX(t,r,i)&&(o=I(a.childrenRef(),t),t=null);var c=!t,l=t;l?l.clearStates():(l=QY(r),s&&XY(s,l)),r.morph===!1?l.disableMorphing=!0:l.disableMorphing&&=!1,r.tooltipDisabled&&(l.tooltipDisabled=!0),KY.normal.cfg=KY.normal.conOpt=KY.emphasis.cfg=KY.emphasis.conOpt=KY.blur.cfg=KY.blur.conOpt=KY.select.cfg=KY.select.conOpt=null,KY.isLegacy=!1,lX(l,n,r,i,c,KY),cX(l,n,r,i,c),$Y(e,l,n,r,KY,i,c),K(r,`info`)&&(eY(l).info=r.info);for(var u=0;u=0?a.replaceAt(l,o):a.add(l),l}function sX(e,t,n){var r=eY(e),i=t.type,a=t.shape,o=t.style;return n.isUniversalTransitionEnabled()||i!=null&&i!==r.customGraphicType||i===`path`&&bX(a)&&yX(a)!==r.customPathData||i===`image`&&K(o,`image`)&&o.image!==r.customImagePath}function cX(e,t,n,r,i){var a=n.clipPath;if(a===!1)e&&e.getClipPath()&&e.removeClipPath();else if(a){var o=e.getClipPath();o&&sX(o,a,r)&&(o=null),o||(o=QY(a),e.setClipPath(o)),$Y(null,o,t,a,null,r,i)}}function lX(e,t,n,r,i,a){if(!(e.isGroup||e.type===`compoundPath`)){uX(n,null,a),uX(n,LY,a);var o=a.normal.conOpt,s=a.emphasis.conOpt,c=a.blur.conOpt,l=a.select.conOpt;if(o!=null||s!=null||l!=null||c!=null){var u=e.getTextContent();if(o===!1)u&&e.removeTextContent();else{o=a.normal.conOpt=o||{type:`text`},u?u.clearStates():(u=QY(o),e.setTextContent(u)),$Y(null,u,t,o,null,r,i);for(var d=o&&o.style,f=0;f=u;p--)mX(t,t.childAt(p),i)}}function mX(e,t,n){t&&yY(t,eY(e).option,n)}function hX(e){new Rw(e.oldChildren,e.newChildren,gX,gX,e).add(_X).update(_X).remove(vX).execute()}function gX(e,t){return(e&&e.name)??GY+t}function _X(e,t){var n=this.context,r=e==null?null:n.newChildren[e],i=t==null?null:n.oldChildren[t];oX(n.api,i,n.dataIndex,r,n.seriesModel,n.group)}function vX(e){var t=this.context,n=t.oldChildren[e];n&&yY(n,eY(n).option,t.seriesModel)}function yX(e){return e&&(e.pathData||e.d)}function bX(e){return e&&(K(e,`pathData`)||K(e,`d`))}function xX(e){e.registerChartView(ZY),e.registerSeriesModel(tY)}var SX=Bs(),CX=M,wX=z,TX=function(){function e(){this._dragging=!1,this.animationThreshold=15}return e.prototype.render=function(e,t,n,r){var i=t.get(`value`),a=t.get(`status`);if(this._axisModel=e,this._axisPointerModel=t,this._api=n,!(!r&&this._lastValue===i&&this._lastStatus===a)){this._lastValue=i,this._lastStatus=a;var o=this._group,s=this._handle;if(!a||a===`hide`){o&&o.hide(),s&&s.hide();return}o&&o.show(),s&&s.show();var c={};this.makeElOption(c,i,e,t,n);var l=c.graphicKey;l!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=l;var u=this._moveAnimation=this.determineAnimation(e,t);if(!o)o=this._group=new Y,this.createPointerEl(o,c,e,t),this.createLabelEl(o,c,e,t),n.getZr().add(o);else{var d=xe(EX,t,u);this.updatePointerEl(o,c,d),this.updateLabelEl(o,c,d,t)}AX(o,t,!0),this._renderHandle(i)}},e.prototype.remove=function(e){this.clear(e)},e.prototype.dispose=function(e){this.clear(e)},e.prototype.determineAnimation=function(e,t){var n=t.get(`animation`),r=e.axis,i=r.type===`category`,a=t.get(`snap`);if(!a&&!i)return!1;if(n===`auto`||n==null){var o=this.animationThreshold;if(i&&CO(r).w>o)return!0;if(a){var s=eI(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=SX(e).pointerEl=new rm[i.type](CX(t.pointer));e.add(a)}},e.prototype.createLabelEl=function(e,t,n,r){if(t.label){var i=SX(e).labelEl=new Vu(CX(t.label));e.add(i),OX(i,r)}},e.prototype.updatePointerEl=function(e,t,n){var r=SX(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=SX(e).labelEl;i&&(i.setStyle(t.label.style),n(i,{x:t.label.x,y:t.label.y}),OX(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=Om(i.get(`icon`),{cursor:`move`,draggable:!0,onmousemove:function(e){Ut(e.event)},onmousedown:wX(this._onHandleDragMove,this,0,0),drift:wX(this._onHandleDragMove,this),ondragend:wX(this._onHandleDragEnd,this)}),n.add(r)),AX(r,t,!1),r.setStyle(i.getItemStyle(null,[`color`,`borderColor`,`borderWidth`,`opacity`,`shadowColor`,`shadowBlur`,`shadowOffsetX`,`shadowOffsetY`]));var s=i.get(`size`);B(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Jb(this,`_doDispatchAxisPointer`,i.get(`throttle`)||0,`fixRate`),this._moveHandleToValue(e,o)}},e.prototype._moveHandleToValue=function(e,t){EX(this._axisPointerModel,!t&&this._moveAnimation,this._handle,kX(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(kX(n),[e,t],this._axisModel,this._axisPointerModel);this._payloadInfo=r,n.stopAnimation(),n.attr(kX(r)),SX(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),Yb(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 EX(e,t,n,r){DX(SX(n).lastProp,r)||(SX(n).lastProp=r,t?Yp(n,r,e):(n.stopAnimation(),n.attr(r)))}function DX(e,t){if(U(e)&&U(t)){var n=!0;return L(t,function(t,r){n&&=DX(e[r],t)}),!!n}else return e===t}function OX(e,t){e[t.get([`label`,`show`])?`show`:`hide`]()}function kX(e){return{x:e.x||0,y:e.y||0,rotation:e.rotation||0}}function AX(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 jX(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 MX(e,t,n,r,i){var a=PX(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=Ng(o.get(`padding`)||0),c=o.getFont(),l=Va(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),NX(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:nh(o,{text:a,font:c,fill:o.getTextColor(),padding:s,backgroundColor:h}),z2:10}}function NX(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 PX(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:PE(t,{value:e}),axisDimension:t.dim,axisIndex:t.index,seriesData:[]};L(r,function(e){var t=n.getSeriesByIndex(e.seriesIndex),r=e.dataIndexInside,i=t&&t.getDataParams(r);i&&s.seriesData.push(i)}),H(o)?a=o.replace(`{value}`,a):V(o)&&(a=o(s))}return a}function FX(e,t,n){var r=Yt();return en(r,r,n.rotation),$t(r,r,n.position),xm([e.dataToCoord(t),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],r)}function IX(e,t,n,r,i,a){var o=cN.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=i.get([`label`,`margin`]),MX(t,r,i,a,{position:FX(r.axis,e,n),align:o.textAlign,verticalAlign:o.textVerticalAlign})}function LX(e,t,n){return n||=0,{x1:e[n],y1:e[1-n],x2:t[n],y2:t[1-n]}}function RX(e,t,n){return n||=0,{x:e[n],y:e[1-n],width:t[n],height:t[1-n]}}function zX(e,t,n,r,i,a){return{cx:e,cy:t,r0:n,r,startAngle:i,endAngle:a,clockwise:!0}}function BX(e,t,n){return CO(e,{fromStat:{sers:R(t,function(e){return n.getSeriesByIndex(e.seriesIndex)})},min:1}).w}function VX(e,t,n){return[To(wo(t[0],t[1]),e-n/2),wo(e+n/2,To(t[0],t[1]))]}var HX=function(e){_(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=UX(o,a).getOtherAxis(a).getGlobalExtent(),u=a.toGlobalCoord(a.dataToCoord(t,!0));if(s&&s!==`none`){var d=jX(r),f=WX[s](a,u,c,l,r.get(`seriesDataIndices`),r.ecModel);f.style=d,e.graphicKey=f.type,e.pointer=f}IX(t,e,kN(o.getRect(),n),n,r,i)},t.prototype.getHandleTransform=function(e,t,n){var r=kN(t.axis.grid.getRect(),t,{labelInside:!1});r.labelMargin=n.get([`handle`,`margin`]);var i=FX(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=UX(a,i).getOtherAxis(i).getGlobalExtent(),c=i.dim===`x`?0:1,l=[e.x,e.y];l[c]+=t[c],l[c]=wo(o[1],l[c]),l[c]=To(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}(TX);function UX(e,t){var n={};return n[t.dim+`AxisIndex`]=t.index,e.getCartesian(n)}var WX={line:function(e,t,n,r){return{type:`Line`,subPixelOptimize:!0,shape:LX([t,r[0]],[t,r[1]],GX(e))}},shadow:function(e,t,n,r,i,a){var o=BX(e,i,a),s=r[1]-r[0],c=VX(t,n,o),l=c[0],u=c[1];return{type:`Rect`,shape:RX([l,r[0]],[u-l,s],GX(e))}}};function GX(e){return e.dim===`x`?0:1}var KX=function(e){_(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:Q.color.border,width:1,type:`dashed`},shadowStyle:{color:Q.color.shadowTint},label:{show:!0,formatter:null,precision:`auto`,margin:3,color:Q.color.neutral00,padding:[5,7,5,7],backgroundColor:Q.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:Q.color.accent40,throttle:40}},t}(__),qX=Bs(),JX=L;function YX(e,t,n){if(!y.node){var r=t.getZr();qX(r).records||(qX(r).records={}),XX(r,t);var i=qX(r).records[e]||(qX(r).records[e]={});i.handler=n}}function XX(e,t){if(qX(e).initialized)return;qX(e).initialized=!0,n(`click`,xe($X,`click`)),n(`mousemove`,xe($X,`mousemove`)),n(`mousewheel`,xe($X,`mousewheel`)),n(`globalout`,QX);function n(n,r){e.on(n,function(n){var i=eZ(t);JX(qX(e).records,function(e){e&&r(e,n,i.dispatchAction)}),ZX(i.pendings,t)})}}function ZX(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 QX(e,t,n){e.handler(`leave`,null,n)}function $X(e,t,n,r){t.handler(e,n,r)}function eZ(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 tZ(e,t){if(!y.node){var n=t.getZr();(qX(n).records||{})[e]&&(qX(n).records[e]=null)}}var nZ=function(e){_(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`;YX(`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){tZ(`axisPointer`,t)},t.prototype.dispose=function(e,t){tZ(`axisPointer`,t)},t.type=`axisPointer`,t}(Pb);function rZ(e,t){var n=[],r=e.seriesIndex,i;if(r==null||!(i=t.getSeriesByIndex(r)))return{point:[]};var a=i.getData(),o=zs(a,e);if(o==null||o<0||B(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(R(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 iZ=Bs();function aZ(e,t,n){var r=e.currTrigger,i=[e.x,e.y],a=e,o=e.dispatchAction||z(n.dispatchAction,n),s=t.getComponent(`axisPointer`).coordSysAxesInfo;if(s){hZ(i)&&(i=rZ({seriesIndex:a.seriesIndex,dataIndex:a.dataIndex},t).point);var c=hZ(i),l=a.axesInfo,u=s.axesInfo,d=r===`leave`||hZ(i),f={},p={},m={list:[],map:{}},h={showPointer:xe(cZ,p),showTooltip:xe(lZ,m)};L(s.coordSysMap,function(e,t){var n=c||e.containPoint(i);L(s.coordSysAxesInfo[t],function(e,t){var r=e.axis,a=pZ(l,e);if(!d&&n&&(!l||a)){var o=a&&a.value;o==null&&!c&&(o=r.pointToData(i)),o!=null&&oZ(e,o,h,!1,f)}})});var g={};return L(u,function(e,t){var n=e.linkGroup;n&&!p[t]&&L(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,mZ(t),mZ(e)))),g[e.key]=a}})}),L(g,function(e,t){oZ(u[t],e,h,!0,f)}),uZ(p,u,f),dZ(m,i,e,o),fZ(u,o,n),f}}function oZ(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=sZ(t,e),s=o.payloadBatch,c=o.snapToValue;s[0]&&i.seriesIndex==null&&P(i,s[0]),!r&&e.snap&&a.containData(c)&&c!=null&&(t=c),n.showPointer(e,t,s),n.showTooltip(e,o,c)}}function sZ(e,t){var n=t.axis,r=n.dim,i=e,a=[],o=Number.MAX_VALUE,s=-1;return L(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(cs(u)){var p=e-u,m=Math.abs(p);m<=o&&((m=0&&s<0)&&(o=m,s=p,i=u,a.length=0),L(d,function(e){a.push({seriesIndex:t.seriesIndex,dataIndexInside:e,dataIndex:t.getData().getRawIndex(e)})}))}}),{payloadBatch:a,snapToValue:i}}function cZ(e,t,n,r){e[t.key]={value:n,payloadBatch:r}}function lZ(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=rI(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 uZ(e,t,n){var r=n.axesInfo=[];L(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 dZ(e,t,n,r){if(hZ(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 fZ(e,t,n){var r=n.getZr(),i=`axisPointerLastHighlights`,a=iZ(r)[i]||{},o=iZ(r)[i]={};L(e,function(e,t){var n=e.axisPointerModel.option;n.status===`show`&&e.triggerEmphasis&&L(n.seriesDataIndices,function(e){o[e.seriesIndex+`|`+e.dataIndex]=e})});var s=[],c=[];function l(e){return{seriesIndex:e.seriesIndex,dataIndex:e.dataIndex}}L(a,function(e,t){!o[t]&&c.push(l(e))}),L(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 pZ(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 mZ(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 hZ(e){return!e||e[0]==null||isNaN(e[0])||e[1]==null||isNaN(e[1])}function gZ(e){aI.registerAxisPointerClass(`CartesianAxisPointer`,HX),e.registerComponentModel(KX),e.registerComponentView(nZ),e.registerPreprocessor(function(e){if(e){(!e.axisPointer||e.axisPointer.length===0)&&(e.axisPointer={});var t=e.axisPointer.link;t&&!B(t)&&(e.axisPointer.link=[t])}}),e.registerProcessor(e.PRIORITY.PROCESSOR.STATISTIC,{overallReset:function(e,t){e.getComponent(`axisPointer`).coordSysAxesInfo=qF(e,t)}}),e.registerAction({type:`updateAxisPointer`,event:`updateAxisPointer`,update:`:updateAxisPointer`},aZ)}function _Z(e){Fw(gI),Fw(gZ)}var vZ=function(e){_(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;a.dim===`angle`&&(this.animationThreshold=Math.PI/18);var o=a.polar,s=a.getExtent(),c=o.getOtherAxis(a).getExtent(),l=a.dataToCoord(t),u=r.get(`type`);if(u&&u!==`none`){var d=jX(r),f=bZ[u](a,o,l,s,c,r.get(`seriesDataIndices`),r.ecModel);f.style=d,e.graphicKey=f.type,e.pointer=f}MX(e,n,r,i,yZ(t,n,r,o,r.get([`label`,`margin`])))},t}(TX);function yZ(e,t,n,r,i){var a=t.axis,o=a.dataToCoord(e),s=r.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var c=r.getRadiusAxis().getExtent(),l,u,d;if(a.dim===`radius`){var f=Yt();en(f,f,s),$t(f,f,[r.cx,r.cy]),l=xm([o,-i],f);var p=t.getModel(`axisLabel`).get(`rotate`)||0,m=cN.innerTextLayout(s,p*Math.PI/180,-1);u=m.textAlign,d=m.textVerticalAlign}else{var h=c[1];l=r.coordToPoint([h+i,o]);var g=r.cx,_=r.cy;u=Math.abs(l[0]-g)/h<.3?`center`:l[0]>g?`left`:`right`,d=Math.abs(l[1]-_)/h<.3?`middle`:l[1]>_?`top`:`bottom`}return{position:l,align:u,verticalAlign:d}}var bZ={line:function(e,t,n,r,i){return e.dim===`angle`?{type:`Line`,shape:LX(t.coordToPoint([i[0],n]),t.coordToPoint([i[1],n]))}:{type:`Circle`,shape:{cx:t.cx,cy:t.cy,r:n}}},shadow:function(e,t,n,r,i,a,o){var s=Math.PI/180,c=BX(e,a,o),l;if(e.dim===`angle`)l=zX(t.cx,t.cy,i[0],i[1],(-n-c/2)*s,(-n+c/2)*s);else{var u=VX(n,r,c),d=u[0],f=u[1];l=zX(t.cx,t.cy,d,f,0,Math.PI*2)}return{type:`Sector`,shape:l}}},xZ=`polar`,SZ=xZ,CZ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.findAxisModel=function(e){var t;return this.ecModel.eachComponent(e,function(e){e.getCoordSysModel()===this&&(t=e)},this),t},t.type=xZ,t.dependencies=[`radiusAxis`,`angleAxis`],t.defaultOption={z:0,center:[`50%`,`50%`],radius:`80%`},t}(__),wZ=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getCoordSysModel=function(){return this.getReferringComponents(`polar`,Ws).models[0]},t.type=`polarAxis`,t}(__);me(wZ,GE);var TZ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`angleAxis`,t}(wZ),EZ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`radiusAxis`,t}(wZ),DZ=function(e){_(t,e);function t(t,n){return e.call(this,`radius`,t,n)||this}return t.prototype.pointToData=function(e,t){return this.polar.pointToData(e,t)[this.dim===`radius`?0:1]},t}(DO);DZ.prototype.dataToRadius=DO.prototype.dataToCoord,DZ.prototype.radiusToData=DO.prototype.coordToData;var OZ=Bs(),kZ=function(e){_(t,e);function t(t,n){return e.call(this,`angle`,t,n||[0,360])||this}return t.prototype.pointToData=function(e,t){return this.polar.pointToData(e,t)[this.dim===`radius`?0:1]},t.prototype.calculateCategoryInterval=function(){var e=this,t=e.getLabelModel(),n=e.scale,r=n.getExtent(),i=n.count();if(r[1]-r[0]<1)return 0;var a=r[0],o=e.dataToCoord(a+1)-e.dataToCoord(a),s=Math.abs(o),c=Va(a==null?``:a+``,t.getFont(),`center`,`top`),l=Math.max(c.height,7)/s;isNaN(l)&&(l=1/0);var u=Math.max(0,Math.floor(l)),d=OZ(e.model),f=d.lastAutoInterval,p=d.lastTickCount;return f!=null&&p!=null&&Math.abs(f-u)<=1&&Math.abs(p-i)<=1&&f>u?u=f:(d.lastTickCount=i,d.lastAutoInterval=u),u},t}(DO);kZ.prototype.dataToAngle=DO.prototype.dataToCoord,kZ.prototype.angleToData=DO.prototype.coordToData;var AZ=[`radius`,`angle`],jZ=function(){function e(e){this.dimensions=AZ,this.type=xZ,this.cx=0,this.cy=0,this._radiusAxis=new DZ,this._angleAxis=new kZ,this.axisPointerEnabled=!0,this.name=e||``,this._radiusAxis.polar=this._angleAxis.polar=this}return e.prototype.containPoint=function(e){var t=this.pointToCoord(e);return this._radiusAxis.contain(t[0])&&this._angleAxis.contain(t[1])},e.prototype.containData=function(e){return this._radiusAxis.containData(e[0])&&this._angleAxis.containData(e[1])},e.prototype.getAxis=function(e){var t=`_`+e+`Axis`;return this[t]},e.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},e.prototype.getAxesByScale=function(e){var t=[],n=this._angleAxis,r=this._radiusAxis;return n.scale.type===e&&t.push(n),r.scale.type===e&&t.push(r),t},e.prototype.getAngleAxis=function(){return this._angleAxis},e.prototype.getRadiusAxis=function(){return this._radiusAxis},e.prototype.getOtherAxis=function(e){var t=this._angleAxis;return e===t?this._radiusAxis:t},e.prototype.getBaseAxis=function(){return this.getAxesByScale(`ordinal`)[0]||this.getAxesByScale(`time`)[0]||this.getAngleAxis()},e.prototype.getTooltipAxes=function(e){var t=e!=null&&e!==`auto`?this.getAxis(e):this.getBaseAxis();return{baseAxes:[t],otherAxes:[this.getOtherAxis(t)]}},e.prototype.dataToPoint=function(e,t,n){return this.coordToPoint([this._radiusAxis.dataToRadius(e[0],t),this._angleAxis.dataToAngle(e[1],t)],n)},e.prototype.pointToData=function(e,t,n){n||=[];var r=this.pointToCoord(e);return n[0]=this._radiusAxis.radiusToData(r[0],t),n[1]=this._angleAxis.angleToData(r[1],t),n},e.prototype.pointToCoord=function(e){var t=e[0]-this.cx,n=e[1]-this.cy,r=this.getAngleAxis(),i=r.getExtent(),a=Math.min(i[0],i[1]),o=Math.max(i[0],i[1]);r.inverse?a=o-360:o=a+360;var s=Math.sqrt(t*t+n*n);t/=s,n/=s;for(var c=Math.atan2(-n,t)/Math.PI*180,l=co;)c+=l*360;return[s,c]},e.prototype.coordToPoint=function(e,t){t||=[];var n=e[0],r=e[1]/180*Math.PI;return t[0]=Math.cos(r)*n+this.cx,t[1]=-Math.sin(r)*n+this.cy,t},e.prototype.getArea=function(){var e=this.getAngleAxis(),t=this.getRadiusAxis().getExtent().slice();t[0]>t[1]&&t.reverse();var n=e.getExtent(),r=Math.PI/180,i=1e-4;return{cx:this.cx,cy:this.cy,r0:t[0],r:t[1],startAngle:-n[0]*r,endAngle:-n[1]*r,clockwise:e.inverse,contain:function(e,t){var n=e-this.cx,r=t-this.cy,a=n*n+r*r,o=this.r,s=this.r0;return o!==s&&a-i<=o*o&&a+i>=s*s},x:this.cx-t[1],y:this.cy-t[1],width:t[1]*2,height:t[1]*2}},e.prototype.convertToPixel=function(e,t,n){return MZ(t)===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(e,t,n){return MZ(t)===this?this.pointToData(n):null},e}();function MZ(e){var t=e.seriesModel,n=e.polarModel;return n&&n.coordinateSystem||t&&t.coordinateSystem}function NZ(e,t,n){var r=t.get(`center`),i=l_(t,n).refContainer;e.cx=X(r[0],i.width)+i.x,e.cy=X(r[1],i.height)+i.y;var a=e.getRadiusAxis(),o=Math.min(i.width,i.height)/2,s=t.get(`radius`);s==null?s=[0,`100%`]:B(s)||(s=[0,s]);var c=[X(s[0],o),X(s[1],o)];a.inverse?a.setExtent(c[1],c[0]):a.setExtent(c[0],c[1])}function PZ(e,t){var n=this,r=n.getAngleAxis(),i=n.getRadiusAxis();if(SD(r,1),SD(i,1),PD(r),PD(i),r.type===`category`&&!r.onBand){var a=r.getExtent(),o=360/r.scale.count();r.inverse?a[1]+=o:a[1]-=o,r.setExtent(a[0],a[1])}}function FZ(e){return e.mainType===`angleAxis`}function IZ(e,t){if(e.type=OE(t),e.scale=kE(t,e.type,!1),e.onBand=WE(e.scale,t),e.inverse=t.get(`inverse`),FZ(t)){e.inverse=e.inverse!==t.get(`clockwise`);var n=t.get(`startAngle`),r=t.get(`endAngle`)??n+(e.inverse?-360:360);e.setExtent(n,r)}t.axis=e,e.model=t}var LZ={dimensions:AZ,create:function(e,t){var n=[];return e.eachComponent(SZ,function(e,r){var i=new jZ(r+``);i.update=PZ;var a=i.getRadiusAxis(),o=i.getAngleAxis(),s=e.findAxisModel(`radiusAxis`),c=e.findAxisModel(`angleAxis`);IZ(a,s),IZ(o,c),NZ(i,e,t),n.push(i),e.coordinateSystem=i,i.model=e}),e.eachSeries(function(e){if(e.get(`coordinateSystem`)===`polar`){var t=e.coordinateSystem=e.getReferringComponents(SZ,Ws).models[0].coordinateSystem;t&&(lD(t.getRadiusAxis(),e,xZ),lD(t.getAngleAxis(),e,xZ))}}),n}},RZ=[`axisLine`,`axisLabel`,`axisTick`,`minorTick`,`splitLine`,`minorSplitLine`,`splitArea`];function zZ(e,t,n){t[1]>t[0]&&(t=t.slice().reverse());var r=e.coordToPoint([t[0],n]),i=e.coordToPoint([t[1],n]);return{x1:r[0],y1:r[1],x2:i[0],y2:i[1]}}function BZ(e){return+!e.getRadiusAxis().inverse}function VZ(e){var t=e[0],n=e[e.length-1];t&&n&&Math.abs(Math.abs(t.coord-n.coord)-360)<1e-4&&e.pop()}var HZ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.axisPointerClass=`PolarAxisPointer`,n}return t.prototype.render=function(e,t){if(this.group.removeAll(),e.get(`show`)){var n=e.axis,r=n.polar,i=r.getRadiusAxis().getExtent(),a=n.getTicksCoords({breakTicks:`none`}),o=n.getMinorTicksCoords(),s=[];L(n.getViewLabels(),function(e){if(!e.tick.offInterval){e=M(e);var t=n.scale;e.coord=n.dataToCoord(UE(t,e.tick)),s.push(e)}}),VZ(s),VZ(a),L(RZ,function(t){e.get([t,`show`])&&(!n.scale.isBlank()||t===`axisLine`)&&UZ[t](this.group,e,r,a,o,i,s)},this)}},t.type=`angleAxis`,t}(aI),UZ={axisLine:function(e,t,n,r,i,a){var o=t.getModel([`axisLine`,`lineStyle`]),s=n.getAngleAxis(),c=Math.PI/180,l=s.getExtent(),u=BZ(n),d=+!u,f,p=Math.abs(l[1]-l[0])===360?`Circle`:`Arc`;f=a[d]===0?new rm[p]({shape:{cx:n.cx,cy:n.cy,r:a[u],startAngle:-l[0]*c,endAngle:-l[1]*c,clockwise:s.inverse},style:o.getLineStyle(),z2:1,silent:!0}):new hp({shape:{cx:n.cx,cy:n.cy,r:a[u],r0:a[d]},style:o.getLineStyle(),z2:1,silent:!0}),f.style.fill=null,e.add(f)},axisTick:function(e,t,n,r,i,a){var o=t.getModel(`axisTick`),s=(o.get(`inside`)?-1:1)*o.get(`length`),c=a[BZ(n)],l=R(r,function(e){return new wp({shape:zZ(n,[c,c+s],e.coord)})});e.add(hm(l,{style:F(o.getModel(`lineStyle`).getLineStyle(),{stroke:t.get([`axisLine`,`lineStyle`,`color`])})}))},minorTick:function(e,t,n,r,i,a){if(i.length){for(var o=t.getModel(`axisTick`),s=t.getModel(`minorTick`),c=(o.get(`inside`)?-1:1)*s.get(`length`),l=a[BZ(n)],u=[],d=0;dm?`left`:`right`,_=Math.abs(p[1]-h)/f<.3?`middle`:p[1]>h?`top`:`bottom`;if(s&&s[d]){var v=s[d];U(v)&&v.textStyle&&(o=new Th(v.textStyle,c,c.ecModel))}var y=new Vu({silent:cN.isLabelSilent(t),style:nh(o,{x:p[0],y:p[1],fill:o.getTextColor()||t.get([`axisLine`,`lineStyle`,`color`]),text:r.formattedLabel,align:g,verticalAlign:_})});if(e.add(y),Im({el:y,componentModel:t,itemName:r.formattedLabel,formatterParamsExtra:{isTruncated:function(){return y.isTruncated},value:r.rawLabel,tickIndex:i}}),u){var b=cN.makeAxisEventDataBase(t);b.targetType=`axisLabel`,b.value=r.rawLabel,Z(y).eventData=b}},this)},splitLine:function(e,t,n,r,i,a){var o=t.getModel(`splitLine`).getModel(`lineStyle`),s=o.get(`color`),c=0;s=s instanceof Array?s:[s];for(var l=[],u=0;u=0?`p`:`n`,T=y;_&&(r[a][C]||(r[a][C]={p:y,n:y}),T=r[a][C][w]);var E=void 0,D=void 0,O=void 0,k=void 0;if(u.dim===`radius`){var A=u.dataToCoord(S)-y,j=e.dataToCoord(C);Eo(A)=k})}}function $Z(e,t){var n=BN(t,xZ),r=CO(e,{fromStat:{key:n},min:1}).w,i=r,a=0,o=`20%`,s=`30%`,c={};tD(e,n,function(e){var t=YZ(e);c[t]||a++,c[t]=c[t]||{width:0,maxWidth:0};var n=X(e.get(`barWidth`),r),l=X(e.get(`barMaxWidth`),r),u=e.get(`barGap`),d=e.get(`barCategoryGap`);n&&!c[t].width&&(n=wo(i,n),c[t].width=n,i-=n),l&&(c[t].maxWidth=l),u!=null&&(s=u),d!=null&&(o=d)});var l={},u=X(o,r),d=X(s,1),f=(i-u)/(a+(a-1)*d);f=To(f,0),L(c,function(e,t){var n=e.maxWidth;n&&n=t.y&&e[1]<=t.y+t.height:n.contain(n.toLocalCoord(e[1]))&&e[0]>=t.y&&e[0]<=t.y+t.height},e.prototype.pointToData=function(e,t,n){n||=[];var r=this.getAxis();return n[0]=r.coordToData(r.toLocalCoord(e[r.orient===`horizontal`?0:1])),n},e.prototype.dataToPoint=function(e,t,n){var r=this.getAxis(),i=this.getRect();n||=[];var a=r.orient===`horizontal`?0:1;return e instanceof Array&&(e=e[0]),n[a]=r.toGlobalCoord(r.dataToCoord(+e)),n[1-a]=a===0?i.y+i.height/2:i.x+i.width/2,n},e.prototype.convertToPixel=function(e,t,n){return fQ(t)===this?this.dataToPoint(n):null},e.prototype.convertFromPixel=function(e,t,n){return fQ(t)===this?this.pointToData(n):null},e}();function fQ(e){var t=e.seriesModel,n=e.singleAxisModel;return n&&n.coordinateSystem||t&&t.coordinateSystem}function pQ(e,t){var n=[];return e.eachComponent(vI,function(r,i){var a=new dQ(r,e,t);a.name=`single_`+i,a.resize(r,t),r.coordinateSystem=a,n.push(a)}),e.eachSeries(function(e){if(e.get(`coordinateSystem`)===`singleAxis`){var t=e.getReferringComponents(vI,Ws).models[0],n=e.coordinateSystem=t&&t.coordinateSystem;n&&lD(n.getAxis(),e,_I)}}),n}var mQ={create:pQ,dimensions:uQ},hQ=[`x`,`y`],gQ=[`width`,`height`],_Q=function(e){_(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.coordinateSystem,s=yQ(a),c=bQ(o,s),l=bQ(o,1-s),u=o.dataToPoint(t)[0],d=r.get(`type`);if(d&&d!==`none`){var f=jX(r),p=vQ[d](a,u,c,l,r.get(`seriesDataIndices`),r.ecModel);p.style=f,e.graphicKey=p.type,e.pointer=p}IX(t,e,aQ(n),n,r,i)},t.prototype.getHandleTransform=function(e,t,n){var r=aQ(t,{labelInside:!1});r.labelMargin=n.get([`handle`,`margin`]);var i=FX(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.coordinateSystem,o=yQ(i),s=bQ(a,o),c=[e.x,e.y];c[o]+=t[o],c[o]=Math.min(s[1],c[o]),c[o]=Math.max(s[0],c[o]);var l=bQ(a,1-o),u=(l[1]+l[0])/2,d=[u,u];return d[o]=c[o],{x:c[0],y:c[1],rotation:e.rotation,cursorPoint:d,tooltipOption:{verticalAlign:`middle`}}},t}(TX),vQ={line:function(e,t,n,r){return{type:`Line`,subPixelOptimize:!0,shape:LX([t,r[0]],[t,r[1]],yQ(e))}},shadow:function(e,t,n,r,i,a){var o=BX(e,i,a),s=r[1]-r[0],c=VX(t,n,o),l=c[0],u=c[1];return{type:`Rect`,shape:RX([l,r[0]],[u-l,s],yQ(e))}}};function yQ(e){return+!e.isHorizontal()}function bQ(e,t){var n=e.getRect();return[n[hQ[t]],n[hQ[t]]+n[gQ[t]]]}var xQ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`single`,t}(Pb);function SQ(e){Fw(gZ),aI.registerAxisPointerClass(`SingleAxisPointer`,_Q),e.registerComponentView(xQ),e.registerComponentView(sQ),e.registerComponentModel(yI),CF(e,`single`,yI,yI.defaultOption),e.registerCoordinateSystem(`single`,mQ)}var CQ=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t,n,r){var i=m_(t);e.prototype.init.apply(this,arguments),wQ(t,i)},t.prototype.mergeOption=function(t){e.prototype.mergeOption.apply(this,arguments),wQ(this.option,t)},t.prototype.getCellSize=function(){return this.option.cellSize},t.type=`calendar`,t.layoutMode=`box`,t.defaultOption={z:2,left:80,top:60,cellSize:20,orient:`horizontal`,splitLine:{show:!0,lineStyle:{color:Q.color.axisLine,width:1,type:`solid`}},itemStyle:{color:Q.color.neutral00,borderWidth:1,borderColor:Q.color.neutral10},dayLabel:{show:!0,firstDay:0,position:`start`,margin:Q.size.s,color:Q.color.secondary},monthLabel:{show:!0,position:`start`,margin:Q.size.s,align:`center`,formatter:null,color:Q.color.secondary},yearLabel:{show:!0,position:null,margin:Q.size.xl,formatter:null,color:Q.color.quaternary,fontFamily:`sans-serif`,fontWeight:`bolder`,fontSize:20}},t}(__);function wQ(e,t){var n=e.cellSize,r=B(n)?n:e.cellSize=[n,n];r.length===1&&(r[1]=r[0]),p_(e,t,{type:`box`,ignoreSize:R([0,1],function(e){return d_(t,e)&&(r[e]=`auto`),r[e]!=null&&r[e]!==`auto`})})}var TQ=function(e){_(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=this.group;r.removeAll();var i=e.coordinateSystem,a=i.getRangeInfo(),o=i.getOrient(),s=t.getLocaleModel();this._renderDayRect(e,a,r),this._renderLines(e,a,o,r),this._renderYearText(e,a,o,r),this._renderMonthText(e,s,o,r),this._renderWeekText(e,s,a,o,r)},t.prototype._renderDayRect=function(e,t,n){for(var r=e.coordinateSystem,i=e.getModel(`itemStyle`).getItemStyle(),a=r.getCellWidth(),o=r.getCellHeight(),s=t.start.time;s<=t.end.time;s=r.getNextNDay(s,1).time){var c=r.dataToCalendarLayout([s],!1).tl,l=new Iu({shape:{x:c[0],y:c[1],width:a,height:o},cursor:`default`,style:i});n.add(l)}},t.prototype._renderLines=function(e,t,n,r){var i=this,a=e.coordinateSystem,o=e.getModel([`splitLine`,`lineStyle`]).getLineStyle(),s=e.get([`splitLine`,`show`]),c=o.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var l=t.start,u=0;l.time<=t.end.time;u++){f(l.formatedDate),u===0&&(l=a.getDateInfo(t.start.y+`-`+t.start.m));var d=l.date;d.setMonth(d.getMonth()+1),l=a.getDateInfo(d)}f(a.getNextNDay(t.end.time,1).formatedDate);function f(t){i._firstDayOfMonth.push(a.getDateInfo(t)),i._firstDayPoints.push(a.dataToCalendarLayout([t],!1).tl);var c=i._getLinePointsOfOneWeek(e,t,n);i._tlpoints.push(c[0]),i._blpoints.push(c[c.length-1]),s&&i._drawSplitline(c,o,r)}s&&this._drawSplitline(i._getEdgesPoints(i._tlpoints,c,n),o,r),s&&this._drawSplitline(i._getEdgesPoints(i._blpoints,c,n),o,r)},t.prototype._getEdgesPoints=function(e,t,n){var r=[e[0].slice(),e[e.length-1].slice()],i=n===`horizontal`?0:1;return r[0][i]=r[0][i]-t/2,r[1][i]=r[1][i]+t/2,r},t.prototype._drawSplitline=function(e,t,n){var r=new xp({z2:20,shape:{points:e},style:t});n.add(r)},t.prototype._getLinePointsOfOneWeek=function(e,t,n){for(var r=e.coordinateSystem,i=r.getDateInfo(t),a=[],o=0;o<7;o++){var s=r.getNextNDay(i.time,o),c=r.dataToCalendarLayout([s.time],!1);a[2*s.day]=c.tl,a[2*s.day+1]=c[n===`horizontal`?`bl`:`tr`]}return a},t.prototype._formatterLabel=function(e,t){return H(e)&&e?Rg(e,t):V(e)?e(t):t.nameMap},t.prototype._yearTextPositionControl=function(e,t,n,r,i){var a=t[0],o=t[1],s=[`center`,`bottom`];r===`bottom`?(o+=i,s=[`center`,`top`]):r===`left`?a-=i:r===`right`?(a+=i,s=[`center`,`top`]):o-=i;var c=0;return(r===`left`||r===`right`)&&(c=Math.PI/2),{rotation:c,x:a,y:o,style:{align:s[0],verticalAlign:s[1]}}},t.prototype._renderYearText=function(e,t,n,r){var i=e.getModel(`yearLabel`);if(i.get(`show`)){var a=i.get(`margin`),o=i.get(`position`);o||=n===`horizontal`?`left`:`top`;var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],c=(s[0][0]+s[1][0])/2,l=(s[0][1]+s[1][1])/2,u=n===`horizontal`?0:1,d={top:[c,s[u][1]],bottom:[c,s[1-u][1]],left:[s[1-u][0],l],right:[s[u][0],l]},f=t.start.y;+t.end.y>+t.start.y&&(f=f+`-`+t.end.y);var p=i.get(`formatter`),m={start:t.start.y,end:t.end.y,nameMap:f},h=new Vu({z2:30,style:nh(i,{text:this._formatterLabel(p,m)}),silent:i.get(`silent`)});h.attr(this._yearTextPositionControl(h,d[o],n,o,a)),r.add(h)}},t.prototype._monthTextPositionControl=function(e,t,n,r,i){var a=`left`,o=`top`,s=e[0],c=e[1];return n===`horizontal`?(c+=i,t&&(a=`center`),r===`start`&&(o=`bottom`)):(s+=i,t&&(o=`middle`),r===`start`&&(a=`right`)),{x:s,y:c,align:a,verticalAlign:o}},t.prototype._renderMonthText=function(e,t,n,r){var i=e.getModel(`monthLabel`);if(i.get(`show`)){var a=i.get(`nameMap`),o=i.get(`margin`),s=i.get(`position`),c=i.get(`align`),l=[this._tlpoints,this._blpoints];(!a||H(a))&&(a&&(t=Vh(a)||t),a=t.get([`time`,`monthAbbr`])||[]);var u=s===`start`?0:1,d=n===`horizontal`?0:1;o=s===`start`?-o:o;for(var f=c===`center`,p=i.get(`silent`),m=0;m=i.start.time&&r.timeo.end.time&&t.reverse(),t},e.prototype._getRangeInfo=function(e){var t=[this.getDateInfo(e[0]),this.getDateInfo(e[1])],n;t[0].time>t[1].time&&(n=!0,t.reverse());var r=Math.floor(t[1].time/EQ)-Math.floor(t[0].time/EQ)+1,i=new Date(t[0].time),a=i.getDate(),o=t[1].date.getDate();i.setDate(a+r-1);var s=i.getDate();if(s!==o)for(var c=i.getTime()-t[1].time>0?1:-1;(s=i.getDate())!==o&&(i.getTime()-t[1].time)*c>0;)r-=c,i.setDate(s-c);var l=Math.floor((r+t[0].day+6)/7),u=n?-l+1:l-1;return n&&t.reverse(),{range:[t[0].formatedDate,t[1].formatedDate],start:t[0],end:t[1],allDay:r,weeks:l,nthWeek:u,fweek:t[0].day,lweek:t[1].day}},e.prototype._getDateByWeeksAndDay=function(e,t,n){var r=this._getRangeInfo(n);if(e>r.weeks||e===0&&tr.lweek)return null;var i=(e-1)*7-r.fweek+t,a=new Date(r.start.time);return a.setDate(+r.start.d+i),this.getDateInfo(a)},e.create=function(t,n){var r=[];return t.eachComponent(`calendar`,function(i){var a=new e(i,t,n);r.push(a),i.coordinateSystem=a}),t.eachComponent(function(e,t){Xg({targetModel:t,coordSysType:`calendar`,coordSysProvider:Zg})}),r},e.dimensions=[`time`,`value`],e}();function OQ(e){var t=e.calendarModel,n=e.seriesModel;return t?t.coordinateSystem:n?n.coordinateSystem:null}function kQ(e){e.registerComponentModel(CQ),e.registerComponentView(TQ),e.registerCoordinateSystem(`calendar`,DQ)}var AQ={level:1,leaf:2,nonLeaf:3},jQ={none:0,all:1,body:2,corner:3};function MQ(e,t,n){var r=t[am[n]].getCell(e);return!r&&Ce(e)&&e<0&&(r=t[am[1-n]].getUnitLayoutInfo(n,Math.round(e))),r}function NQ(e){var t=e||[];return t[0]=t[0]||[],t[1]=t[1]||[],t[0][0]=t[0][1]=t[1][0]=t[1][1]=NaN,t}function PQ(e,t,n,r,i){FQ(e[0],t,i,n,r,0),FQ(e[1],t,i,n,r,1)}function FQ(e,t,n,r,i,a){e[0]=1/0,e[1]=-1/0;var o=r[a],s=B(o)?o:[o],c=s.length,l=!!n;if(c>=1?(IQ(e,t,s,l,i,a,0),c>1&&IQ(e,t,s,l,i,a,c-1)):e[0]=e[1]=NaN,l){var u=-i[am[1-a]].getLocatorCount(a),d=i[am[a]].getLocatorCount(a)-1;n===jQ.body?u=To(0,u):n===jQ.corner&&(d=wo(-1,d)),d=t[0]&&e[0]<=t[1]}function HQ(e,t){e.id.set(t[0][0],t[1][0]),e.span.set(t[0][1]-e.id.x+1,t[1][1]-e.id.y+1)}function UQ(e,t){e[0][0]=t[0][0],e[0][1]=t[0][1],e[1][0]=t[1][0],e[1][1]=t[1][1]}function WQ(e,t,n,r){var i=MQ(t[r][0],n,r),a=MQ(t[r][1],n,r);e[am[r]]=e[om[r]]=NaN,i&&a&&(e[am[r]]=i.xy,e[om[r]]=a.xy+a.wh-i.xy)}function GQ(e,t,n,r){return e[am[t]]=n,e[am[1-t]]=r,e}function KQ(e){return e&&(e.type===AQ.leaf||e.type===AQ.nonLeaf)?e:null}function qQ(){return{x:NaN,y:NaN,width:NaN,height:NaN}}var JQ=function(){function e(e,t){this._cells=[],this._levels=[],this.dim=e,this.dimIdx=e===`x`?0:1,this._model=t,this._uniqueValueGen=YQ(e);var n=t.get(`data`,!0),r=t.get(`length`,!0);if(n!=null&&!B(n)&&(n=[]),n)this._initByDimModelData(n);else if(r!=null){n=Array(r);for(var i=0;i=1,y=n[am[r]],b=a.getLocatorCount(r)-1,x=new $s;for(o.resetLayoutIterator(x,r);x.next();)S(x.item);for(a.resetLayoutIterator(x,r);x.next();)S(x.item);function S(e){Ae(e.wh)&&(e.wh=_),e.xy=y,e.id[am[r]]===b&&!v&&(e.wh=n[am[r]]+n[om[r]]-e.xy),y+=e.wh}}function T$(e,t){for(var n=t[am[e]].resetCellIterator();n.next();){var r=n.item;D$(r.rect,e,r.id,r.span,t),D$(r.rect,1-e,r.id,r.span,t),r.type===AQ.nonLeaf&&(r.xy=r.rect[am[e]],r.wh=r.rect[om[e]])}}function E$(e,t){e.travelExistingCells(function(e){var n=e.span;if(n){var r=e.spanRect,i=e.id;D$(r,0,i,n,t),D$(r,1,i,n,t)}})}function D$(e,t,n,r,i){e[om[t]]=0;var a=n[am[t]]<0?i[am[1-t]]:i[am[t]],o=a.getUnitLayoutInfo(t,n[am[t]]);if(e[am[t]]=o.xy,e[om[t]]=o.wh,r[am[t]]>1){var s=a.getUnitLayoutInfo(t,n[am[t]]+r[am[t]]-1);e[om[t]]=s.xy+s.wh-o.xy}}function O$(e,t,n){return k$(Lo(e,n[om[t]]),n[om[t]])}function k$(e,t){return Math.max(Math.min(e,W(t,1/0)),0)}function A$(e){var t=e.matrixModel,n=e.seriesModel;return t?t.coordinateSystem:n?n.coordinateSystem:null}var j$={inBody:1,inCorner:2,outside:3},M$={x:null,y:null,point:[]};function N$(e,t,n,r,i){var a=n[am[t]],o=n[am[1-t]],s=a.getUnitLayoutInfo(t,a.getLocatorCount(t)-1),c=a.getUnitLayoutInfo(t,0),l=o.getUnitLayoutInfo(t,-o.getLocatorCount(t)),u=o.shouldShow()?o.getUnitLayoutInfo(t,-1):null,d=e.point[t]=r[t];if(!c&&!u){e[am[t]]=j$.outside;return}if(i===jQ.body){c?(e[am[t]]=j$.inBody,d=wo(s.xy+s.wh,To(c.xy,d)),e.point[t]=d):e[am[t]]=j$.outside;return}else if(i===jQ.corner){u?(e[am[t]]=j$.inCorner,d=wo(u.xy+u.wh,To(l.xy,d)),e.point[t]=d):e[am[t]]=j$.outside;return}var f=c?c.xy:u?u.xy+u.wh:NaN,p=l?l.xy:f,m=s?s.xy+s.wh:f;if(dm){if(!i){e[am[t]]=j$.outside;return}d=m}e.point[t]=d,e[am[t]]=f<=d&&d<=m?j$.inBody:p<=d&&d<=f?j$.inCorner:j$.outside}function P$(e,t,n,r){var i=1-n;if(e[am[n]]!==j$.outside)for(r[am[n]].resetCellIterator(C$);C$.next();){var a=C$.item;if(L$(e.point[n],a.rect,n)&&L$(e.point[i],a.rect,i)){t[n]=a.ordinal,t[i]=a.id[am[i]];return}}}function F$(e,t,n,r){if(e[am[n]]!==j$.outside){for((e[am[n]]===j$.inCorner?r[am[1-n]]:r[am[n]]).resetLayoutIterator(S$,n);S$.next();)if(I$(e.point[n],S$.item)){t[n]=S$.item.id[am[n]];return}}}function I$(e,t){return t.xy<=e&&e<=t.xy+t.wh}function L$(e,t,n){return t[am[n]]<=e&&e<=t[am[n]]+t[om[n]]}function R$(e){e.registerComponentModel(r$),e.registerComponentView(u$),e.registerCoordinateSystem(`matrix`,b$)}function z$(e,t){var n=e.existing;if(t.id=e.keyInfo.id,!t.type&&n&&(t.type=n.type),t.parentId==null){var r=t.parentOption;r?t.parentId=r.id:n&&(t.parentId=n.parentId)}t.parentOption=null}function B$(e,t){var n;return L(t,function(t){e[t]!=null&&e[t]!==`auto`&&(n=!0)}),n}function V$(e,t,n){var r=P({},n),i=e[t],a=n.$action||`merge`;a===`merge`?i?(N(i,r,!0),p_(i,r,{ignoreSize:!0}),h_(n,i),W$(n,i),W$(n,i,`shape`),W$(n,i,`style`),W$(n,i,`extra`),n.clipPath=i.clipPath):e[t]=r:a===`replace`?e[t]=r:a===`remove`&&i&&(e[t]=null)}var H$=[`transition`,`enterFrom`,`leaveTo`],U$=H$.concat([`enterAnimation`,`updateAnimation`,`leaveAnimation`]);function W$(e,t,n){if(n&&(!e[n]&&t[n]&&(e[n]={}),e=e[n],t=t[n]),!(!e||!t))for(var r=n?H$:U$,i=0;i=0;c--){var l=n[c],u=Ms(l.id,null),d=u==null?null:i.get(u);if(d){var f=d.parent,h=J$(f),g=f===r?{width:a,height:o}:{width:h.width,height:h.height},_={},v=u_(d,l,g,null,{hv:l.hv,boundingMode:l.bounding},_);if(!J$(d).isNew&&v){for(var y=l.transition,b={},x=0;x=0)?b[S]=C:d[S]=C}Yp(d,b,e,0)}else d.attr(_)}}},t.prototype._clear=function(){var e=this,t=this._elMap;t.each(function(n){Q$(n,J$(n).option,t,e._lastGraphicModel)}),this._elMap=G()},t.prototype.dispose=function(){this._clear()},t.type=`graphic`,t}(Pb);function X$(e){var t=new(K(q$,e)?q$[e]:dm(e))({});return J$(t).type=e,t}function Z$(e,t,n,r){var i=X$(n);return t.add(i),r.set(e,i),J$(i).id=e,J$(i).isNew=!0,i}function Q$(e,t,n,r){e&&e.parent&&(e.type===`group`&&e.traverse(function(e){Q$(e,t,n,r)}),yY(e,t,r),n.removeKey(J$(e).id))}function $$(e,t,n,r){e.isGroup||L([[`cursor`,ml.prototype.cursor],[`zlevel`,r||0],[`z`,n||0],[`z2`,0]],function(n){var r=n[0];K(t,r)?e[r]=W(t[r],n[1]):e[r]??(e[r]=n[1])}),L(ye(t),function(n){if(n.indexOf(`on`)===0){var r=t[n];e[n]=V(r)?r:null}}),K(t,`draggable`)&&(e.draggable=t.draggable),t.name!=null&&(e.name=t.name),t.id!=null&&(e.id=t.id)}function e1(e){return e=P({},e),L([`id`,`parentId`,`$action`,`hv`,`bounding`,`textContent`,`clipPath`].concat($g),function(t){delete e[t]}),e}function t1(e,t,n){var r=Z(e).eventData;!e.silent&&!e.ignore&&!r&&(r=Z(e).eventData={componentType:`graphic`,componentIndex:t.componentIndex,name:e.name}),r&&(r.info=n.info)}function n1(e){e.registerComponentModel(K$),e.registerComponentView(Y$),e.registerPreprocessor(function(e){var t=e.graphic;B(t)?!t[0]||!t[0].elements?e.graphic=[{elements:t}]:e.graphic=[e.graphic[0]]:t&&!t.elements&&(e.graphic=[{elements:[t]}])})}var r1=[`x`,`y`,`radius`,`angle`,`single`],i1=Bs(),a1=[`cartesian2d`,`polar`,`singleAxis`];function o1(e){return I(a1,e.get(`coordinateSystem`))>=0}function s1(e){return e+`Axis`}function c1(e,t){var n=G(),r=[],i=G();e.eachComponent({mainType:`dataZoom`,query:t},function(e){i.get(e.uid)||s(e)});var a;do a=!1,e.eachComponent(`dataZoom`,o);while(a);function o(e){!i.get(e.uid)&&c(e)&&(s(e),a=!0)}function s(e){i.set(e.uid,!0),r.push(e),l(e)}function c(e){var t=!1;return e.eachTargetAxis(function(e,r){var i=n.get(e);i&&i[r]&&(t=!0)}),t}function l(e){e.eachTargetAxis(function(e,t){(n.get(e)||n.set(e,[]))[t]=!0})}return r}function l1(e){var t=e.ecModel,n={infoList:[],infoMap:G()};return e.eachTargetAxis(function(e,r){var i=t.getComponent(s1(e),r);if(i){var a=i.getCoordSysModel();if(a){var o=a.uid,s=n.infoMap.get(o);s||(s={model:a,axisModels:[]},n.infoList.push(s),n.infoMap.set(o,s)),s.axisModels.push(i)}}}),n}function u1(e){var t=i1(Yx(e));return t.axisProxyMap||=G()}function d1(e){if(e)return u1(e.ecModel).get(e.uid)}function f1(e,t){u1(e.ecModel).set(e.uid,t)}function p1(e,t){var n=t.getAxisModel().axis.__alignTo;return n&&e.getAxisProxy(n.dim,n.model.componentIndex)?d1(n.model):null}var m1=function(){function e(){this.indexList=[],this.indexMap=[]}return e.prototype.add=function(e){this.indexMap[e]||(this.indexList.push(e),this.indexMap[e]=!0)},e}(),h1=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=[`percent`,`percent`],n}return t.prototype.init=function(e,t,n){var r=g1(e);this.settledOption=r,this.mergeDefaultAndTheme(e,n),this._doInit(r)},t.prototype.mergeOption=function(e){var t=g1(e);N(this.option,e,!0),N(this.settledOption,t,!0),this._doInit(t)},t.prototype._doInit=function(e){var t=this.option;this._setDefaultThrottle(e),this._updateRangeUse(e);var n=this.settledOption;L([[`start`,`startValue`],[`end`,`endValue`]],function(e,r){this._rangePropMode[r]===`value`&&(t[e[0]]=n[e[0]]=null)},this),this._resetTarget()},t.prototype._resetTarget=function(){var e=this.get(`orient`,!0),t=this._targetAxisInfoMap=G();this._fillSpecifiedTargetAxis(t)?this._orient=e||this._makeAutoOrientByTargetAxis():(this._orient=e||`horizontal`,this._fillAutoTargetAxisByOrient(t,this._orient)),this._noTarget=!0,t.each(function(e){e.indexList.length&&(this._noTarget=!1)},this)},t.prototype._fillSpecifiedTargetAxis=function(e){var t=!1;return L(r1,function(n){var r=this.getReferringComponents(s1(n),Gs);if(r.specified){t=!0;var i=new m1;L(r.models,function(e){i.add(e.componentIndex)}),e.set(n,i)}},this),t},t.prototype._fillAutoTargetAxisByOrient=function(e,t){var n=this.ecModel,r=!0;if(r){var i=t===`vertical`?`y`:`x`,a=n.findComponents({mainType:i+`Axis`});o(a,i)}if(r){var a=n.findComponents({mainType:`singleAxis`,filter:function(e){return e.get(`orient`,!0)===t}});o(a,`single`)}function o(t,n){var i=t[0];if(i){var a=new m1;if(a.add(i.componentIndex),e.set(n,a),r=!1,n===`x`||n===`y`){var o=i.getReferringComponents(`grid`,Ws).models[0];o&&L(t,function(e){i.componentIndex!==e.componentIndex&&o===e.getReferringComponents(`grid`,Ws).models[0]&&a.add(e.componentIndex)})}}}r&&L(r1,function(t){if(r){var i=n.findComponents({mainType:s1(t),filter:function(e){return e.get(`type`,!0)===`category`}});if(i[0]){var a=new m1;a.add(i[0].componentIndex),e.set(t,a),r=!1}}},this)},t.prototype._makeAutoOrientByTargetAxis=function(){var e;return this.eachTargetAxis(function(t){!e&&(e=t)},this),e===`y`?`vertical`:`horizontal`},t.prototype._setDefaultThrottle=function(e){if(e.hasOwnProperty(`throttle`)&&(this._autoThrottle=!1),this._autoThrottle){var t=this.ecModel.option;this.option.throttle=t.animation&&t.animationDurationUpdate>0?100:20}},t.prototype._updateRangeUse=function(e){var t=this._rangePropMode,n=this.get(`rangeMode`);L([[`start`,`startValue`],[`end`,`endValue`]],function(r,i){var a=e[r[0]]!=null,o=e[r[1]]!=null;a&&!o?t[i]=`percent`:!a&&o?t[i]=`value`:n?t[i]=n[i]:a&&(t[i]=`percent`)})},t.prototype.noTarget=function(){return this._noTarget},t.prototype.getFirstTargetAxisModel=function(){var e;return this.eachTargetAxis(function(t,n){e??=this.ecModel.getComponent(s1(t),n)},this),e},t.prototype.eachTargetAxis=function(e,t){this._targetAxisInfoMap.each(function(n,r){L(n.indexList,function(n){e.call(t,r,n)})})},t.prototype.getAxisProxy=function(e,t){return d1(this.getAxisModel(e,t))},t.prototype.getAxisModel=function(e,t){var n=this._targetAxisInfoMap.get(e);if(n&&n.indexMap[t])return this.ecModel.getComponent(s1(e),t)},t.prototype.setRawRange=function(e){var t=this.option,n=this.settledOption;L([[`start`,`startValue`],[`end`,`endValue`]],function(r){(e[r[0]]!=null||e[r[1]]!=null)&&(t[r[0]]=n[r[0]]=e[r[0]],t[r[1]]=n[r[1]]=e[r[1]])},this),this._updateRangeUse(e)},t.prototype.setCalculatedRange=function(e){var t=this.option;L([`start`,`startValue`,`end`,`endValue`],function(n){t[n]=e[n]})},t.prototype.getPercentRange=function(){var e=this.findRepresentativeAxisProxy();if(e)return e.getWindow().percent},t.prototype.getValueRange=function(e,t){if(e==null&&t==null){var n=this.findRepresentativeAxisProxy();if(n)return n.getWindow().value}else return this.getAxisProxy(e,t).getWindow().value},t.prototype.findRepresentativeAxisProxy=function(e){if(e)return d1(e);for(var t,n=this._targetAxisInfoMap.keys(),r=0;ra[1];if(u&&!d&&!f)return!0;u&&(i=!0),d&&(t=!0),f&&(n=!0)}return i&&t&&n})}else L(r,function(n){if(i===`empty`)e.setData(t=t.map(n,function(e){return o(e)?e:NaN}));else{var r={};r[n]=a,t.selectRange(r)}});L(r,function(e){t.setApproximateExtent(a,e)})}});function o(e){return e>=a[0]&&e<=a[1]}},e.prototype._updateMinMaxSpan=function(){var e=this._minMaxSpan={},t=this._dataZoomModel,n=this._extent;L([`min`,`max`],function(r){var i=t.get(r+`Span`),a=t.get(r+`ValueSpan`);a!=null&&(a=this.getAxisModel().axis.scale.parse(a)),a==null?i!=null&&(a=Fo(i,[0,100],n,!0)-n[0]):i=Fo(n[0]+a,n,[0,100],!0),e[r+`Span`]=i,e[r+`ValueSpan`]=a},this)},e}(),x1={dirtyOnOverallProgress:!0,getTargetSeries:function(e){function t(t){e.eachComponent(`dataZoom`,function(n){n.eachTargetAxis(function(r,i){t(r,i,e.getComponent(s1(r),i),n)})})}var n=[];t(function(t,r,i,a){if(!d1(i)){var o=new b1(t,r,a,e);n.push(o),f1(i,o)}});var r=G();return L(n,function(e){L(e.getTargetSeriesModels(),function(e){r.set(e.uid,e)})}),r},overallReset:function(e,t){e.eachComponent(`dataZoom`,function(e){var n=[];e.eachTargetAxis(function(t,r){var i=e.getAxisProxy(t,r),a=p1(e,i);a?n.push([i,a]):i.reset(e,null)}),L(n,function(t){t[0].reset(e,t[1].getWindow().percentInverted)}),e.eachTargetAxis(function(n,r){e.getAxisProxy(n,r).filterData(e,t)})}),e.eachComponent(`dataZoom`,function(e){var t=e.findRepresentativeAxisProxy();if(t){var n=t.getWindow(),r=n.percent,i=n.value;e.setCalculatedRange({start:r[0],end:r[1],startValue:i[0],endValue:i[1]})}})}};function S1(e){e.registerAction(`dataZoom`,function(e,t){L(c1(t,e),function(t){t.setRawRange({start:e.start,end:e.end,startValue:e.startValue,endValue:e.endValue})})})}var C1=uc();function w1(e){C1(e,function(){e.registerProcessor(e.PRIORITY.PROCESSOR.FILTER,x1),S1(e),e.registerSubTypeDefaulter(`dataZoom`,function(){return`slider`})})}function T1(e){e.registerComponentModel(_1),e.registerComponentView(y1),w1(e)}var E1=function(){function e(){}return e}(),D1={};function O1(e,t){D1[e]=t}function k1(e){return D1[e]}var A1=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(t,n,r){var i=r.getTheme().get(`toolbox`),a=i?i.feature:null;a&&(this._themeFeatureOption=P({},a),i.feature={}),e.prototype.init.call(this,t,n,r),a&&(i.feature=a)},t.prototype.optionUpdated=function(){L(this.option.feature,function(e,t){var n=this._themeFeatureOption,r=k1(t);r&&(r.getDefaultOption&&(r.defaultOption=r.getDefaultOption(this.ecModel)),n&&n[t]&&(N(e,n[t]),n[t]=null),N(e,r.defaultOption))},this)},t.type=`toolbox`,t.layoutMode={type:`box`,ignoreSize:!0},t.defaultOption={show:!0,z:6,orient:`horizontal`,left:`right`,top:`top`,backgroundColor:`transparent`,borderColor:Q.color.border,borderRadius:0,borderWidth:0,padding:Q.size.m,itemSize:15,itemGap:Q.size.s,showTitle:!0,iconStyle:{borderColor:Q.color.accent50,color:`none`},emphasis:{iconStyle:{borderColor:Q.color.accent70}},tooltip:{show:!1,position:`bottom`}},t}(__);function j1(e,t){var n=Ng(t.get(`padding`)),r=t.getItemStyle([`color`,`opacity`]);return r.fill=t.get(`backgroundColor`),new Iu({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 M1=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(e,t,n,r){var i=this.group;if(i.removeAll(),!e.get(`show`))return;var a=+e.get(`itemSize`),o=e.get(`orient`)===`vertical`,s=e.get(`feature`)||{},c=this._features||=G(),l=[];L(s,function(e,t){l.push(t)}),new Rw(this._featureNames||[],l).add(u).update(u).remove(xe(u,null)).execute(),this._featureNames=_e(l,function(e){return c.hasKey(e)});function u(i,a){var o=i!=null&&a==null,u=i!=null&&a!=null,f=i==null,p=o||u?l[i]:l[a],m=s[p],h=o||u?new Th(m,e,t):null,g=h&&h.get(`show`),_;if(o){if(!g)return;if(N1(p))_={onclick:h.option.onclick,featureName:p};else{var v=k1(p);if(!v)return;_=new v}c.set(p,_)}else _=c.get(p);if(f||!g){P1(_)&&_.dispose&&_.dispose(t,n),c.removeKey(p);return}r&&r.newTitle!=null&&r.featureName===p&&(m.title=r.newTitle),o&&(_.uid=Dh(`toolbox-feature`)),_.model=h,_.ecModel=t,_.api=n,d(h,_,p),h.setIconStatus=function(e,t){var n=this.option,r=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[e]=t,r[e]&&(t===`emphasis`?Kd:qd)(r[e])},P1(_)&&_.render&&_.render(h,t,n,r)}function d(r,s,c){var l=r.getModel(`iconStyle`),u=r.getModel([`emphasis`,`iconStyle`]),d=s instanceof E1&&s.getIcons?s.getIcons():r.get(`icon`),f=r.get(`title`)||{},p,m;H(d)?(p={},p[c]=d):p=d,H(f)?(m={},m[c]=f):m=f;var h=r.iconPaths={};L(p,function(c,d){var f=Om(c,{},{x:-a/2,y:-a/2,width:a,height:a});f.setStyle(l.getItemStyle());var p=f.ensureState(`emphasis`);p.style=u.getItemStyle();var g=new Vu({style:{text:m[d],align:u.get(`textAlign`),borderRadius:u.get(`textBorderRadius`),padding:u.get(`textPadding`),fill:null,font:uh({fontStyle:u.get(`textFontStyle`),fontFamily:u.get(`textFontFamily`),fontSize:u.get(`textFontSize`),fontWeight:u.get(`textFontWeight`)},t)},ignore:!0});f.setTextContent(g),Im({el:f,componentModel:e,itemName:d,formatterParamsExtra:{title:m[d]}}),f.__title=m[d],f.on(`mouseover`,function(){var t=u.getItemStyle(),r=o?e.get(`right`)==null&&e.get(`left`)!==`right`?`right`:`left`:e.get(`bottom`)==null&&e.get(`top`)!==`bottom`?`bottom`:`top`;g.setStyle({fill:u.get(`textFill`)||t.fill||t.stroke||Q.color.neutral99,backgroundColor:u.get(`textBackgroundColor`)}),f.setTextConfig({position:u.get(`textPosition`)||r}),g.ignore=!e.get(`showTitle`),n.enterEmphasis(this)}).on(`mouseout`,function(){r.get([`iconStatus`,d])!==`emphasis`&&n.leaveEmphasis(this),g.hide()}),(r.get([`iconStatus`,d])===`emphasis`?Kd:qd)(f),i.add(f),f.on(`click`,z(s.onclick,s,t,n,d)),h[d]=f})}var f=l_(e,n).refContainer,p=e.getBoxLayoutParams(),m=e.get(`padding`),h=o_(p,f,m);n_(e.get(`orient`),i,e.get(`itemGap`),h.width,h.height),u_(i,p,f,m),i.add(j1(i.getBoundingRect(),e)),o||i.eachChild(function(e){var t=e.__title,r=e.ensureState(`emphasis`),o=r.textConfig||={},s=e.getTextContent(),c=s&&s.ensureState(`emphasis`);if(c&&!V(c)&&t){var l=c.style||={},u=Va(t,Vu.makeFont(l)),d=e.x+i.x,f=e.y+i.y+a,p=!1;f+u.height>n.getHeight()&&(o.position=`top`,p=!0);var m=p?-5-u.height:a+10;d+u.width/2>n.getWidth()?(o.position=[`100%`,m],l.align=`right`):d-u.width/2<0&&(o.position=[0,m],l.align=`left`)}})},t.prototype.updateView=function(e,t,n,r){L(this._features,function(e){e&&e instanceof E1&&e.updateView&&e.updateView(e.model,t,n,r)})},t.prototype.dispose=function(e,t){L(this._features,function(n){n&&n instanceof E1&&n.dispose&&n.dispose(e,t)})},t.type=`toolbox`,t}(Pb);function N1(e){return e.indexOf(`my`)===0}function P1(e){return e instanceof E1}var F1=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(e,t){var n=this.model,r=n.get(`name`)||e.get(`title.0.text`)||`echarts`,i=t.getZr().painter.getType()===`svg`,a=i?`svg`:n.get(`type`,!0)||`png`,o=t.getConnectedDataURL({type:a,backgroundColor:n.get(`backgroundColor`,!0)||e.get(`backgroundColor`)||Q.color.neutral00,connectedBackgroundColor:n.get(`connectedBackgroundColor`),excludeComponents:n.get(`excludeComponents`),pixelRatio:n.get(`pixelRatio`)}),s=y.browser;if(typeof MouseEvent==`function`&&(s.newEdge||!s.ie&&!s.edge)){var c=document.createElement(`a`);c.download=r+`.`+a,c.target=`_blank`,c.href=o;var l=new MouseEvent(`click`,{view:document.defaultView,bubbles:!0,cancelable:!1});c.dispatchEvent(l)}else if(window.navigator.msSaveOrOpenBlob||i){var u=o.split(`,`),d=u[0].indexOf(`base64`)>-1,f=i?decodeURIComponent(u[1]):u[1];d&&(f=window.atob(f));var p=r+`.`+a;if(window.navigator.msSaveOrOpenBlob){for(var m=f.length,h=new Uint8Array(m);m--;)h[m]=f.charCodeAt(m);var g=new Blob([h]);window.navigator.msSaveOrOpenBlob(g,p)}else{var _=document.createElement(`iframe`);document.body.appendChild(_);var v=_.contentWindow,b=v.document;b.open(`image/svg+xml`,`replace`),b.write(f),b.close(),v.focus(),b.execCommand(`SaveAs`,!0,p),document.body.removeChild(_)}}else{var x=n.get(`lang`),S=``,C=window.open();C.document.write(S),C.document.title=r}},t.getDefaultOption=function(e){return{show:!0,icon:`M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0`,title:e.getLocaleModel().get([`toolbox`,`saveAsImage`,`title`]),type:`png`,connectedBackgroundColor:Q.color.neutral00,name:``,excludeComponents:[`toolbox`],lang:e.getLocaleModel().get([`toolbox`,`saveAsImage`,`lang`])}},t}(E1),I1=`__ec_magicType_stack__`,L1=[[`line`,`bar`],[`stack`]],R1=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.getIcons=function(){var e=this.model,t=e.get(`icon`),n={};return L(e.get(`type`),function(e){t[e]&&(n[e]=t[e])}),n},t.getDefaultOption=function(e){return{show:!0,type:[],icon:{line:`M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4`,bar:`M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7`,stack:`M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z`},title:e.getLocaleModel().get([`toolbox`,`magicType`,`title`]),option:{},seriesIndex:{}}},t.prototype.onclick=function(e,t,n){var r=this.model,i=r.get([`seriesIndex`,n]);if(z1[n]){var a={series:[]};L(L1,function(e){I(e,n)>=0&&L(e,function(e){r.setIconStatus(e,`normal`)})}),r.setIconStatus(n,`emphasis`),e.eachComponent({mainType:`series`,query:i==null?null:{seriesIndex:i}},function(e){var t=e.subType,i=e.id,o=z1[n](t,i,e,r);o&&(F(o,e.option),a.series.push(o));var s=e.coordinateSystem;if(s&&s.type===`cartesian2d`&&(n===`line`||n===`bar`)){var c=s.getAxesByScale(`ordinal`)[0];if(c){var l=c.dim+`Axis`,u=e.getReferringComponents(l,Ws).models[0].componentIndex;a[l]=a[l]||[];for(var d=0;d<=u;d++)a[l][u]=a[l][u]||{};a[l][u].boundaryGap=n===`bar`}}});var o,s=n;n===`stack`&&(o=N({stack:r.option.title.tiled,tiled:r.option.title.stack},r.option.title),r.get([`iconStatus`,n])!==`emphasis`&&(s=`tiled`)),t.dispatchAction({type:`changeMagicType`,currentType:s,newOption:a,newTitle:o,featureName:`magicType`})}},t}(E1),z1={line:function(e,t,n,r){if(e===`bar`)return N({id:t,type:`line`,data:n.get(`data`),stack:n.get(`stack`),markPoint:n.get(`markPoint`),markLine:n.get(`markLine`)},r.get([`option`,`line`])||{},!0)},bar:function(e,t,n,r){if(e===`line`)return N({id:t,type:`bar`,data:n.get(`data`),stack:n.get(`stack`),markPoint:n.get(`markPoint`),markLine:n.get(`markLine`)},r.get([`option`,`bar`])||{},!0)},stack:function(e,t,n,r){var i=n.get(`stack`)===I1;if(e===`line`||e===`bar`)return r.setIconStatus(`stack`,i?`normal`:`emphasis`),N({id:t,stack:i?``:I1},r.get([`option`,`stack`])||{},!0)}};Cw({type:`changeMagicType`,event:`magicTypeChanged`,update:`prepareAndUpdate`},function(e,t){t.mergeOption(e.newOption)});var B1=Array(60).join(`-`),V1=` `;function H1(e){var t={},n=[],r=[];return e.eachRawSeries(function(e){var i=e.coordinateSystem;if(i&&(i.type===`cartesian2d`||i.type===`polar`)){var a=i.getBaseAxis();if(a.type===`category`){var o=PN(a);t[o]||(t[o]={categoryAxis:a,valueAxis:i.getOtherAxis(a),series:[]},r.push({axisDim:a.dim,axisIndex:a.index})),t[o].series.push(e)}else n.push(e)}else n.push(e)}),{seriesGroupByCategoryAxis:t,other:n,meta:r}}function U1(e){var t=[];return L(e,function(e,n){var r=e.categoryAxis,i=e.valueAxis.dim,a=[` `].concat(R(e.series,function(e){return e.name})),o=[r.model.getCategories()];L(e.series,function(e){var t=e.getRawData();o.push(e.getRawData().mapArray(t.mapDimension(i),function(e){return e}))});for(var s=[a.join(V1)],c=0;c=0)return!0}var J1=RegExp(`[`+V1+`]+`,`g`);function Y1(e){for(var t=e.split(/\n+/g),n=K1(t.shift()).split(J1),r=[],i=R(n,function(e){return{name:e,data:[]}}),a=0;a=0&&!n[i][r];i--);if(i<0){var a=e.queryComponents({mainType:`dataZoom`,subType:`select`,id:r})[0];if(a){var o=a.getPercentRange();n[0][r]={dataZoomId:r,start:o[0],end:o[1]}}}}),n.push(t)}function r0(e){var t=o0(e),n=t[t.length-1];t.length>1&&t.pop();var r={};return e0(n,function(e,n){for(var i=t.length-1;i>=0;i--)if(e=t[i][n],e){r[n]=e;break}}),r}function i0(e){t0(e).snapshots=null}function a0(e){return o0(e).length}function o0(e){var t=t0(e);return t.snapshots||=[{}],t.snapshots}var s0=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.onclick=function(e,t){i0(e),t.dispatchAction({type:`restore`,from:this.uid})},t.getDefaultOption=function(e){return{show:!0,icon:`M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5`,title:e.getLocaleModel().get([`toolbox`,`restore`,`title`])}},t}(E1);Cw({type:`restore`,event:`restore`,update:`prepareAndUpdate`},function(e,t){t.resetOption(`recreate`)});var c0=[`grid`,`xAxis`,`yAxis`,`geo`,`graph`,`polar`,`radiusAxis`,`angleAxis`,`bmap`],l0=function(){function e(e,t,n){var r=this;this._targetInfoList=[];var i=d0(t,e);L(f0,function(e,t){(!n||!n.include||I(n.include,t)>=0)&&e(i,r._targetInfoList)})}return e.prototype.setOutputRanges=function(e,t){return this.matchOutputRanges(e,t,function(e,t,n){if((e.coordRanges||=[]).push(t),!e.coordRange){e.coordRange=t;var r=h0[e.brushType](0,n,t);e.__rangeOffset={offset:_0[e.brushType](r.values,e.range,[1,1]),xyMinMax:r.xyMinMax}}}),e},e.prototype.matchOutputRanges=function(e,t,n){L(e,function(e){var r=this.findTargetInfo(e,t);r&&r!==!0&&L(r.coordSyses,function(r){n(e,h0[e.brushType](1,r,e.range,!0).values,r,t)})},this)},e.prototype.setInputRanges=function(e,t){L(e,function(e){var n=this.findTargetInfo(e,t);if(e.range=e.range||[],n&&n!==!0){e.panelId=n.panelId;var r=h0[e.brushType](0,n.coordSys,e.coordRange),i=e.__rangeOffset;e.range=i?_0[e.brushType](r.values,i.offset,y0(r.xyMinMax,i.xyMinMax)):r.values}},this)},e.prototype.makePanelOpts=function(e,t){return R(this._targetInfoList,function(n){var r=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:t?t(n):null,clipPath:FG(r),isTargetByCursor:LG(r,e,n.coordSysModel),getLinearBrushOtherExtent:IG(r)}})},e.prototype.controlSeries=function(e,t,n){var r=this.findTargetInfo(e,n);return r===!0||r&&I(r.coordSyses,t.coordinateSystem)>=0},e.prototype.findTargetInfo=function(e,t){for(var n=this._targetInfoList,r=d0(t,e),i=0;ie[1]&&e.reverse(),e}function d0(e,t){return Hs(e,t,{includeMainTypes:c0})}var f0={grid:function(e,t){var n=e.xAxisModels,r=e.yAxisModels,i=e.gridModels,a=G(),o={},s={};!n&&!r&&!i||(L(n,function(e){var t=e.axis.grid.model;a.set(t.id,t),o[t.id]=!0}),L(r,function(e){var t=e.axis.grid.model;a.set(t.id,t),s[t.id]=!0}),L(i,function(e){a.set(e.id,e),o[e.id]=!0,s[e.id]=!0}),a.each(function(e){var i=e.coordinateSystem,a=[];L(i.getCartesians(),function(e,t){(I(n,e.getAxis(`x`).model)>=0||I(r,e.getAxis(`y`).model)>=0)&&a.push(e)}),t.push({panelId:`grid--`+e.id,gridModel:e,coordSysModel:e,coordSys:a[0],coordSyses:a,getPanelRect:m0.grid,xAxisDeclared:o[e.id],yAxisDeclared:s[e.id]})}))},geo:function(e,t){L(e.geoModels,function(e){var n=e.coordinateSystem;t.push({panelId:`geo--`+e.id,geoModel:e,coordSysModel:e,coordSys:n,coordSyses:[n],getPanelRect:m0.geo})})}},p0=[function(e,t){var n=e.xAxisModel,r=e.yAxisModel,i=e.gridModel;return!i&&n&&(i=n.axis.grid.model),!i&&r&&(i=r.axis.grid.model),i&&i===t.gridModel},function(e,t){var n=e.geoModel;return n&&n===t.geoModel}],m0={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var e=this.coordSys.view,t=lR(null,e);return Sn(t,t,sR(null,e)),t}},h0={lineX:xe(g0,0),lineY:xe(g0,1),rect:function(e,t,n,r){var i=e?t.pointToData([n[0][0],n[1][0]],r):t.dataToPoint([n[0][0],n[1][0]],r),a=e?t.pointToData([n[0][1],n[1][1]],r):t.dataToPoint([n[0][1],n[1][1]],r),o=[u0([i[0],a[0]]),u0([i[1],a[1]])];return{values:o,xyMinMax:o}},polygon:function(e,t,n,r){var i=[tc(),tc()];return{values:R(n,function(n){var a=e?t.pointToData(n,r):t.dataToPoint(n,r);return i[0][0]=Math.min(i[0][0],a[0]),i[1][0]=Math.min(i[1][0],a[1]),i[0][1]=Math.max(i[0][1],a[0]),i[1][1]=Math.max(i[1][1],a[1]),a}),xyMinMax:i}}};function g0(e,t,n,r){var i=n.getAxis([`x`,`y`][e]),a=u0(R([0,1],function(e){return t?i.coordToData(i.toLocalCoord(r[e]),!0):i.toGlobalCoord(i.dataToCoord(r[e]))})),o=[];return o[e]=a,o[1-e]=[NaN,NaN],{values:a,xyMinMax:o}}var _0={lineX:xe(v0,0),lineY:xe(v0,1),rect:function(e,t,n){return[[e[0][0]-n[0]*t[0][0],e[0][1]-n[0]*t[0][1]],[e[1][0]-n[1]*t[1][0],e[1][1]-n[1]*t[1][1]]]},polygon:function(e,t,n){return R(e,function(e,r){return[e[0]-n[0]*t[r][0],e[1]-n[1]*t[r][1]]})}};function v0(e,t,n,r){return[t[0]-r[e]*n[0],t[1]-r[e]*n[1]]}function y0(e,t){var n=b0(e),r=b0(t),i=[n[0]/r[0],n[1]/r[1]];return isNaN(i[0])&&(i[0]=1),isNaN(i[1])&&(i[1]=1),i}function b0(e){return e?[e[0][1]-e[0][0],e[1][1]-e[1][0]]:[NaN,NaN]}var x0=L,S0=Fs(`toolbox-dataZoom_`),C0={x:`width`,y:`height`},w0=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(e,t,n,r){this._brushController||(this._brushController=new QW(n.getZr()),this._brushController.on(`brush`,z(this._onBrush,this)).mount()),O0(e,t,this,r,n),D0(e,t)},t.prototype.onclick=function(e,t,n){T0[n].call(this)},t.prototype.dispose=function(e,t){this._brushController&&this._brushController.dispose()},t.prototype._onBrush=function(e){var t=e.areas;if(!e.isEnd||!t.length)return;var n={},r=this.ecModel;this._brushController.updateCovers([]),new l0(E0(this.model),r,{include:[`grid`]}).matchOutputRanges(t,r,function(e,t,n){if(n.type===`cartesian2d`){var r=n.master.getRect().clone(),a=e.brushType;a===`rect`?(i(`x`,n,r,t[0]),i(`y`,n,r,t[1])):i({lineX:`x`,lineY:`y`}[a],n,r,t)}}),n0(r,n),this._dispatchZoomAction(n);function i(e,t,i,o){var s=t.getAxis(e),c=s.model,l=a(e,c,r),u=l.findRepresentativeAxisProxy(c).getMinMaxSpan(),d=s.scale.getExtent();(u.minValueSpan!=null||u.maxValueSpan!=null)&&(o=AW(0,o.slice(),d,0,u.minValueSpan,u.maxValueSpan));var f=Wo(d,i[C0[e]],.5);l&&(n[l.id]={dataZoomId:l.id,startValue:isFinite(f)?Bo(o[0],f):o[0],endValue:isFinite(f)?Bo(o[1],f):o[1]})}function a(e,t,n){var r;return n.eachComponent({mainType:`dataZoom`,subType:`select`},function(n){n.getAxisModel(e,t.componentIndex)&&(r=n)}),r}},t.prototype._dispatchZoomAction=function(e){var t=[];x0(e,function(e,n){t.push(M(e))}),t.length&&this.api.dispatchAction({type:`dataZoom`,from:this.uid,batch:t})},t.getDefaultOption=function(e){return{show:!0,filterMode:`filter`,icon:{zoom:`M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1`,back:`M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26`},title:e.getLocaleModel().get([`toolbox`,`dataZoom`,`title`]),brushStyle:{borderWidth:0,color:Q.color.backgroundTint}}},t}(E1),T0={zoom:function(){var e=!this._isZoomActive;this.api.dispatchAction({type:`takeGlobalCursor`,key:`dataZoomSelect`,dataZoomSelectActive:e})},back:function(){this._dispatchZoomAction(r0(this.ecModel))}};function E0(e){var t={xAxisIndex:e.get(`xAxisIndex`,!0),yAxisIndex:e.get(`yAxisIndex`,!0),xAxisId:e.get(`xAxisId`,!0),yAxisId:e.get(`yAxisId`,!0)};return t.xAxisIndex==null&&t.xAxisId==null&&(t.xAxisIndex=`all`),t.yAxisIndex==null&&t.yAxisId==null&&(t.yAxisIndex=`all`),t}function D0(e,t){e.setIconStatus(`back`,a0(t)>1?`emphasis`:`normal`)}function O0(e,t,n,r,i){var a=n._isZoomActive;r&&r.type===`takeGlobalCursor`&&(a=r.key===`dataZoomSelect`?r.dataZoomSelectActive:!1),n._isZoomActive=a,e.setIconStatus(`zoom`,a?`emphasis`:`normal`);var o=new l0(E0(e),t,{include:[`grid`]}).makePanelOpts(i,function(e){return e.xAxisDeclared&&!e.yAxisDeclared?`lineX`:!e.xAxisDeclared&&e.yAxisDeclared?`lineY`:`rect`});n._brushController.setPanels(o).enableBrush(a&&o.length?{brushType:`auto`,brushStyle:e.getModel(`brushStyle`).getItemStyle()}:!1)}L_(`dataZoom`,function(e){var t=e.getComponent(`toolbox`,0),n=[`feature`,`dataZoom`];if(!t||t.get(n)==null)return;var r=t.getModel(n),i=[],a=Hs(e,E0(r));x0(a.xAxisModels,function(e){return o(e,`xAxis`,`xAxisIndex`)}),x0(a.yAxisModels,function(e){return o(e,`yAxis`,`yAxisIndex`)});function o(e,t,n){var a=e.componentIndex,o={type:`select`,$fromToolbox:!0,filterMode:r.get(`filterMode`,!0)||`filter`,id:S0+t+a};o[n]=a,i.push(o)}return i});function k0(e){e.registerComponentModel(A1),e.registerComponentView(M1),O1(`saveAsImage`,F1),O1(`magicType`,R1),O1(`dataView`,Q1),O1(`dataZoom`,w0),O1(`restore`,s0),Fw(T1)}var A0=function(e){_(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:Q.color.neutral00,shadowBlur:10,shadowColor:`rgba(0, 0, 0, .2)`,shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,defaultBorderColor:Q.color.border,padding:null,extraCssText:``,axisPointer:{type:`line`,axis:`auto`,animation:`auto`,animationDurationUpdate:200,animationEasingUpdate:`exponentialOut`,crossStyle:{color:Q.color.borderShade,width:1,type:`dashed`,textStyle:{}}},textStyle:{color:Q.color.tertiary,fontSize:14}},t}(__);function j0(e){var t=e.get(`confine`);return t==null?e.get(`renderMode`)===`richText`:!!t}function M0(e){if(y.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 H0(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?`,`:``)+(y.transformSupported?``+R0+i:`,left`+i+`,top`+i)),L0+`:`+a}function U0(e,t,n){var r=e.toFixed(0)+`px`,i=t.toFixed(0)+`px`;if(!y.transformSupported)return n?`top:`+i+`;left:`+r+`;`:[[`top`,i],[`left`,r]];var a=y.transform3dSupported,o=`translate`+(a?`3d`:``)+`(`+r+`,`+i+(a?`,0`:``)+`)`;return n?`top:0;left:0;`+R0+`:`+o+`;`:[[`top`,0],[`left`,0],[N0,o]]}function W0(e){var t=[],n=e.get(`fontSize`),r=e.getTextColor();r&&t.push(`color:`+r),t.push(`font:`+e.getFont());var i=W(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),L([`decoration`,`align`],function(n){var r=e.get(n);r&&t.push(`text-`+n+`:`+r)}),t.join(`;`)}function G0(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=vb(e,`html`),p=l+`px `+u+`px `+s+`px `+c;return i.push(`box-shadow:`+p),t&&a>0&&i.push(H0(a,n,r)),o&&i.push(`background-color:`+o),L([`width`,`color`,`radius`],function(t){var n=`border-`+t,r=Mg(n),a=e.get(r);a!=null&&i.push(n+`:`+a+(t===`color`?``:`px`))}),i.push(W0(d)),f!=null&&i.push(`padding:`+Ng(f).join(`px `)+`px`),i.join(`;`)+`;`}function K0(e,t,n,r,i){var a=t&&t.painter;if(n){var o=a&&a.getViewportRoot();o&&wt(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 q0=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,y.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&&(H(i)?document.querySelector(i):Ee(i)?i:V(i)&&i(e.getDom()));K0(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;zt(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=I0(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=z0+G0(e,!this._firstShow,this._longHide,this._enableDisplayTransition)+U0(i[0],i[1],!0)+(`border-color:`+Bg(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(H(i)&&n.get(`trigger`)===`item`&&!j0(n)&&(o=V0(n,r,i)),H(e))a.innerHTML=e+o;else if(e){a.innerHTML=``,B(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||y.node||!n.getDom())){var i=t2(r,n);this._ticket=``;var a=r.dataByCoordSys,o=o2(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=Q0;c.x=r.x,c.y=r.y,c.update(),Z(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=rZ(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(t2(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&&e2([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(Z(n).ssrType===`legend`)return;this._lastDataByCoordSys=null,this._cbParamsList=null;var i,a;Rx(n,function(e){if(e.tooltipDisabled)return i=a=null,!0;i||a||(Z(e).dataIndex==null?Z(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=z(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=e2([t.tooltipOption],r),o=this._renderMode,s=[],c=ib(`section`,{blocks:[],noHeader:!0}),l=[],u=new yb;L(e,function(e){L(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=PX(i,a,n,e.seriesDataIndices,e.valueLabelOpt),p=ib(`section`,{header:f,noHeader:!Ie(f),sortBlocks:!0,blocks:[]});c.blocks.push(p),L(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=PE(t.axis,{value:d}),m.axisValueLabel=f,m.marker=u.makeTooltipMarker(`item`,Bg(m.color),o);var h=my(a.formatTooltip(c,!0,null)),g=h.frag;if(g){var _=e2([a],r).get(`valueFormatter`);p.blocks.push(_?P({valueFormatter:_},g):g)}h.text&&l.push(h.text),s.push(m)}})}})}),c.blocks.reverse(),l.reverse();var d=t.position,f=ub(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=Z(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=e2([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 yb;h.marker=g.makeTooltipMarker(`item`,Bg(h.color),d);var _=my(s.formatTooltip(c,!1,l)),v=p.get(`order`),y=p.get(`valueFormatter`),b=_.frag,x=b?ub(y?P({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=Z(t),a=i.tooltipConfig.option||{},o=a.encodeHTMLContent;if(H(a)){var s=a;a={content:s,formatter:s},o=!0}o&&r&&a.content&&(a=M(a),a.content=Mt(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=e2(c,this._tooltipModel,u?{position:u}:null),f=d.get(`content`),p=Math.random()+``,m=new yb;this._showOrMove(d,function(){var n=M(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(H(u)){var p=e.ecModel.get(`useUTC`),m=B(n)?n[0]:n,h=m&&m.axisType&&m.axisType.indexOf(`time`)>=0;d=u,h&&(d=pg(m.axisValue,d,p)),d=Lg(d,n,!0)}else if(V(u)){var g=z(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`||B(t))return{color:r||i};if(!B(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),V(t)&&(t=t([n,r],a,i.el,f,{viewSize:[s,c],contentSize:l.slice()})),B(t))n=X(t[0],s),r=X(t[1],c);else if(U(t)){var p=t;p.width=l[0],p.height=l[1];var m=o_(p,{width:s,height:c});n=m.x,r=m.y,u=null,d=null}else if(H(t)&&o){var h=i2(t,f,l,e.get(`borderWidth`));n=h[0],r=h[1]}else{var h=n2(n,r,i,s,c,u?null:20,d?null:20);n=h[0],r=h[1]}if(u&&(n-=a2(u)?l[0]/2:u===`right`?l[0]:0),d&&(r-=a2(d)?l[1]/2:d===`bottom`?l[1]:0),j0(e)){var h=r2(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&&L(n,function(n,a){var o=n.dataByAxis||[],s=(e[a]||{}).dataByAxis||[];i&&=o.length===s.length,i&&L(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&&L(o,function(e,t){var n=c[t];i=i&&e.seriesIndex===n.seriesIndex&&e.dataIndex===n.dataIndex}),r&&L(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){y.node||!t.getDom()||(Yb(this,`_updatePosition`),this._tooltipContent.dispose(),tZ(`itemTooltip`,t),this._tooltipContent=null,this._tooltipModel=null,this._lastDataByCoordSys=null,this._cbParamsList=null)},t.type=`tooltip`,t}(Pb);function e2(e,t,n){var r=t.ecModel,i;n?(i=new Th(n,r,r),i=new Th(t.option,i,r)):i=t;for(var a=e.length-1;a>=0;a--){var o=e[a];o&&(o instanceof Th&&(o=o.get(`tooltip`,!0)),H(o)&&(o={formatter:o}),o&&(i=new Th(o,i,r)))}return i}function t2(e,t){return e.dispatchAction||z(t.dispatchAction,t)}function n2(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 r2(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 i2(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 a2(e){return e===`center`||e===`middle`}function o2(e,t,n){var r=Us(e).queryOptionMap,i=r.keys()[0];if(!(!i||i===`series`)){var a=Ks(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=Z(t).tooltipConfig;if(n&&n.name===e.name)return s=t,!0}),s)return{componentMainType:i,componentIndex:a.componentIndex,el:s}}}}function s2(e){Fw(gZ),e.registerComponentModel(A0),e.registerComponentView($0),e.registerAction({type:`showTip`,event:`showTip`,update:`tooltip:manuallyShowTip`},qe),e.registerAction({type:`hideTip`,event:`hideTip`,update:`tooltip:manuallyHideTip`},qe)}var c2=[`rect`,`polygon`,`keep`,`clear`];function l2(e,t){var n=vs(e?e.brush:[]);if(n.length){var r=[];L(n,function(e){var t=e.hasOwnProperty(`toolbox`)?e.toolbox:[];t instanceof Array&&(r=r.concat(t))});var i=e&&e.toolbox;B(i)&&(i=i[0]),i||(i={feature:{}},e.toolbox=[i]);var a=i.feature||={},o=a.brush||={},s=o.type||=[];s.push.apply(s,r),fc(s,function(e){return e+``},null),t&&!s.length&&s.push.apply(s,c2)}}var u2=L;function d2(e){if(e){for(var t in e)if(e.hasOwnProperty(t))return!0}}function f2(e,t,n){var r={};return u2(t,function(t){var a=r[t]=i();u2(e[t],function(e,r){if(LV.isValidType(r)){var i={type:r,visual:e};n&&n(i,t),a[r]=new LV(i),r===`opacity`&&(i=M(i),i.type=`colorAlpha`,a.__hidden.__alphaForOpacity=new LV(i))}})}),r;function i(){var e=function(){};return e.prototype.__hidden=e.prototype,new e}}function p2(e,t,n){var r;L(n,function(e){t.hasOwnProperty(e)&&d2(t[e])&&(r=!0)}),r&&L(n,function(n){t.hasOwnProperty(n)&&d2(t[n])?e[n]=M(t[n]):delete e[n]})}function m2(e,t,n,r,i,a){var o={};L(e,function(e){o[e]=LV.prepareVisualTypes(t[e])});var s;function c(e){return Mx(n,s,e)}function l(e,t){Px(n,s,e,t)}a==null?n.each(u):n.each([a],u);function u(e,u){s=a==null?e:u;var d=n.getRawDataItem(s);if(!(d&&d.visualMap===!1))for(var f=r.call(i,e),p=t[f],m=o[f],h=0,g=m.length;ht[0][1]&&(t[0][1]=a[0]),a[1]t[1][1]&&(t[1][1]=a[1])}return t&&j2(t)}};function j2(e){return new J(e[0][0],e[1][0],e[0][1]-e[0][0],e[1][1]-e[1][0])}var M2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(e,t){this.ecModel=e,this.api=t,this.model,(this._brushController=new QW(t.getZr())).on(`brush`,z(this._onBrush,this)).mount()},t.prototype.render=function(e,t,n,r){this.model=e,this._updateController(e,t,n,r)},t.prototype.updateTransform=function(e,t,n,r){C2(t),this._updateController(e,t,n,r)},t.prototype.updateVisual=function(e,t,n,r){this.updateTransform(e,t,n,r)},t.prototype.updateView=function(e,t,n,r){this._updateController(e,t,n,r)},t.prototype._updateController=function(e,t,n,r){(!r||r.$from!==e.id)&&this._brushController.setPanels(e.brushTargetManager.makePanelOpts(n)).enableBrush(e.brushOption).updateCovers(e.areas.slice())},t.prototype.dispose=function(){this._brushController.dispose()},t.prototype._onBrush=function(e){var t=this.model.id,n=this.model.brushTargetManager.setOutputRanges(e.areas,this.ecModel);(!e.isEnd||e.removeOnClick)&&this.api.dispatchAction({type:`brush`,brushId:t,areas:M(n),$from:t}),e.isEnd&&this.api.dispatchAction({type:`brushEnd`,brushId:t,areas:M(n),$from:t})},t.type=`brush`,t}(Pb),N2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.areas=[],n.brushOption={},n}return t.prototype.optionUpdated=function(e,t){var n=this.option;!t&&p2(n,e,[`inBrush`,`outOfBrush`]);var r=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:this.option.defaultOutOfBrushColor},r.hasOwnProperty(`liftZ`)||(r.liftZ=5)},t.prototype.setAreas=function(e){e&&(this.areas=R(e,function(e){return P2(this.option,e)},this))},t.prototype.setBrushOption=function(e){this.brushOption=P2(this.option,e),this.brushType=this.brushOption.brushType},t.type=`brush`,t.dependencies=[`geo`,`grid`,`xAxis`,`yAxis`,`parallel`,`series`],t.defaultOption={seriesIndex:`all`,brushType:`rect`,brushMode:`single`,transformable:!0,brushStyle:{borderWidth:1,color:Q.color.backgroundTint,borderColor:Q.color.borderTint},throttleType:`fixRate`,throttleDelay:0,removeOnClick:!0,z:1e4,defaultOutOfBrushColor:Q.color.disabled},t}(__);function P2(e,t){return N({brushType:e.brushType,brushMode:e.brushMode,transformable:e.transformable,brushStyle:new Th(e.brushStyle).getItemStyle(),removeOnClick:e.removeOnClick,z:e.z},t,!0)}var F2=[`rect`,`polygon`,`lineX`,`lineY`,`keep`,`clear`],I2=function(e){_(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.render=function(e,t,n){var r,i,a;t.eachComponent({mainType:`brush`},function(e){r=e.brushType,i=e.brushOption.brushMode||`single`,a||=!!e.areas.length}),this._brushType=r,this._brushMode=i,L(e.get(`type`,!0),function(t){e.setIconStatus(t,(t===`keep`?i===`multiple`:t===`clear`?a:t===r)?`emphasis`:`normal`)})},t.prototype.updateView=function(e,t,n){this.render(e,t,n)},t.prototype.getIcons=function(){var e=this.model,t=e.get(`icon`,!0),n={};return L(e.get(`type`,!0),function(e){t[e]&&(n[e]=t[e])}),n},t.prototype.onclick=function(e,t,n){var r=this._brushType,i=this._brushMode;n===`clear`?(t.dispatchAction({type:`axisAreaSelect`,intervals:[]}),t.dispatchAction({type:`brush`,command:`clear`,areas:[]})):t.dispatchAction({type:`takeGlobalCursor`,key:`brush`,brushOption:{brushType:n===`keep`?r:r===n?!1:n,brushMode:n===`keep`?i===`multiple`?`single`:`multiple`:i}})},t.getDefaultOption=function(e){return{show:!0,type:F2.slice(),icon:{rect:`M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13`,polygon:`M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2`,lineX:`M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4`,lineY:`M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4`,keep:`M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z`,clear:`M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2`},title:e.getLocaleModel().get([`toolbox`,`brush`,`title`])}},t}(E1);function L2(e){e.registerComponentView(M2),e.registerComponentModel(N2),e.registerPreprocessor(l2),e.registerVisual(e.PRIORITY.VISUAL.BRUSH,w2),e.registerAction({type:`brush`,event:`brush`,update:`updateVisual`},function(e,t){t.eachComponent({mainType:`brush`,query:e},function(t){t.setAreas(e.areas)})}),e.registerAction({type:`brushSelect`,event:`brushSelected`,update:`none`},qe),e.registerAction({type:`brushEnd`,event:`brushEnd`,update:`none`},qe),O1(`brush`,I2)}var R2=function(e){_(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.type=`title`,t.defaultOption={z:6,show:!0,text:``,target:`blank`,subtext:``,subtarget:`blank`,left:`center`,top:Q.size.m,backgroundColor:Q.color.transparent,borderColor:Q.color.primary,borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:`bold`,color:Q.color.primary},subtextStyle:{fontSize:12,color:Q.color.quaternary}},t}(__),z2=function(e){_(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){if(this.group.removeAll(),e.get(`show`)){var r=this.group,i=e.getModel(`textStyle`),a=e.getModel(`subtextStyle`),o=e.get(`textAlign`),s=W(e.get(`textBaseline`),e.get(`textVerticalAlign`)),c=new Vu({style:nh(i,{text:e.get(`text`),fill:i.getTextColor()},{disableBox:!0}),z2:10}),l=c.getBoundingRect(),u=e.get(`subtext`),d=new Vu({style:nh(a,{text:u,fill:a.getTextColor(),y:l.height+e.get(`itemGap`),verticalAlign:`top`},{disableBox:!0}),z2:10}),f=e.get(`link`),p=e.get(`sublink`),m=e.get(`triggerEvent`,!0);c.silent=!f&&!m,d.silent=!p&&!m,f&&c.on(`click`,function(){Vg(f,`_`+e.get(`target`))}),p&&d.on(`click`,function(){Vg(p,`_`+e.get(`subtarget`))}),Z(c).eventData=Z(d).eventData=m?{componentType:`title`,componentIndex:e.componentIndex}:null,r.add(c),u&&r.add(d);var h=r.getBoundingRect(),g=e.getBoxLayoutParams();g.width=h.width,g.height=h.height;var _=o_(g,l_(e,n).refContainer,e.get(`padding`));o||(o=e.get(`left`)||e.get(`right`),o===`middle`&&(o=`center`),o===`right`?_.x+=_.width:o===`center`&&(_.x+=_.width/2)),s||(s=e.get(`top`)||e.get(`bottom`),s===`center`&&(s=`middle`),s===`bottom`?_.y+=_.height:s===`middle`&&(_.y+=_.height/2),s||=`top`),r.x=_.x,r.y=_.y,r.markRedraw();var v={align:o,verticalAlign:s};c.setStyle(v),d.setStyle(v),h=r.getBoundingRect();var y=_.margin,b=e.getItemStyle([`color`,`opacity`]);b.fill=e.get(`backgroundColor`);var x=new Iu({shape:{x:h.x-y[3],y:h.y-y[0],width:h.width+y[1]+y[3],height:h.height+y[0]+y[2],r:e.get(`borderRadius`)},style:b,subPixelOptimize:!0,silent:!0});r.add(x)}},t.type=`title`,t}(Pb);function B2(e){e.registerComponentModel(R2),e.registerComponentView(z2)}var V2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.layoutMode=`box`,n}return t.prototype.init=function(e,t,n){this.mergeDefaultAndTheme(e,n),this._initData()},t.prototype.mergeOption=function(t){e.prototype.mergeOption.apply(this,arguments),this._initData()},t.prototype.setCurrentIndex=function(e){e??=this.option.currentIndex;var t=this._data.count();this.option.loop?e=(e%t+t)%t:(e>=t&&(e=t-1),e<0&&(e=0)),this.option.currentIndex=e},t.prototype.getCurrentIndex=function(){return this.option.currentIndex},t.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},t.prototype.setPlayState=function(e){this.option.autoPlay=!!e},t.prototype.getPlayState=function(){return!!this.option.autoPlay},t.prototype._initData=function(){var e=this.option,t=e.data||[],n=e.axisType,r=this._names=[],i;n===`category`?(i=[],L(t,function(e,t){var n=Ms(xs(e),``),a;U(e)?(a=M(e),a.value=t):a=t,i.push(a),r.push(n)})):i=t;var a={category:`ordinal`,time:`time`,value:`number`}[n]||`number`;(this._data=new fT([{name:`value`,type:a}],this)).initData(i,r)},t.prototype.getData=function(){return this._data},t.prototype.getCategories=function(){if(this.get(`axisType`)===`category`)return this._names.slice()},t.type=`timeline`,t.defaultOption={z:4,show:!0,axisType:`time`,realtime:!0,left:`20%`,top:null,right:`20%`,bottom:0,width:null,height:40,padding:Q.size.m,controlPosition:`left`,autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:Q.color.secondary},data:[]},t}(__),H2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`timeline.slider`,t.defaultOption=Ah(V2.defaultOption,{backgroundColor:`rgba(0,0,0,0)`,borderColor:Q.color.border,borderWidth:0,orient:`horizontal`,inverse:!1,tooltip:{trigger:`item`},symbol:`circle`,symbolSize:12,lineStyle:{show:!0,width:2,color:Q.color.accent10},label:{position:`auto`,show:!0,interval:`auto`,rotate:0,color:Q.color.tertiary},itemStyle:{color:Q.color.accent20,borderWidth:0},checkpointStyle:{symbol:`circle`,symbolSize:15,color:Q.color.accent50,borderColor:Q.color.accent50,borderWidth:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:`rgba(0, 0, 0, 0)`,animation:!0,animationDuration:300,animationEasing:`quinticInOut`},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:`left`,playIcon:`path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10.6699C11.5 9.90014 12.3333 9.41887 13 9.80371L20.5 14.1338C21.1667 14.5187 21.1667 15.4813 20.5 15.8662L13 20.1963C12.3333 20.5811 11.5 20.0999 11.5 19.3301V10.6699Z`,stopIcon:`path://M15 0C23.2843 0 30 6.71573 30 15C30 23.2843 23.2843 30 15 30C6.71573 30 0 23.2843 0 15C0 6.71573 6.71573 0 15 0ZM15 3C8.37258 3 3 8.37258 3 15C3 21.6274 8.37258 27 15 27C21.6274 27 27 21.6274 27 15C27 8.37258 21.6274 3 15 3ZM11.5 10C12.3284 10 13 10.6716 13 11.5V18.5C13 19.3284 12.3284 20 11.5 20C10.6716 20 10 19.3284 10 18.5V11.5C10 10.6716 10.6716 10 11.5 10ZM18.5 10C19.3284 10 20 10.6716 20 11.5V18.5C20 19.3284 19.3284 20 18.5 20C17.6716 20 17 19.3284 17 18.5V11.5C17 10.6716 17.6716 10 18.5 10Z`,nextIcon:`path://M0.838834 18.7383C0.253048 18.1525 0.253048 17.2028 0.838834 16.617L7.55635 9.89949L0.838834 3.18198C0.253048 2.59619 0.253048 1.64645 0.838834 1.06066C1.42462 0.474874 2.37437 0.474874 2.96015 1.06066L10.7383 8.83883L10.8412 8.95277C11.2897 9.50267 11.2897 10.2963 10.8412 10.8462L10.7383 10.9602L2.96015 18.7383C2.37437 19.3241 1.42462 19.3241 0.838834 18.7383Z`,prevIcon:`path://M10.9602 1.06066C11.5459 1.64645 11.5459 2.59619 10.9602 3.18198L4.24264 9.89949L10.9602 16.617C11.5459 17.2028 11.5459 18.1525 10.9602 18.7383C10.3744 19.3241 9.42462 19.3241 8.83883 18.7383L1.06066 10.9602L0.957771 10.8462C0.509245 10.2963 0.509245 9.50267 0.957771 8.95277L1.06066 8.83883L8.83883 1.06066C9.42462 0.474874 10.3744 0.474874 10.9602 1.06066Z`,prevBtnSize:18,nextBtnSize:18,color:Q.color.accent50,borderColor:Q.color.accent50,borderWidth:0},emphasis:{label:{show:!0,color:Q.color.accent60},itemStyle:{color:Q.color.accent60,borderColor:Q.color.accent60},controlStyle:{color:Q.color.accent70,borderColor:Q.color.accent70}},progress:{lineStyle:{color:Q.color.accent30},itemStyle:{color:Q.color.accent40}},data:[]}),t}(V2);me(H2,py.prototype);var U2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`timeline`,t}(Pb),W2=function(e){_(t,e);function t(t,n,r,i){var a=e.call(this,t,n,r)||this;return a.type=i||`value`,a}return t.prototype.getLabelModel=function(){return this.model.getModel(`label`)},t.prototype.isHorizontal=function(){return this.model.get(`orient`)===`horizontal`},t}(DO),G2=Math.PI,K2=Bs(),q2=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(e,t){this.api=t},t.prototype.render=function(e,t,n){if(this.model=e,this.api=n,this.ecModel=t,this.group.removeAll(),e.get(`show`,!0)){var r=this._layout(e,n),i=this._createGroup(`_mainGroup`),a=this._createGroup(`_labelGroup`),o=this._axis=this._createAxis(r,e);e.formatTooltip=function(e){return ib(`nameValue`,{noName:!0,value:o.scale.getLabel({value:e})})},L([`AxisLine`,`AxisTick`,`Control`,`CurrentPointer`],function(t){this[`_render`+t](r,i,o,e)},this),this._renderAxisLabel(r,a,o,e),this._position(r,e)}this._doPlayStop(),this._updateTicksStatus()},t.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},t.prototype.dispose=function(){this._clearTimer()},t.prototype._layout=function(e,t){var n=e.get([`label`,`position`]),r=e.get(`orient`),i=J2(e,t),a=n==null||n===`auto`?r===`horizontal`?i.y+i.height/2=0||a===`+`?`left`:`right`},s={horizontal:a>=0||a===`+`?`top`:`bottom`,vertical:`middle`},c={horizontal:0,vertical:G2/2},l=r===`vertical`?i.height:i.width,u=e.getModel(`controlStyle`),d=u.get(`show`,!0),f=d?u.get(`itemSize`):0,p=d?u.get(`itemGap`):0,m=f+p,h=e.get([`label`,`rotate`])||0;h=h*G2/180;var g,_,v,y=u.get(`position`,!0),b=d&&u.get(`showPlayBtn`,!0),x=d&&u.get(`showPrevBtn`,!0),S=d&&u.get(`showNextBtn`,!0),C=0,w=l;y===`left`||y===`bottom`?(b&&(g=[0,0],C+=m),x&&(_=[C,0],C+=m),S&&(v=[w-f,0],w-=m)):(b&&(g=[w-f,0],w-=m),x&&(_=[0,0],C+=m),S&&(v=[w-f,0],w-=m));var T=[C,w];return e.get(`inverse`)&&T.reverse(),{viewRect:i,mainLength:l,orient:r,rotation:c[r],labelRotation:h,labelPosOpt:a,labelAlign:e.get([`label`,`align`])||o[r],labelBaseline:e.get([`label`,`verticalAlign`])||e.get([`label`,`baseline`])||s[r],playPosition:g,prevBtnPosition:_,nextBtnPosition:v,axisExtent:T,controlSize:f,controlGap:p}},t.prototype._position=function(e,t){var n=this._mainGroup,r=this._labelGroup,i=e.viewRect;if(e.orient===`vertical`){var a=Yt(),o=i.x,s=i.y+i.height;$t(a,a,[-o,-s]),en(a,a,-G2/2),$t(a,a,[o,s]),i=i.clone(),i.applyTransform(a)}var c=g(i),l=g(n.getBoundingRect()),u=g(r.getBoundingRect()),d=[n.x,n.y],f=[r.x,r.y];f[0]=d[0]=c[0][0];var p=e.labelPosOpt;if(p==null||H(p)){var m=p===`+`?0:1;_(d,l,c,1,m),_(f,u,c,1,1-m)}else{var m=p>=0?0:1;_(d,l,c,1,m),f[1]=d[1]+p}n.setPosition(d),r.setPosition(f),n.rotation=r.rotation=e.rotation,h(n),h(r);function h(e){e.originX=c[0][0]-e.x,e.originY=c[1][0]-e.y}function g(e){return[[e.x,e.x+e.width],[e.y,e.y+e.height]]}function _(e,t,n,r,i){e[r]+=n[r][i]-t[r][i]}},t.prototype._createAxis=function(e,t){var n=t.getData(),r=t.get(`axisType`)||t.get(`type`);r!==`category`&&r!==`time`&&(r=`value`);var i=kE(t,r,!1);i.getTicks=function(){return n.mapArray([`value`],function(e){return{value:e}})};var a=n.getDataExtent(`value`);i.setExtent(a[0],a[1]),ID(i,{fixMinMax:[!0,!0]});var o=new W2(`value`,i,e.axisExtent,r);return o.model=t,o},t.prototype._createGroup=function(e){var t=this[e]=new Y;return this.group.add(t),t},t.prototype._renderAxisLine=function(e,t,n,r){var i=n.getExtent();if(r.get([`lineStyle`,`show`])){var a=new wp({shape:{x1:i[0],y1:0,x2:i[1],y2:0},style:P({lineCap:`round`},r.getModel(`lineStyle`).getLineStyle()),silent:!0,z2:1});t.add(a);var o=this._progressLine=new wp({shape:{x1:i[0],x2:this._currentPointer?this._currentPointer.x:i[0],y1:0,y2:0},style:F({lineCap:`round`,lineWidth:a.style.lineWidth},r.getModel([`progress`,`lineStyle`]).getLineStyle()),silent:!0,z2:1});t.add(o)}},t.prototype._renderAxisTick=function(e,t,n,r){var i=this,a=r.getData(),o=n.scale.getTicks();this._tickSymbols=[],L(o,function(e){var o=n.dataToCoord(e.value),s=a.getItemModel(e.value),c=s.getModel(`itemStyle`),l=s.getModel([`emphasis`,`itemStyle`]),u=s.getModel([`progress`,`itemStyle`]),d=X2(s,c,t,{x:o,y:0,onclick:z(i._changeTimeline,i,e.value)});d.ensureState(`emphasis`).style=l.getItemStyle(),d.ensureState(`progress`).style=u.getItemStyle(),uf(d);var f=Z(d);s.get(`tooltip`)?(f.dataIndex=e.value,f.dataModel=r):f.dataIndex=f.dataModel=null,i._tickSymbols.push(d)})},t.prototype._renderAxisLabel=function(e,t,n,r){var i=this;if(n.getLabelModel().get(`show`)){var a=r.getData(),o=n.getViewLabels();this._tickLabels=[],L(o,function(r){if(!r.tick.offInterval){var o=r.tick.value,s=a.getItemModel(o),c=s.getModel(`label`),l=s.getModel([`emphasis`,`label`]),u=s.getModel([`progress`,`label`]),d=new Vu({x:n.dataToCoord(o),y:0,rotation:e.labelRotation-e.rotation,onclick:z(i._changeTimeline,i,o),silent:!1,style:nh(c,{text:r.formattedLabel,align:e.labelAlign,verticalAlign:e.labelBaseline})});d.ensureState(`emphasis`).style=nh(l),d.ensureState(`progress`).style=nh(u),t.add(d),uf(d),K2(d).dataIndex=o,i._tickLabels.push(d)}})}},t.prototype._renderControl=function(e,t,n,r){var i=e.controlSize,a=e.rotation,o=r.getModel(`controlStyle`).getItemStyle(),s=r.getModel([`emphasis`,`controlStyle`]).getItemStyle(),c=r.getPlayState(),l=r.get(`inverse`,!0);u(e.nextBtnPosition,`next`,z(this._changeTimeline,this,l?`-`:`+`)),u(e.prevBtnPosition,`prev`,z(this._changeTimeline,this,l?`+`:`-`)),u(e.playPosition,c?`stop`:`play`,z(this._handlePlayClick,this,!c),!0);function u(e,n,c,l){if(e){var u=Ga(W(r.get([`controlStyle`,n+`BtnSize`]),i),i),d=[0,-u/2,u,u],f=Y2(r,n+`Icon`,d,{x:e[0],y:e[1],originX:i/2,originY:0,rotation:l?-a:0,rectHover:!0,style:o,onclick:c});f.ensureState(`emphasis`).style=s,t.add(f),uf(f)}}},t.prototype._renderCurrentPointer=function(e,t,n,r){var i=r.getData(),a=r.getCurrentIndex(),o=i.getItemModel(a).getModel(`checkpointStyle`),s=this,c={onCreate:function(e){e.draggable=!0,e.drift=z(s._handlePointerDrag,s),e.ondragend=z(s._handlePointerDragend,s),Z2(e,s._progressLine,a,n,r,!0)},onUpdate:function(e){Z2(e,s._progressLine,a,n,r)}};this._currentPointer=X2(o,o,this._mainGroup,{},this._currentPointer,c)},t.prototype._handlePlayClick=function(e){this._clearTimer(),this.api.dispatchAction({type:`timelinePlayChange`,playState:e,from:this.uid})},t.prototype._handlePointerDrag=function(e,t,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},t.prototype._handlePointerDragend=function(e){this._pointerChangeTimeline([e.offsetX,e.offsetY],!0)},t.prototype._pointerChangeTimeline=function(e,t){var n=this._toAxisCoord(e)[0],r=this._axis,i=Vo(r.getExtent().slice());n>i[1]&&(n=i[1]),n=0&&(s[o]=+s[o].toFixed(f)),[s,d]}var f4={min:xe(d4,`min`),max:xe(d4,`max`),average:xe(d4,`average`),median:xe(d4,`median`)};function p4(e,t){if(t){var n=e.getData(),r=e.coordinateSystem,i=r&&r.dimensions;if(!u4(t)&&!B(t.coord)&&B(i)){var a=m4(t,n,r,e);if(t=M(t),t.type&&f4[t.type]&&a.baseAxis&&a.valueAxis){var o=I(i,a.baseAxis.dim),s=I(i,a.valueAxis.dim),c=f4[t.type](n,a.valueAxis.dim,a.baseDataDim,a.valueDataDim,o,s);t.coord=c[0],t.value=c[1]}else t.coord=[t.xAxis==null?t.radiusAxis:t.xAxis,t.yAxis==null?t.angleAxis:t.yAxis]}if(t.coord==null||!B(i)){t.coord=[];var l=e.getBaseAxis();if(l&&t.type&&f4[t.type]){var u=r.getOtherAxis(l);u&&(t.value=y4(n,n.mapDimension(u.dim),t.type))}}else for(var d=t.coord,f=0;f<2;f++)f4[d[f]]&&(d[f]=y4(n,n.mapDimension(i[f]),d[f]));return t}}function m4(e,t,n,r){var i={};return e.valueIndex!=null||e.valueDim!=null?(i.valueDataDim=e.valueIndex==null?e.valueDim:t.getDimension(e.valueIndex),i.valueAxis=n.getAxis(h4(r,i.valueDataDim)),i.baseAxis=n.getOtherAxis(i.valueAxis),i.baseDataDim=t.mapDimension(i.baseAxis.dim)):(i.baseAxis=r.getBaseAxis(),i.valueAxis=n.getOtherAxis(i.baseAxis),i.baseDataDim=t.mapDimension(i.baseAxis.dim),i.valueDataDim=t.mapDimension(i.valueAxis.dim)),i}function h4(e,t){var n=e.getData().getDimensionInfo(t);return n&&n.coordDim}function g4(e,t){return e&&e.containData&&t.coord&&!l4(t)?e.containData(t.coord):!0}function _4(e,t,n){return e&&e.containZone&&t.coord&&n.coord&&!l4(t)&&!l4(n)?e.containZone(t.coord,n.coord):!0}function v4(e,t){return e?function(e,n,r,i){return vy(i<2?e.coord&&e.coord[i]:e.value,t[i])}:function(e,n,r,i){return vy(e.value,t[i])}}function y4(e,t,n){if(n===`average`){var r=0,i=0;return e.each(t,function(e,t){isNaN(e)||(r+=e,i++)}),r/i}else if(n===`median`)return e.getMedian(t);else return e.getDataExtent(t)[+(n===`max`)]}var b4=Bs(),x4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.init=function(){this.markerGroupMap=G()},t.prototype.render=function(e,t,n){var r=this,i=this.markerGroupMap;i.each(function(e){b4(e).keep=!1}),t.eachSeries(function(e){var i=s4.getMarkerModelFromSeries(e,r.type);i&&r.renderSeries(e,i,t,n)}),i.each(function(e){!b4(e).keep&&r.group.remove(e.group)}),S4(t,i,this.type)},t.prototype.markKeep=function(e){b4(e).keep=!0},t.prototype.toggleBlurSeries=function(e,t){var n=this;L(e,function(e){var r=s4.getMarkerModelFromSeries(e,n.type);r&&r.getData().eachItemGraphicEl(function(e){e&&(t?Jd(e):Yd(e))})})},t.type=`marker`,t}(Pb);function S4(e,t,n){e.eachSeries(function(e){var r=s4.getMarkerModelFromSeries(e,n),i=t.get(e.id);if(r&&i&&i.group){var a=Um(r),o=a.z,s=a.zlevel;Gm(i.group,o,s)}})}function C4(e,t,n){var r=t.coordinateSystem,i=n.getWidth(),a=n.getHeight(),o=r&&r.getArea&&r.getArea();e.each(function(n){var s=e.getItemModel(n),c=s.get(`relativeTo`)===`coordinate`,l=c?o?o.width:0:i,u=c?o?o.height:0:a,d=c&&o?o.x:0,f=c&&o?o.y:0,p,m=X(s.get(`x`),l)+d,h=X(s.get(`y`),u)+f;if(!isNaN(m)&&!isNaN(h))p=[m,h];else if(t.getMarkerPosition)p=t.getMarkerPosition(e.getValues(e.dimensions,n));else if(r){var g=e.get(r.dimensions[0],n),_=e.get(r.dimensions[1],n);p=r.dataToPoint([g,_])}isNaN(m)||(p[0]=m),isNaN(h)||(p[1]=h),e.setItemLayout(n,p)})}var w4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.updateTransform=function(e,t,n){t.eachSeries(function(e){var t=s4.getMarkerModelFromSeries(e,`markPoint`);t&&(C4(t.getData(),e,n),this.markerGroupMap.get(e.id).updateLayout())},this)},t.prototype.renderSeries=function(e,t,n,r){var i=e.coordinateSystem,a=e.id,o=e.getData(),s=this.markerGroupMap,c=s.get(a)||s.set(a,new zj),l=T4(i,e,t);t.setData(l),C4(t.getData(),e,r),l.each(function(e){var n=l.getItemModel(e),r=n.getShallow(`symbol`),i=n.getShallow(`symbolSize`),a=n.getShallow(`symbolRotate`),s=n.getShallow(`symbolOffset`),c=n.getShallow(`symbolKeepAspect`);if(V(r)||V(i)||V(a)||V(s)){var u=t.getRawValue(e),d=t.getDataParams(e);V(r)&&(r=r(u,d)),V(i)&&(i=i(u,d)),V(a)&&(a=a(u,d)),V(s)&&(s=s(u,d))}var f=n.getModel(`itemStyle`).getItemStyle(),p=n.get(`z2`),m=Nx(o,`color`);f.fill||=m,l.setItemVisual(e,{z2:W(p,0),symbol:r,symbolSize:i,symbolRotate:a,symbolOffset:s,symbolKeepAspect:c,style:f})}),c.updateData(l),this.group.add(c.group),l.eachItemGraphicEl(function(e){e.traverse(function(e){Z(e).dataModel=t})}),this.markKeep(c),c.group.silent=t.get(`silent`)||e.get(`silent`)},t.type=`markPoint`,t}(x4);function T4(e,t,n){var r=e?R(e&&e.dimensions,function(e){var n=t.getData();return P(P({},n.getDimensionInfo(n.mapDimension(e))||{}),{name:e,ordinalMeta:null})}):[{name:`value`,type:`float`}],i=new fT(r,n),a=R(n.get(`data`),xe(p4,t));e&&(a=_e(a,xe(g4,e)));var o=v4(!!e,r);return i.initData(a,null,o),i}function E4(e){e.registerComponentModel(c4),e.registerComponentView(w4),e.registerPreprocessor(function(e){i4(e.series,`markPoint`)&&(e.markPoint=e.markPoint||{})})}var D4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.createMarkerModelFromSeries=function(e,n,r){return new t(e,n,r)},t.type=`markLine`,t.defaultOption={z:5,symbol:[`circle`,`arrow`],symbolSize:[8,16],symbolOffset:0,precision:2,tooltip:{trigger:`item`},label:{show:!0,position:`end`,distance:5},lineStyle:{type:`dashed`},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:`linear`},t}(s4),O4=Bs(),k4=function(e,t,n,r){var i=e.getData(),a;if(B(r))a=r;else{var o=r.type;if(o===`min`||o===`max`||o===`average`||o===`median`||r.xAxis!=null||r.yAxis!=null){var s=void 0,c=void 0;if(r.yAxis!=null||r.xAxis!=null)s=t.getAxis(r.yAxis==null?`x`:`y`),c=je(r.yAxis,r.xAxis);else{var l=m4(r,i,t,e);s=l.valueAxis,c=y4(i,CT(i,l.valueDataDim),o)}var u=s.dim===`x`?0:1,d=1-u,f=M(r),p={coord:[]};f.type=null,f.coord=[],f.coord[d]=-1/0,p.coord[d]=1/0;var m=n.get(`precision`);m>=0&&Ce(c)&&(c=+c.toFixed(Math.min(m,20))),f.coord[u]=p.coord[u]=c,a=[f,p,{type:o,valueIndex:r.valueIndex,value:c}]}else a=[]}var h=[p4(e,a[0]),p4(e,a[1]),P({},a[2])];return h[2].type=h[2].type||null,N(h[2],h[0]),N(h[2],h[1]),h};function A4(e){return!isNaN(e)&&!isFinite(e)}function j4(e,t,n,r){var i=1-e,a=r.dimensions[e];return A4(t[i])&&A4(n[i])&&t[e]===n[e]&&r.getAxis(a).containData(t[e])}function M4(e,t){if(e.type===`cartesian2d`){var n=t[0].coord,r=t[1].coord;if(n&&r&&(j4(1,n,r,e)||j4(0,n,r,e)))return!0}return g4(e,t[0])&&g4(e,t[1])}function N4(e,t,n,r,i){var a=r.coordinateSystem,o=e.getItemModel(t),s,c=X(o.get(`x`),i.getWidth()),l=X(o.get(`y`),i.getHeight());if(!isNaN(c)&&!isNaN(l))s=[c,l];else{if(r.getMarkerPosition)s=r.getMarkerPosition(e.getValues(e.dimensions,t));else{var u=a.dimensions,d=e.get(u[0],t),f=e.get(u[1],t);s=a.dataToPoint([d,f])}if(cM(a,`cartesian2d`)){var p=a.getAxis(`x`),m=a.getAxis(`y`),u=a.dimensions;A4(e.get(u[0],t))?s[0]=p.toGlobalCoord(p.getExtent()[+!n]):A4(e.get(u[1],t))&&(s[1]=m.toGlobalCoord(m.getExtent()[+!n]))}isNaN(c)||(s[0]=c),isNaN(l)||(s[1]=l)}e.setItemLayout(t,s)}var P4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.updateTransform=function(e,t,n){t.eachSeries(function(e){var t=s4.getMarkerModelFromSeries(e,`markLine`);if(t){var r=t.getData(),i=O4(t).from,a=O4(t).to;i.each(function(t){N4(i,t,!0,e,n),N4(a,t,!1,e,n)}),r.each(function(e){r.setItemLayout(e,[i.getItemLayout(e),a.getItemLayout(e)])}),this.markerGroupMap.get(e.id).updateLayout()}},this)},t.prototype.renderSeries=function(e,t,n,r){var i=e.coordinateSystem,a=e.id,o=e.getData(),s=this.markerGroupMap,c=s.get(a)||s.set(a,new cU);this.group.add(c.group);var l=F4(i,e,t),u=l.from,d=l.to,f=l.line;O4(t).from=u,O4(t).to=d,t.setData(f);var p=t.get(`symbol`),m=t.get(`symbolSize`),h=t.get(`symbolRotate`),g=t.get(`symbolOffset`);B(p)||(p=[p,p]),B(m)||(m=[m,m]),B(h)||(h=[h,h]),B(g)||(g=[g,g]),l.from.each(function(e){_(u,e,!0),_(d,e,!1)}),f.each(function(e){var t=f.getItemModel(e),n=t.getModel(`lineStyle`).getLineStyle();f.setItemLayout(e,[u.getItemLayout(e),d.getItemLayout(e)]);var r=t.get(`z2`);n.stroke??=u.getItemVisual(e,`style`).fill,f.setItemVisual(e,{z2:W(r,0),fromSymbolKeepAspect:u.getItemVisual(e,`symbolKeepAspect`),fromSymbolOffset:u.getItemVisual(e,`symbolOffset`),fromSymbolRotate:u.getItemVisual(e,`symbolRotate`),fromSymbolSize:u.getItemVisual(e,`symbolSize`),fromSymbol:u.getItemVisual(e,`symbol`),toSymbolKeepAspect:d.getItemVisual(e,`symbolKeepAspect`),toSymbolOffset:d.getItemVisual(e,`symbolOffset`),toSymbolRotate:d.getItemVisual(e,`symbolRotate`),toSymbolSize:d.getItemVisual(e,`symbolSize`),toSymbol:d.getItemVisual(e,`symbol`),style:n})}),c.updateData(f),l.line.eachItemGraphicEl(function(e){Z(e).dataModel=t,e.traverse(function(e){Z(e).dataModel=t})});function _(t,n,i){var a=t.getItemModel(n);N4(t,n,i,e,r);var s=a.getModel(`itemStyle`).getItemStyle();s.fill??=Nx(o,`color`),t.setItemVisual(n,{symbolKeepAspect:a.get(`symbolKeepAspect`),symbolOffset:W(a.get(`symbolOffset`,!0),g[+!i]),symbolRotate:W(a.get(`symbolRotate`,!0),h[+!i]),symbolSize:W(a.get(`symbolSize`),m[+!i]),symbol:W(a.get(`symbol`,!0),p[+!i]),style:s})}this.markKeep(c),c.group.silent=t.get(`silent`)||e.get(`silent`)},t.type=`markLine`,t}(x4);function F4(e,t,n){var r=e?R(e&&e.dimensions,function(e){var n=t.getData();return P(P({},n.getDimensionInfo(n.mapDimension(e))||{}),{name:e,ordinalMeta:null})}):[{name:`value`,type:`float`}],i=new fT(r,n),a=new fT(r,n),o=new fT([],n),s=R(n.get(`data`),xe(k4,t,e,n));e&&(s=_e(s,xe(M4,e)));var c=v4(!!e,r);return i.initData(R(s,function(e){return e[0]}),null,c),a.initData(R(s,function(e){return e[1]}),null,c),o.initData(R(s,function(e){return e[2]})),o.hasItemOption=!0,{from:i,to:a,line:o}}function I4(e){e.registerComponentModel(D4),e.registerComponentView(P4),e.registerPreprocessor(function(e){i4(e.series,`markLine`)&&(e.markLine=e.markLine||{})})}var L4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.createMarkerModelFromSeries=function(e,n,r){return new t(e,n,r)},t.type=`markArea`,t.defaultOption={z:1,tooltip:{trigger:`item`},animation:!1,label:{show:!0,position:`top`},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:`top`}}},t}(s4),R4=Bs(),z4=function(e,t,n,r){var i=r[0],a=r[1];if(!(!i||!a)){var o=p4(e,i),s=p4(e,a),c=o.coord,l=s.coord;c[0]=je(c[0],-1/0),c[1]=je(c[1],-1/0),l[0]=je(l[0],1/0),l[1]=je(l[1],1/0);var u=de([{},o,s]);return u.coord=[o.coord,s.coord],u.x0=o.x,u.y0=o.y,u.x1=s.x,u.y1=s.y,u}};function B4(e){return!isNaN(e)&&!isFinite(e)}function V4(e,t,n,r){var i=1-e;return B4(t[i])&&B4(n[i])}function H4(e,t){var n=t.coord[0],r=t.coord[1],i={coord:n,x:t.x0,y:t.y0},a={coord:r,x:t.x1,y:t.y1};return cM(e,`cartesian2d`)?n&&r&&(V4(1,n,r,e)||V4(0,n,r,e))?!0:_4(e,i,a):g4(e,i)||g4(e,a)}function U4(e,t,n,r,i){var a=r.coordinateSystem,o=e.getItemModel(t),s,c=X(o.get(n[0]),i.getWidth()),l=X(o.get(n[1]),i.getHeight());if(!isNaN(c)&&!isNaN(l))s=[c,l];else{if(r.getMarkerPosition){var u=e.getValues([`x0`,`y0`],t),d=e.getValues([`x1`,`y1`],t),f=a.clampData(u),p=a.clampData(d),m=[];n[0]===`x0`?m[0]=f[0]>p[0]?d[0]:u[0]:m[0]=f[0]>p[0]?u[0]:d[0],n[1]===`y0`?m[1]=f[1]>p[1]?d[1]:u[1]:m[1]=f[1]>p[1]?u[1]:d[1],s=r.getMarkerPosition(m,n,!0)}else{var h=e.get(n[0],t),g=e.get(n[1],t),_=[h,g];a.clampData&&a.clampData(_,_),s=a.dataToPoint(_,!0)}if(cM(a,`cartesian2d`)){var v=a.getAxis(`x`),y=a.getAxis(`y`),h=e.get(n[0],t),g=e.get(n[1],t);B4(h)?s[0]=v.toGlobalCoord(v.getExtent()[n[0]===`x0`?0:1]):B4(g)&&(s[1]=y.toGlobalCoord(y.getExtent()[n[1]===`y0`?0:1]))}isNaN(c)||(s[0]=c),isNaN(l)||(s[1]=l)}return s}var W4=[[`x0`,`y0`],[`x1`,`y0`],[`x1`,`y1`],[`x0`,`y1`]],G4=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.updateTransform=function(e,t,n){t.eachSeries(function(e){var t=s4.getMarkerModelFromSeries(e,`markArea`);if(t){var r=t.getData();r.each(function(t){var i=R(W4,function(i){return U4(r,t,i,e,n)});r.setItemLayout(t,i),r.getItemGraphicEl(t).setShape(`points`,i)})}},this)},t.prototype.renderSeries=function(e,t,n,r){var i=e.coordinateSystem,a=e.id,o=e.getData(),s=this.markerGroupMap,c=s.get(a)||s.set(a,{group:new Y});this.group.add(c.group),this.markKeep(c);var l=K4(i,e,t);t.setData(l),l.each(function(t){var n=R(W4,function(n){return U4(l,t,n,e,r)}),a=i.getAxis(`x`).scale,s=i.getAxis(`y`).scale,c=a.getExtent(),u=s.getExtent(),d=[a.parse(l.get(`x0`,t)),a.parse(l.get(`x1`,t))],f=[s.parse(l.get(`y0`,t)),s.parse(l.get(`y1`,t))];Vo(d),Vo(f);var p=c[0]>d[1]||c[1]f[1]||u[1]=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:Q.size.m,align:`auto`,backgroundColor:Q.color.transparent,borderColor:Q.color.border,borderRadius:0,borderWidth:0,padding:5,itemGap:8,itemWidth:25,itemHeight:14,symbolRotate:`inherit`,symbolKeepAspect:!0,inactiveColor:Q.color.disabled,inactiveBorderColor:Q.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:Q.color.disabled,inactiveWidth:2,opacity:`inherit`,type:`inherit`,cap:`inherit`,join:`inherit`,dashOffset:`inherit`,miterLimit:`inherit`},textStyle:{color:Q.color.secondary},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:`sans-serif`,color:Q.color.tertiary,borderWidth:1,borderColor:Q.color.border},emphasis:{selectorLabel:{show:!0,color:Q.color.quaternary}},selectorPosition:`auto`,selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1},triggerEvent:!1},t}(__),X4=xe,Z4=L,Q4=Y,$4=function(e){_(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 Q4),this.group.add(this._selectorGroup=new Q4),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=l_(e,n).refContainer,l=e.getBoxLayoutParams(),u=e.get(`padding`),d=o_(l,c,u),f=this.layoutInner(e,i,d,r,o,s),p=o_(F({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=j1(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=G(),l=t.get(`selectedMode`),u=t.get(`triggerEvent`),d=[];n.eachRawSeries(function(e){!e.get(`legendHoverLink`)&&d.push(e.id)}),Z4(t.getData(),function(i,a){var o=this,f=i.get(`name`);if(!this.newlineDisabled&&(f===``||f===` +`)){var p=new Q4;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`,X4(n3,f,null,r,d)).on(`mouseover`,X4(r3,m.name,null,r,d)).on(`mouseout`,X4(i3,m.name,null,r,d)),n.ssr&&y.eachChild(function(e){var t=Z(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`),_=Kr(h.fill);_&&_[3]===0&&(_[3]=.2,h=P(P({},h),{fill:ei(_,`rgba`)}));var v=this._createItem(o,f,a,i,t,e,{},h,g,l,r);v.on(`click`,X4(n3,null,f,r,d)).on(`mouseover`,X4(r3,null,f,r,d)).on(`mouseout`,X4(i3,null,f,r,d)),n.ssr&&v.eachChild(function(e){var t=Z(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};Z(e).eventData=a},t.prototype._createSelector=function(e,t,n,r,i){var a=this.getSelectorGroup();Z4(e,function(e){var r=e.type,i=new Vu({style:{x:0,y:0,align:`center`,verticalAlign:`middle`},onclick:function(){n.dispatchAction({type:r===`all`?`legendAllSelect`:`legendInverseSelect`,legendId:t.id})}});a.add(i),eh(i,{normal:t.getModel(`selectorLabel`),emphasis:t.getModel([`emphasis`,`selectorLabel`])},{defaultText:e.title}),uf(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=e3(c,r,o,s,d,m,u),y=new Q4,b=r.getModel(`textStyle`);if(V(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(t3({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;H(w)&&w?T=w.replace(`{name}`,t??``):V(w)&&(T=w(t));var E=m?b.getTextColor():r.get(`inactiveColor`);y.add(new Vu({style:nh(b,{text:T,x:S,y:p/2,fill:E,align:C,verticalAlign:`middle`},{inheritColor:E})}));var D=new Iu({shape:y.getBoundingRect(),style:{fill:`transparent`}}),O=r.getModel(`tooltip`);return O.get(`show`)&&Im({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),uf(y),y.__legendDataIndex=n,y},t.prototype.layoutInner=function(e,t,n,r,i,a){var o=this.getContentGroup(),s=this.getSelectorGroup();n_(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){n_(`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}(Pb);function e3(e,t,n,r,i,a,o){function s(e,t){e.lineWidth===`auto`&&(e.lineWidth=t.lineWidth>0?2:0),Z4(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:YS(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 t3(e){var t=e.icon||`roundRect`,n=oS(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=Q.color.neutral00,n.style.lineWidth=2),n}function n3(e,t,n,r){i3(e,t,n,r),n.dispatchAction({type:`legendToggleSelect`,name:e??t}),r3(e,t,n,r)}function r3(e,t,n,r){n.usingTHL()||n.dispatchAction({type:`highlight`,seriesName:e,name:t,excludeSeriesId:r})}function i3(e,t,n,r){n.usingTHL()||n.dispatchAction({type:`downplay`,seriesName:e,name:t,excludeSeriesId:r})}function a3(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),o3(n,i),a.push(n.componentIndex)});var o={};return n.eachComponent(`legend`,function(e){L(i,function(t,n){e[t?`select`:`unSelect`](n)}),o3(e,o)}),r?{selected:o,legendIndex:a}:{name:t.name,selected:o}}function o3(e,t){var n=t||{};return L(e.getData(),function(t){var r=t.get(`name`);if(!(r===` +`||r===``)){var i=e.isSelected(r);K(n,r)?n[r]=n[r]&&i:n[r]=i}}),n}function s3(e){e.registerAction(`legendToggleSelect`,`legendselectchanged`,xe(a3,`toggleSelected`)),e.registerAction(`legendAllSelect`,`legendselectall`,xe(a3,`allSelect`)),e.registerAction(`legendInverseSelect`,`legendinverseselect`,xe(a3,`inverseSelect`)),e.registerAction(`legendSelect`,`legendselected`,xe(a3,`select`)),e.registerAction(`legendUnSelect`,`legendunselected`,xe(a3,`unSelect`))}var c3=vc(l3);function l3(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],_=W(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 Iu({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&&Yp(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;L([`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`,H(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=m3[i],o=h3[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}($4);function _3(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 v3(e){Fw(u3),e.registerComponentModel(d3),e.registerComponentView(g3),_3(e)}function y3(e){Fw(u3),Fw(v3)}var b3=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`dataZoom.inside`,t.defaultOption=Ah(h1.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),t}(h1),x3=Bs();function S3(e,t,n){x3(e).coordSysRecordMap.each(function(e){var r=e.dataZoomInfoMap.get(t.uid);r&&(r.getRange=n)})}function C3(e,t){for(var n=x3(e).coordSysRecordMap,r=n.keys(),i=0;ia[i+r]&&(r=n),o&&=t.get(`preventDefaultMouseMove`,!0),s=W(t.get(`cursorGrab`,!0),s),c=W(t.get(`cursorGrabbing`,!0),c)}),{controlType:r,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!o,api:n,zInfo:{component:t.model},triggerInfo:{roamTrigger:null,isInSelf:t.containsPoint},cursorGrab:s,cursorGrabbing:c}}}function k3(e){e.registerUpdateLifecycle(`coordsys:aftercreate`,function(e,t){var n=x3(t),r=n.coordSysRecordMap||=G();r.each(function(e){e.dataZoomInfoMap=null}),e.eachComponent({mainType:`dataZoom`,subType:`inside`},function(e){L(l1(e).infoList,function(n){var i=n.model.uid,a=r.get(i)||r.set(i,T3(t,n.model));(a.dataZoomInfoMap||=G()).set(e.uid,{dzReferCoordSysInfo:n,model:e,getRange:null})})}),r.each(function(e){var n=e.controller,i,a=e.dataZoomInfoMap;if(a){var o=a.keys()[0];o!=null&&(i=a.get(o))}if(!i){w3(r,e);return}var s=O3(a,e,t);n.enable(s.controlType,s.opt),Jb(e,`dispatchAction`,i.model.get(`throttle`,!0),`fixRate`)})})}var A3=function(e){_(t,e);function t(){var t=e!==null&&e.apply(this,arguments)||this;return t.type=`dataZoom.inside`,t}return t.prototype.render=function(t,n,r){if(e.prototype.render.apply(this,arguments),t.noTarget()){this._clear();return}this.range=t.getPercentRange(),S3(r,t,{pan:z(j3.pan,this),zoom:z(j3.zoom,this),scrollMove:z(j3.scrollMove,this)})},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){C3(this.api,this.dataZoomModel),this.range=null},t.type=`dataZoom.inside`,t}(v1),j3={zoom:function(e,t,n,r){var i=this.range,a=i.slice(),o=e.axisModels[0];if(o){var s=N3[t](null,[r.originX,r.originY],o,n,e),c=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(a[1]-a[0])+a[0],l=Math.max(1/r.scale,0);a[0]=(a[0]-c)*l+c,a[1]=(a[1]-c)*l+c;var u=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();if(AW(0,a,[0,100],0,u.minSpan,u.maxSpan),this.range=a,i[0]!==a[0]||i[1]!==a[1])return a}},pan:M3(function(e,t,n,r,i,a){var o=N3[r]([a.oldX,a.oldY],[a.newX,a.newY],t,i,n);return o.signal*(e[1]-e[0])*o.pixel/o.pixelLength}),scrollMove:M3(function(e,t,n,r,i,a){return N3[r]([0,0],[a.scrollDelta,a.scrollDelta],t,i,n).signal*(e[1]-e[0])*a.scrollDelta})};function M3(e){return function(t,n,r,i){var a=this.range,o=a.slice(),s=t.axisModels[0];if(s&&(AW(e(o,s,t,n,r,i),o,[0,100],`all`),this.range=o,a[0]!==o[0]||a[1]!==o[1]))return o}}var N3={grid:function(e,t,n,r,i){var a=n.axis,o={},s=i.model.coordinateSystem.getRect();return e||=[0,0],a.dim===`x`?(o.pixel=t[0]-e[0],o.pixelLength=s.width,o.pixelStart=s.x,o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=s.height,o.pixelStart=s.y,o.signal=a.inverse?-1:1),o},polar:function(e,t,n,r,i){var a=n.axis,o={},s=i.model.coordinateSystem,c=s.getRadiusAxis().getExtent(),l=s.getAngleAxis().getExtent();return e=e?s.pointToCoord(e):[0,0],t=s.pointToCoord(t),n.mainType===`radiusAxis`?(o.pixel=t[0]-e[0],o.pixelLength=c[1]-c[0],o.pixelStart=c[0],o.signal=a.inverse?1:-1):(o.pixel=t[1]-e[1],o.pixelLength=l[1]-l[0],o.pixelStart=l[0],o.signal=a.inverse?-1:1),o},singleAxis:function(e,t,n,r,i){var a=n.axis,o=i.model.coordinateSystem.getRect(),s={};return e||=[0,0],a.orient===`horizontal`?(s.pixel=t[0]-e[0],s.pixelLength=o.width,s.pixelStart=o.x,s.signal=a.inverse?1:-1):(s.pixel=t[1]-e[1],s.pixelLength=o.height,s.pixelStart=o.y,s.signal=a.inverse?-1:1),s}};function P3(e){w1(e),e.registerComponentModel(b3),e.registerComponentView(A3),k3(e)}var F3=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.type=`dataZoom.slider`,t.layoutMode=`box`,t.defaultOption=Ah(h1.defaultOption,{show:!0,right:`ph`,top:`ph`,width:`ph`,height:`ph`,left:null,bottom:null,borderColor:Q.color.accent10,borderRadius:0,backgroundColor:Q.color.transparent,dataBackground:{lineStyle:{color:Q.color.accent30,width:.5},areaStyle:{color:Q.color.accent20,opacity:.2}},selectedDataBackground:{lineStyle:{color:Q.color.accent40,width:.5},areaStyle:{color:Q.color.accent20,opacity:.3}},fillerColor:`rgba(135,175,274,0.2)`,handleIcon:`path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z`,handleSize:`100%`,handleStyle:{color:Q.color.neutral00,borderColor:Q.color.accent20},moveHandleSize:7,moveHandleIcon:`path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z`,moveHandleStyle:{color:Q.color.accent40,opacity:.5},showDetail:!0,showDataShadow:`auto`,realtime:!0,zoomLock:!1,textStyle:{color:Q.color.tertiary},brushSelect:!0,brushStyle:{color:Q.color.accent30,opacity:.3},emphasis:{handleLabel:{show:!0},handleStyle:{borderColor:Q.color.accent40},moveHandleStyle:{opacity:.8}},defaultLocationEdgeGap:15}),t}(h1),I3=Iu,L3=1,R3=30,z3=7,B3=`horizontal`,V3=`vertical`,H3=5,U3=[`line`,`bar`,`candlestick`,`scatter`],W3={easing:`cubicOut`,duration:100,delay:0},G3=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n._displayables={},n}return t.prototype.init=function(e,t){this.api=t,this._onBrush=z(this._onBrush,this),this._onBrushEnd=z(this._onBrushEnd,this)},t.prototype.render=function(t,n,r,i){if(e.prototype.render.apply(this,arguments),Jb(this,`_dispatchZoomAction`,t.get(`throttle`),`fixRate`),this._orient=t.getOrient(),t.get(`show`)===!1){this.group.removeAll();return}if(t.noTarget()){this._clear(),this.group.removeAll();return}(!i||i.type!==`dataZoom`||i.from!==this.uid)&&this._buildView(),this._updateView()},t.prototype.dispose=function(){this._clear(),e.prototype.dispose.apply(this,arguments)},t.prototype._clear=function(){Yb(this,`_dispatchZoomAction`);var e=this.api.getZr();e.off(`mousemove`,this._onBrush),e.off(`mouseup`,this._onBrushEnd)},t.prototype._buildView=function(){var e=this.group;e.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var t=this._displayables.sliderGroup=new Y;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),e.add(t),this._positionGroup()},t.prototype._resetLocation=function(){var e=this.dataZoomModel,t=this.api,n=e.get(`brushSelect`)?z3:0,r=l_(e,t).refContainer,i=this._findCoordRect(),a=e.get(`defaultLocationEdgeGap`,!0)||0,o=this._orient===B3?{right:r.width-i.x-i.width,top:r.height-R3-a-n,width:i.width,height:R3}:{right:a,top:i.y,width:R3,height:i.height},s=m_(e.option);L([`right`,`top`,`width`,`height`],function(e){s[e]===`ph`&&(s[e]=o[e])});var c=o_(s,r);this._location={x:c.x,y:c.y},this._size=[c.width,c.height],this._orient===V3&&this._size.reverse()},t.prototype._positionGroup=function(){var e=this.group,t=this._location,n=this._orient,r=this.dataZoomModel.getFirstTargetAxisModel(),i=r&&r.get(`inverse`),a=this._displayables.sliderGroup,o=(this._dataShadowInfo||{}).otherAxisInverse;a.attr(n===B3&&!i?{scaleY:o?1:-1,scaleX:1}:n===B3&&i?{scaleY:o?1:-1,scaleX:-1}:n===V3&&!i?{scaleY:o?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:o?-1:1,scaleX:-1,rotation:Math.PI/2});var s=e.getBoundingRect([a]),c=isNaN(s.x)?0:s.x,l=isNaN(s.y)?0:s.y;e.x=t.x-c,e.y=t.y-l,e.markRedraw()},t.prototype._getViewExtent=function(){return[0,this._size[0]]},t.prototype._renderBackground=function(){var e=this.dataZoomModel,t=this._size,n=this._displayables.sliderGroup,r=e.get(`brushSelect`);n.add(new I3({silent:!0,shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:e.get(`backgroundColor`)},z2:-40}));var i=new I3({shape:{x:0,y:0,width:t[0],height:t[1]},style:{fill:`transparent`},z2:0,onclick:z(this._onClickPanel,this)}),a=this.api.getZr();r?(i.on(`mousedown`,this._onBrushStart,this),i.cursor=`crosshair`,a.on(`mousemove`,this._onBrush),a.on(`mouseup`,this._onBrushEnd)):(a.off(`mousemove`,this._onBrush),a.off(`mouseup`,this._onBrushEnd)),n.add(i)},t.prototype._renderDataShadow=function(){var e=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],!e)return;var t=this._size,n=this._shadowSize||[],r=e.series,i=r.getRawData(),a=r.getShadowDim&&r.getShadowDim(),o=a&&i.getDimensionInfo(a)?r.getShadowDim():e.otherDim;if(o==null)return;var s=this._shadowPolygonPts,c=this._shadowPolylinePts;if(i!==this._shadowData||o!==this._shadowDim||t[0]!==n[0]||t[1]!==n[1]){var l=i.getDataExtent(e.thisDim),u=i.getDataExtent(o),d=(u[1]-u[0])*.3;u=[u[0]-d,u[1]+d];var f=[0,t[1]],p=[0,t[0]],m=[[t[0],0],[0,0]],h=[],g=p[1]/Math.max(1,i.count()-1),_=t[0]/(l[1]-l[0]),v=e.thisAxis.type===`time`,y=-g,b=Math.round(i.count()/t[0]),x;i.each([e.thisDim,o],function(e,t,n){if(b>0&&n%b){v||(y+=g);return}y=v?(+e-l[0])*_:y+g;var r=t==null||isNaN(t)||t===``,i=r?0:Fo(t,u,f,!0);r&&!x&&n?(m.push([m[m.length-1][0],0]),h.push([h[h.length-1][0],0])):!r&&x&&(m.push([y,0]),h.push([y,0])),r||(m.push([y,i]),h.push([y,i])),x=r}),s=this._shadowPolygonPts=m,c=this._shadowPolylinePts=h}this._shadowData=i,this._shadowDim=o,this._shadowSize=[t[0],t[1]];var S=this.dataZoomModel;function C(e){var t=S.getModel(e?`selectedDataBackground`:`dataBackground`),n=new Y,r=new yp({shape:{points:s},segmentIgnoreThreshold:1,style:t.getModel(`areaStyle`).getAreaStyle(),silent:!0,z2:-20}),i=new xp({shape:{points:c},segmentIgnoreThreshold:1,style:t.getModel(`lineStyle`).getLineStyle(),silent:!0,z2:-19});return n.add(r),n.add(i),n}for(var w=0;w<3;w++){var T=C(w===1);this._displayables.sliderGroup.add(T),this._displayables.dataShadowSegs.push(T)}},t.prototype._prepareDataShadowInfo=function(){var e=this.dataZoomModel,t=e.get(`showDataShadow`);if(t!==!1){var n,r=this.ecModel;return e.eachTargetAxis(function(i,a){L(e.getAxisProxy(i,a).getTargetSeriesModels(),function(e){if(!n&&!(t!==!0&&I(U3,e.get(`type`))<0)){var o=r.getComponent(s1(i),a).axis,s=q3(i),c,l=e.coordinateSystem;s!=null&&l.getOtherAxis&&(c=l.getOtherAxis(o).inverse),s=e.getData().mapDimension(s),n={thisAxis:o,series:e,thisDim:e.getData().mapDimension(i),otherDim:s,otherAxisInverse:c}}},this)},this),n}},t.prototype._renderHandle=function(){var e=this.group,t=this._displayables,n=t.handles=[null,null],r=t.handleLabels=[null,null],i=this._displayables.sliderGroup,a=this._size,o=this.dataZoomModel,s=this.api,c=o.get(`borderRadius`)||0,l=o.get(`brushSelect`),u=t.filler=new I3({silent:l,style:{fill:o.get(`fillerColor`)},textConfig:{position:`inside`}});i.add(u),i.add(new I3({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:a[0],height:a[1],r:c},style:{stroke:o.get(`dataBackgroundColor`)||o.get(`borderColor`),lineWidth:L3,fill:Q.color.transparent}})),L([0,1],function(t){var a=o.get(`handleIcon`);!rS[a]&&a.indexOf(`path://`)<0&&a.indexOf(`image://`)<0&&(a=`path://`+a);var s=oS(a,-1,0,2,2,null,!0);s.attr({cursor:J3(this._orient),draggable:!0,drift:z(this._onDragMove,this,t),ondragend:z(this._onDragEnd,this),onmouseover:z(this._onOverDataInfoTriggerArea,this,!0),onmouseout:z(this._onOverDataInfoTriggerArea,this,!1),z2:5});var c=s.getBoundingRect(),l=o.get(`handleSize`);this._handleHeight=X(l,this._size[1]),this._handleWidth=c.width/c.height*this._handleHeight,s.setStyle(o.getModel(`handleStyle`).getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState(`emphasis`).style=o.getModel([`emphasis`,`handleStyle`]).getItemStyle(),uf(s);var u=o.get(`handleColor`);u!=null&&(s.style.fill=u),i.add(n[t]=s);var d=o.getModel(`textStyle`),f=(o.get(`handleLabel`)||{}).show||!1;e.add(r[t]=new Vu({silent:!0,invisible:!f,style:nh(d,{x:0,y:0,text:``,verticalAlign:`middle`,align:`center`,fill:d.getTextColor(),font:d.getFont()}),z2:10}))},this);var d=u;if(l){var f=X(o.get(`moveHandleSize`),a[1]),p=t.moveHandle=new Iu({style:o.getModel(`moveHandleStyle`).getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:a[1]-.5,height:f}}),m=f*.8,h=t.moveHandleIcon=oS(o.get(`moveHandleIcon`),-m/2,-m/2,m,m,Q.color.neutral00,!0);h.silent=!0,h.y=a[1]+f/2-.5,p.ensureState(`emphasis`).style=o.getModel([`emphasis`,`moveHandleStyle`]).getItemStyle();var g=Math.min(a[1]/2,Math.max(f,10));d=t.moveZone=new Iu({invisible:!0,shape:{y:a[1]-g,height:f+g}}),d.on(`mouseover`,function(){s.enterEmphasis(p)}).on(`mouseout`,function(){s.leaveEmphasis(p)}),i.add(p),i.add(h),i.add(d)}d.attr({draggable:!0,cursor:`grab`,drift:z(this._onActualMoveZoneDrift,this),ondragstart:z(this._onActualMoveZoneDragStart,this),ondragend:z(this._onActualMoveZoneDragEnd,this),onmouseover:z(this._onOverDataInfoTriggerArea,this,!0),onmouseout:z(this._onOverDataInfoTriggerArea,this,!1)})},t.prototype._resetInterval=function(){var e=this._range=this.dataZoomModel.getPercentRange(),t=this._getViewExtent();this._handleEnds=[Fo(e[0],[0,100],t,!0),Fo(e[1],[0,100],t,!0)]},t.prototype._updateInterval=function(e,t){var n=this.dataZoomModel,r=this._handleEnds,i=this._getViewExtent(),a=n.findRepresentativeAxisProxy().getMinMaxSpan(),o=[0,100];AW(t,r,i,n.get(`zoomLock`)?`all`:e,a.minSpan==null?null:Fo(a.minSpan,o,i,!0),a.maxSpan==null?null:Fo(a.maxSpan,o,i,!0));var s=this._range,c=this._range=Vo([Fo(r[0],i,o,!0),Fo(r[1],i,o,!0)]);return!s||s[0]!==c[0]||s[1]!==c[1]},t.prototype._updateView=function(e){var t=this._displayables,n=this._handleEnds,r=Vo(n.slice()),i=this._size;L([0,1],function(e){var r=t.handles[e],a=this._handleHeight;r.attr({scaleX:a/2,scaleY:a/2,x:n[e]+(e?-1:1),y:i[1]/2-a/2})},this),t.filler.setShape({x:r[0],y:0,width:r[1]-r[0],height:i[1]});var a={x:r[0],width:r[1]-r[0]};t.moveHandle&&(t.moveHandle.setShape(a),t.moveZone.setShape(a),t.moveZone.getBoundingRect(),t.moveHandleIcon&&t.moveHandleIcon.attr(`x`,a.x+a.width/2));for(var o=t.dataShadowSegs,s=[0,r[0],r[1],i[0]],c=0;ct[0]||n[1]<0||n[1]>t[1])){var r=this._handleEnds,i=(r[0]+r[1])/2,a=this._updateInterval(`all`,n[0]-i);this._updateView(),a&&this._dispatchZoomAction(!1)}},t.prototype._onBrushStart=function(e){var t=e.offsetX,n=e.offsetY;this._brushStart=new q(t,n),this._brushing=!0,this._brushStartTime=+new Date},t.prototype._onBrushEnd=function(e){if(this._brushing){var t=this._displayables.brushRect;if(this._brushing=!1,t){t.attr(`ignore`,!0);var n=t.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var r=this._getViewExtent(),i=[0,100],a=this._handleEnds=[n.x,n.x+n.width],o=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();AW(0,a,r,0,o.minSpan==null?null:Fo(o.minSpan,i,r,!0),o.maxSpan==null?null:Fo(o.maxSpan,i,r,!0)),this._range=Vo([Fo(a[0],r,i,!0),Fo(a[1],r,i,!0)]),this._updateView(),this._dispatchZoomAction(!1)}}}},t.prototype._onBrush=function(e){this._brushing&&(Ut(e.event),this._updateBrushRect(e.offsetX,e.offsetY))},t.prototype._updateBrushRect=function(e,t){var n=this._displayables,r=this.dataZoomModel,i=n.brushRect;i||(i=n.brushRect=new I3({silent:!0,style:r.getModel(`brushStyle`).getItemStyle()}),n.sliderGroup.add(i)),i.attr(`ignore`,!1);var a=this._brushStart,o=this._displayables.sliderGroup,s=o.transformCoordToLocal(e,t),c=o.transformCoordToLocal(a.x,a.y),l=this._size;s[0]=Math.max(Math.min(l[0],s[0]),0),i.setShape({x:c[0],y:0,width:s[0]-c[0],height:l[1]})},t.prototype._dispatchZoomAction=function(e){var t=this._range;this.api.dispatchAction({type:`dataZoom`,from:this.uid,dataZoomId:this.dataZoomModel.id,animation:e?W3:null,start:t[0],end:t[1]})},t.prototype._findCoordRect=function(){var e,t=l1(this.dataZoomModel).infoList;if(!e&&t.length){var n=t[0].model.coordinateSystem;e=n.getRect&&n.getRect()}if(!e){var r=this.api.getWidth(),i=this.api.getHeight();e={x:r*.2,y:i*.2,width:r*.6,height:i*.6}}return e},t.type=`dataZoom.slider`,t}(v1);function K3(e,t,n,r){var i=e.get(`labelFormatter`),a=e.get(`labelPrecision`);(a==null||a===`auto`)&&(a=n.valuePrecision);var o=n.value[t],s=o==null||isNaN(o)?``:JT(r)||KT(r)?r.getLabel({value:Math.round(o)}):isFinite(a)?Bo(o,a,!0):o+``;return V(i)?i(o,s):H(i)?i.replace(`{value}`,s):s}function q3(e){return{x:`y`,y:`x`,radius:`angle`,angle:`radius`}[e]}function J3(e){return e===`vertical`?`ns-resize`:`ew-resize`}function Y3(e){e.registerComponentModel(F3),e.registerComponentView(G3),w1(e)}function X3(e){Fw(P3),Fw(Y3)}var Z3={get:function(e,t,n){var r=M((Q3[e]||{})[t]);return n&&B(r)?r[r.length-1]:r}},Q3={color:{active:[`#006edd`,`#e0ffff`],inactive:[Q.color.transparent]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:[`circle`,`roundRect`,`diamond`],inactive:[`none`]},symbolSize:{active:[10,50],inactive:[0,0]}},$3=LV.mapVisual,e6=LV.eachVisual,t6=B,n6=L,r6=Vo,i6=Fo,a6=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.stateList=[`inRange`,`outOfRange`],n.replacableOptionKeys=[`inRange`,`outOfRange`,`target`,`controller`,`color`],n.layoutMode={type:`box`,ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return t.prototype.init=function(e,t,n){this.mergeDefaultAndTheme(e,n)},t.prototype.optionUpdated=function(e,t){var n=this.option;!t&&p2(n,e,this.replacableOptionKeys),this.textStyleModel=this.getModel(`textStyle`),this.resetItemSize(),this.completeVisualOption()},t.prototype.resetVisual=function(e){var t=this.stateList;e=z(e,this),this.controllerVisuals=f2(this.option.controller,t,e),this.targetVisuals=f2(this.option.target,t,e)},t.prototype.getItemSymbol=function(){return null},t.prototype.getTargetSeriesIndices=function(){var e=this,t=this.option.seriesTargets;if(t){var n=[];return n6(t,function(t){if(t.seriesIndex!=null)n.push(t.seriesIndex);else if(t.seriesId!=null){var r;e.ecModel.eachSeries(function(e){e.id===t.seriesId&&(r=e)}),r&&n.push(r.componentIndex)}}),n}var r=this.option.seriesId,i=this.option.seriesIndex;i==null&&r==null&&(i=`all`);var a=Ks(this.ecModel,`series`,{index:i,id:r},{useDefault:!1,enableAll:!0,enableNone:!1}).models;return R(a,function(e){return e.componentIndex})},t.prototype.eachTargetSeries=function(e,t){L(this.getTargetSeriesIndices(),function(n){var r=this.ecModel.getSeriesByIndex(n);r&&e.call(t,r)},this)},t.prototype.isTargetSeries=function(e){var t=!1;return this.eachTargetSeries(function(n){n===e&&(t=!0)}),t},t.prototype.formatValueText=function(e,t,n){var r=this.option,i=r.precision,a=this.dataBound,o=r.formatter,s;n||=[`<`,`>`],B(e)&&(e=e.slice(),s=!0);var c=t?e:s?[l(e[0]),l(e[1])]:l(e);if(H(o))return o.replace(`{value}`,s?c[0]:c).replace(`{value2}`,s?c[1]:c);if(V(o))return s?o(e[0],e[1]):o(e);if(s)return e[0]===a[0]?n[0]+` `+c[1]:e[1]===a[1]?n[1]+` `+c[0]:c[0]+` - `+c[1];return c;function l(e){return e===a[0]?`min`:e===a[1]?`max`:(+e).toFixed(Math.min(i,20))}},t.prototype.resetExtent=function(){var e=this.option,t=r6([e.min,e.max]);this._dataExtent=t},t.prototype.getDimension=function(e){var t=this,n=this.option.seriesTargets;if(n){var r=ve(n,function(n){return n.seriesIndex!=null&&n.seriesIndex===e||n.seriesId!=null&&n.seriesId===t.ecModel.getSeriesByIndex(e).id});if(r)return r.dimension}return this.option.dimension},t.prototype.getDataDimensionIndex=function(e){var t=e.hostModel.seriesIndex,n=this.getDimension(t);if(n!=null)return e.getDimensionIndex(n);for(var r=e.dimensions,i=r.length-1;i>=0;i--){var a=r[i],o=e.getDimensionInfo(a);if(!o.isCalculationCoord)return o.storeDimIndex}},t.prototype.getExtent=function(){return this._dataExtent.slice()},t.prototype.completeVisualOption=function(){var e=this.ecModel,t=this.option,n={inRange:t.inRange,outOfRange:t.outOfRange},r=t.target||={},i=t.controller||={};N(r,n),N(i,n);var a=this.isCategory();o.call(this,r),o.call(this,i),s.call(this,r,`inRange`,`outOfRange`),c.call(this,i);function o(n){t6(t.color)&&!n.inRange&&(n.inRange={color:t.color.slice().reverse()}),n.inRange=n.inRange||{color:e.get(`gradientColor`)}}function s(e,t,n){var r=e[t],i=e[n];r&&!i&&(i=e[n]={},n6(r,function(e,t){if(LV.isValidType(t)){var n=Z3.get(t,`inactive`,a);n!=null&&(i[t]=n,t===`color`&&!i.hasOwnProperty(`opacity`)&&!i.hasOwnProperty(`colorAlpha`)&&(i.opacity=[0,0]))}}))}function c(e){var t=(e.inRange||{}).symbol||(e.outOfRange||{}).symbol,n=(e.inRange||{}).symbolSize||(e.outOfRange||{}).symbolSize,r=this.get(`inactiveColor`),i=this.getItemSymbol()||`roundRect`;n6(this.stateList,function(o){var s=this.itemSize,c=e[o];c||=e[o]={color:a?r:[r]},c.symbol??=t&&M(t)||(a?i:[i]),c.symbolSize??=n&&M(n)||(a?s[0]:[s[0],s[0]]),c.symbol=$3(c.symbol,function(e){return e===`none`?i:e});var l=c.symbolSize;if(l!=null){var u=-1/0;e6(l,function(e){e>u&&(u=e)}),c.symbolSize=$3(l,function(e){return i6(e,[0,u],[0,s[0]],!0)})}},this)}},t.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get(`itemWidth`)),parseFloat(this.get(`itemHeight`))]},t.prototype.isCategory=function(){return!!this.option.categories},t.prototype.setSelected=function(e){},t.prototype.getSelected=function(){return null},t.prototype.getValueState=function(e){return null},t.prototype.getVisualMeta=function(e){return null},t.type=`visualMap`,t.dependencies=[`series`],t.defaultOption={show:!0,z:4,min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:`vertical`,backgroundColor:Q.color.transparent,borderColor:Q.color.borderTint,contentColor:Q.color.theme[0],inactiveColor:Q.color.disabled,borderWidth:0,padding:Q.size.m,textGap:10,precision:0,textStyle:{color:Q.color.secondary}},t}(__),o6=[20,140],s6=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.optionUpdated=function(t,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual(function(e){e.mappingMethod=`linear`,e.dataExtent=this.getExtent()}),this._resetRange()},t.prototype.resetItemSize=function(){e.prototype.resetItemSize.apply(this,arguments);var t=this.itemSize;(t[0]==null||isNaN(t[0]))&&(t[0]=o6[0]),(t[1]==null||isNaN(t[1]))&&(t[1]=o6[1])},t.prototype._resetRange=function(){var e=this.getExtent(),t=this.option.range;!t||t.auto?(e.auto=1,this.option.range=e):B(t)&&(t[0]>t[1]&&t.reverse(),t[0]=Math.max(t[0],e[0]),t[1]=Math.min(t[1],e[1]))},t.prototype.completeVisualOption=function(){e.prototype.completeVisualOption.apply(this,arguments),L(this.stateList,function(e){var t=this.option.controller[e].symbolSize;t&&t[0]!==t[1]&&(t[0]=t[1]/3)},this)},t.prototype.setSelected=function(e){this.option.range=e.slice(),this._resetRange()},t.prototype.getSelected=function(){var e=this.getExtent(),t=Vo((this.get(`range`)||[]).slice());return t[0]>e[1]&&(t[0]=e[1]),t[1]>e[1]&&(t[1]=e[1]),t[0]=n[1]||e<=t[1])?`inRange`:`outOfRange`},t.prototype.findTargetDataIndices=function(e){var t=[];return this.eachTargetSeries(function(n){var r=[],i=n.getData();i.each(this.getDataDimensionIndex(i),function(t,n){e[0]<=t&&t<=e[1]&&r.push(n)},this),t.push({seriesId:n.id,dataIndex:r})},this),t},t.prototype.getVisualMeta=function(e){var t=c6(this,`outOfRange`,this.getExtent()),n=c6(this,`inRange`,this.option.range.slice()),r=[];function i(t,n){r.push({value:t,color:e(t,n)})}for(var a=0,o=0,s=n.length,c=t.length;oe[1])break;r.push({color:this.getControllerVisual(o,`color`,t),offset:a/n})}return r.push({color:this.getControllerVisual(e[1],`color`,t),offset:1}),r},t.prototype._createBarPoints=function(e,t){var n=this.visualMapModel.itemSize;return[[n[0]-t[0],e[0]],[n[0],e[0]],[n[0],e[1]],[n[0]-t[1],e[1]]]},t.prototype._createBarGroup=function(e){var t=this._orient,n=this.visualMapModel.get(`inverse`);return new Y(t===`horizontal`&&!n?{scaleX:e===`bottom`?1:-1,rotation:Math.PI/2}:t===`horizontal`&&n?{scaleX:e===`bottom`?-1:1,rotation:-Math.PI/2}:t===`vertical`&&!n?{scaleX:e===`left`?1:-1,scaleY:-1}:{scaleX:e===`left`?1:-1})},t.prototype._updateHandle=function(e,t){if(this._useHandle){var n=this._shapes,r=this.visualMapModel,i=n.handleThumbs,a=n.handleLabels,o=r.itemSize,s=r.getExtent(),c=this._applyTransform(`left`,n.mainGroup);m6([0,1],function(l){var u=i[l];u.setStyle(`fill`,t.handlesColor[l]),u.y=e[l];var d=p6(e[l],[0,o[1]],s,!0),f=this.getControllerVisual(d,`symbolSize`);u.scaleX=u.scaleY=f/o[0],u.x=o[0]-f/2;var p=xm(n.handleLabelPoints[l],bm(u,this.group));if(this._orient===`horizontal`){var m=c===`left`||c===`top`?(o[0]-f)/2:(o[0]-f)/-2;p[1]+=m}a[l].setStyle({x:p[0],y:p[1],text:r.formatValueText(this._dataInterval[l]),verticalAlign:`middle`,align:this._orient===`vertical`?this._applyTransform(`left`,n.mainGroup):`center`})},this)}},t.prototype._showIndicator=function(e,t,n,r){var i=this.visualMapModel,a=i.getExtent(),o=i.itemSize,s=[0,o[1]],c=this._shapes,l=c.indicator;if(l){l.attr(`invisible`,!1);var u=this.getControllerVisual(e,`color`,{convertOpacityToAlpha:!0}),d=this.getControllerVisual(e,`symbolSize`),f=p6(e,a,s,!0),p=o[0]-d/2,m={x:l.x,y:l.y};l.y=f,l.x=p;var h=xm(c.indicatorLabelPoint,bm(l,this.group)),g=c.indicatorLabel;g.attr(`invisible`,!1);var _=this._applyTransform(`left`,c.mainGroup),v=this._orient===`horizontal`;g.setStyle({text:(n||``)+i.formatValueText(t),verticalAlign:v?_:`middle`,align:v?`center`:_});var y={x:p,y:f,style:{fill:u}},b={style:{x:h[0],y:h[1]}};if(i.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var x={duration:100,easing:`cubicInOut`,additive:!0};l.x=m.x,l.y=m.y,l.animateTo(y,x),g.animateTo(b,x)}else l.attr(y),g.attr(b);this._firstShowIndicator=!1;var S=this._shapes.handleLabels;if(S)for(var C=0;Ci[1]&&(l[1]=1/0),t&&(l[0]===-1/0?this._showIndicator(c,l[1],`< `,o):l[1]===1/0?this._showIndicator(c,l[0],`> `,o):this._showIndicator(c,c,`≈ `,o));var u=this._hoverLinkDataIndices,d=[];(t||S6(n))&&(d=this._hoverLinkDataIndices=n.findTargetDataIndices(l));var f=Rs(u,d);this._dispatchHighDown(`downplay`,f6(f[0],n)),this._dispatchHighDown(`highlight`,f6(f[1],n))}},t.prototype._hoverLinkFromSeriesMouseOver=function(e){var t;if(Rx(e.target,function(e){var n=Z(e);if(n.dataIndex!=null)return t=n,!0},!0),t){var n=this.ecModel.getSeriesByIndex(t.seriesIndex),r=this.visualMapModel;if(r.isTargetSeries(n)){var i=n.getData(t.dataType),a=i.getStore().get(r.getDataDimensionIndex(i),t.dataIndex);isNaN(a)||this._showIndicator(a,a)}}},t.prototype._hideIndicator=function(){var e=this._shapes;e.indicator&&e.indicator.attr(`invisible`,!0),e.indicatorLabel&&e.indicatorLabel.attr(`invisible`,!0);var t=this._shapes.handleLabels;if(t)for(var n=0;n=0&&(i.dimension=a,r.push(i))}}),e.getData().setVisual(`visualMeta`,r)}}];function D6(e,t,n,r){for(var i=t.targetVisuals[r],a=LV.prepareVisualTypes(i),o={color:Nx(e.getData(),`color`)},s=0,c=a.length;s0:e.splitNumber>0)||e.calculable)?`continuous`:`piecewise`}),e.registerAction(w6,T6),L(E6,function(t){e.registerVisual(e.PRIORITY.VISUAL.COMPONENT,t)}),e.registerPreprocessor(k6))}function N6(e){e.registerComponentModel(s6),e.registerComponentView(y6),M6(e)}var P6=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n._pieceList=[],n}return t.prototype.optionUpdated=function(t,n){e.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var r=this._mode=this._determineMode();this._pieceList=[],F6[this._mode].call(this,this._pieceList),this._resetSelected(t,n);var i=this.option.categories;this.resetVisual(function(e,t){r===`categories`?(e.mappingMethod=`category`,e.categories=M(i)):(e.dataExtent=this.getExtent(),e.mappingMethod=`piecewise`,e.pieceList=R(this._pieceList,function(e){return e=M(e),t!==`inRange`&&(e.visual=null),e}))})},t.prototype.completeVisualOption=function(){var t=this.option,n={},r=LV.listVisualTypes(),i=this.isCategory();L(t.pieces,function(e){L(r,function(t){e.hasOwnProperty(t)&&(n[t]=1)})}),L(n,function(e,n){var r=!1;L(this.stateList,function(e){r=r||a(t,e,n)||a(t.target,e,n)},this),!r&&L(this.stateList,function(e){(t[e]||(t[e]={}))[n]=Z3.get(n,e===`inRange`?`active`:`inactive`,i)})},this);function a(e,t,n){return e&&e[t]&&e[t].hasOwnProperty(n)}e.prototype.completeVisualOption.apply(this,arguments)},t.prototype._resetSelected=function(e,t){var n=this.option,r=this._pieceList,i=(t?n:e).selected||{};if(n.selected=i,L(r,function(e,t){var n=this.getSelectedMapKey(e);i.hasOwnProperty(n)||(i[n]=!0)},this),n.selectedMode===`single`){var a=!1;L(r,function(e,t){var n=this.getSelectedMapKey(e);i[n]&&(a?i[n]=!1:a=!0)},this)}},t.prototype.getItemSymbol=function(){return this.get(`itemSymbol`)},t.prototype.getSelectedMapKey=function(e){return this._mode===`categories`?e.value+``:e.index+``},t.prototype.getPieceList=function(){return this._pieceList},t.prototype._determineMode=function(){var e=this.option;return e.pieces&&e.pieces.length>0?`pieces`:this.option.categories?`categories`:`splitNumber`},t.prototype.setSelected=function(e){this.option.selected=M(e)},t.prototype.getValueState=function(e){var t=LV.findPieceIndex(e,this._pieceList);return t==null?`outOfRange`:this.option.selected[this.getSelectedMapKey(this._pieceList[t])]?`inRange`:`outOfRange`},t.prototype.findTargetDataIndices=function(e){var t=[],n=this._pieceList;return this.eachTargetSeries(function(r){var i=[],a=r.getData();a.each(this.getDataDimensionIndex(a),function(t,r){LV.findPieceIndex(t,n)===e&&i.push(r)},this),t.push({seriesId:r.id,dataIndex:i})},this),t},t.prototype.getRepresentValue=function(e){var t;if(this.isCategory())t=e.value;else if(e.value!=null)t=e.value;else{var n=e.interval||[];t=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return t},t.prototype.getVisualMeta=function(e){if(this.isCategory())return;var t=[],n=[``,``],r=this;function i(i,a){var o=r.getRepresentValue({interval:i});a||=r.getValueState(o);var s=e(o,a);i[0]===-1/0?n[0]=s:i[1]===1/0?n[1]=s:t.push({value:i[0],color:s},{value:i[1],color:s})}var a=this._pieceList.slice();if(!a.length)a.push({interval:[-1/0,1/0]});else{var o=a[0].interval[0];o!==-1/0&&a.unshift({interval:[-1/0,o]}),o=a[a.length-1].interval[1],o!==1/0&&a.push({interval:[o,1/0]})}var s=-1/0;return L(a,function(e){var t=e.interval;t&&(t[0]>s&&i([s,t[0]],`outOfRange`),i(t.slice()),s=t[1])},this),{stops:t,outerColors:n}},t.type=`visualMap.piecewise`,t.defaultOption=Ah(a6.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:`auto`,itemWidth:20,itemHeight:14,itemSymbol:`roundRect`,pieces:null,categories:null,splitNumber:5,selectedMode:`multiple`,itemGap:10,hoverLink:!0}),t}(a6),F6={splitNumber:function(e){var t=this.option,n=Math.min(t.precision,20),r=this.getExtent(),i=t.splitNumber;i=Math.max(parseInt(i,10),1),t.splitNumber=i;for(var a=(r[1]-r[0])/i;+a.toFixed(n)!==a&&n<5;)n++;t.precision=n,a=+a.toFixed(n),t.minOpen&&e.push({interval:[-1/0,r[0]],close:[0,0]});for(var o=0,s=r[0];o`,`≥`][t[0]]];e.text=e.text||this.formatValueText(e.value==null?e.interval:e.value,!1,n)},this)}};function I6(e,t){var n=e.inverse;(e.orient===`vertical`?!n:n)&&t.reverse()}var L6=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n}return t.prototype.doRender=function(){var e=this.group;e.removeAll();var t=this.visualMapModel,n=t.get(`textGap`),r=t.textStyleModel,i=this._getItemAlign(),a=t.itemSize,o=this._getViewData(),s=o.endsText,c=je(t.get(`showLabel`,!0),!s),l=!t.get(`selectedMode`);s&&this._renderEndsText(e,s[0],a,c,i),L(o.viewPieceList,function(o){var s=o.piece,u=new Y;u.onclick=z(this._onItemClick,this,s),this._enableHoverLink(u,o.indexInModelPieceList);var d=t.getRepresentValue(s);if(this._createItemSymbol(u,d,[0,0,a[0],a[1]],l),c){var f=this.visualMapModel.getValueState(d),p=r.get(`align`)||i;u.add(new Vu({style:nh(r,{x:p===`right`?-n:a[0]+n,y:a[1]/2,text:s.text,verticalAlign:r.get(`verticalAlign`)||`middle`,align:p,opacity:W(r.get(`opacity`),f===`outOfRange`?.5:1)}),silent:l}))}e.add(u)},this),s&&this._renderEndsText(e,s[1],a,c,i),n_(t.get(`orient`),e,t.get(`itemGap`)),this.renderBackground(e),this.positionGroup(e)},t.prototype._enableHoverLink=function(e,t){var n=this;e.on(`mouseover`,function(){return r(`highlight`)}).on(`mouseout`,function(){return r(`downplay`)});var r=function(e){var r=n.visualMapModel;r.option.hoverLink&&n.api.dispatchAction({type:e,batch:f6(r.findTargetDataIndices(t),r)})}},t.prototype._getItemAlign=function(){var e=this.visualMapModel,t=e.option;if(t.orient===`vertical`)return d6(e,this.api,e.itemSize);var n=t.align;return(!n||n===`auto`)&&(n=`left`),n},t.prototype._renderEndsText=function(e,t,n,r,i){if(t){var a=new Y,o=this.visualMapModel.textStyleModel;a.add(new Vu({style:nh(o,{x:r?i===`right`?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:`middle`,align:r?i:`center`,text:t})})),e.add(a)}},t.prototype._getViewData=function(){var e=this.visualMapModel,t=R(e.getPieceList(),function(e,t){return{piece:e,indexInModelPieceList:t}}),n=e.get(`text`),r=e.get(`orient`),i=e.get(`inverse`);return(r===`horizontal`?i:!i)?t.reverse():n&&=n.slice().reverse(),{viewPieceList:t,endsText:n}},t.prototype._createItemSymbol=function(e,t,n,r){var i=oS(this.getControllerVisual(t,`symbol`),n[0],n[1],n[2],n[3],this.getControllerVisual(t,`color`));i.silent=r,e.add(i)},t.prototype._onItemClick=function(e){var t=this.visualMapModel,n=t.option,r=n.selectedMode;if(r){var i=M(n.selected),a=t.getSelectedMapKey(e);r===`single`||r===!0?(i[a]=!0,L(i,function(e,t){i[t]=t===a})):i[a]=!i[a],this.api.dispatchAction({type:`selectDataRange`,from:this.uid,visualMapId:this.visualMapModel.id,selected:i})}},t.type=`visualMap.piecewise`,t}(l6);function R6(e){e.registerComponentModel(P6),e.registerComponentView(L6),M6(e)}function z6(e){Fw(N6),Fw(R6)}var B6=function(){function e(e){this._thumbnailModel=e}return e.prototype.reset=function(e){this._renderVersion=e.getECUpdateCycleVersion()},e.prototype.renderContent=function(e){var t=e.api.getViewOfComponentModel(this._thumbnailModel);t&&(e.group.silent=!0,t.renderContent({group:e.group,targetTrans:e.targetTrans,z2Range:Wm(e.group),roamType:e.roamType,viewportRect:e.viewportRect,renderVersion:this._renderVersion}))},e.prototype.updateWindow=function(e,t){var n=t.getViewOfComponentModel(this._thumbnailModel);n&&n.updateWindow({targetTrans:e,renderVersion:this._renderVersion})},e}(),V6=function(e){_(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n.type=t.type,n.preventAutoZ=!0,n}return t.prototype.optionUpdated=function(e,t){this._updateBridge()},t.prototype._updateBridge=function(){var e=this._birdge=this._birdge||new B6(this);this._target=null,this.ecModel.eachSeries(function(e){CU(e,null)}),this.shouldShow()&&CU(this.getTarget().baseMapProvider,e)},t.prototype.shouldShow=function(){return this.getShallow(`show`,!0)},t.prototype.getBridge=function(){return this._birdge},t.prototype.getTarget=function(){if(this._target)return this._target;var e=this.getReferringComponents(`series`,{useDefault:!1,enableAll:!1,enableNone:!1}).models[0];return e?e.subType!==`graph`&&(e=null):e=this.ecModel.queryComponents({mainType:`series`,subType:`graph`})[0],this._target={baseMapProvider:e},this._target},t.type=`thumbnail`,t.layoutMode=`box`,t.dependencies=[`series`,`geo`],t.defaultOption={show:!0,right:1,bottom:1,height:`25%`,width:`25%`,itemStyle:{borderColor:Q.color.border,borderWidth:2},windowStyle:{borderWidth:1,color:Q.color.neutral30,borderColor:Q.color.neutral40,opacity:.3},z:10},t}(__),H6=function(e){_(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){if(this._api=n,this._model=e,this._coordSys||=new aR,!this._isEnabled()){this._clear();return}this._renderVersion=n.getECUpdateCycleVersion();var r=this.group;r.removeAll();var i=e.getModel(`itemStyle`),a=i.getItemStyle();a.fill??=t.get(`backgroundColor`)||Q.color.neutral00;var o=l_(e,n).refContainer,s=o_(r_(e,!0),o),c=a.lineWidth||0,l=this._contentRect=Nm(s.clone(),c/2,!0,!0),u=new Y;r.add(u),u.setClipPath(new Iu({shape:l.plain()}));var d=this._targetGroup=new Y;u.add(d);var f=s.plain();f.r=i.getShallow(`borderRadius`,!0),r.add(this._bgRect=new Iu({style:a,shape:f,silent:!1,cursor:`grab`}));var p=e.getModel(`windowStyle`),m=p.getShallow(`borderRadius`,!0);u.add(this._windowRect=new Iu({shape:{x:0,y:0,width:0,height:0,r:m},style:p.getItemStyle(),silent:!1,cursor:`grab`})),this._dealRenderContent(),this._dealUpdateWindow(),W6(e,this)},t.prototype.renderContent=function(e){this._bridgeRendered=e,this._isEnabled()&&(this._dealRenderContent(),this._dealUpdateWindow(),W6(this._model,this))},t.prototype._dealRenderContent=function(){var e=this._bridgeRendered;if(!(!e||e.renderVersion!==this._renderVersion)){var t=this._targetGroup,n=this._coordSys,r=this._contentRect;if(t.removeAll(),e){var i=e.group,a=i.getBoundingRect();t.add(i),this._bgRect.z2=e.z2Range.min-10,_R(n,a.x,a.y,a.width,a.height);var o=o_({left:`center`,top:`center`,aspect:a.width/a.height},r);vR(n,o.x,o.y,o.width,o.height),dR(i,n,0),i.dirty(),this._windowRect.z2=e.z2Range.max+10,this._resetRoamController(e.roamType)}}},t.prototype.updateWindow=function(e){var t=this._bridgeRendered;t&&t.renderVersion===e.renderVersion&&(t.targetTrans=e.targetTrans),this._isEnabled()&&this._dealUpdateWindow()},t.prototype._dealUpdateWindow=function(){var e=this._bridgeRendered;if(!(!e||e.renderVersion!==this._renderVersion)){var t=nn([],e.targetTrans),n=Qt([],sR(null,this._coordSys),t);this._transThisToTarget=nn([],n);var r=e.viewportRect;r=r?r.clone():new J(0,0,this._api.getWidth(),this._api.getHeight()),r.applyTransform(n);var i=this._windowRect,a=i.shape.r;i.setShape(F({r:a},r))}},t.prototype._resetRoamController=function(e){var t=this,n=this._api,r=this._roamController;if(r||=this._roamController=new eL(n.getZr()),!e||!this._isEnabled()){r.disable();return}r.enable(e,{api:n,zInfo:{component:this._model},triggerInfo:{roamTrigger:null,isInSelf:function(e,n,r){return t._contentRect.contain(n,r)}}}),r.off(`pan`).off(`zoom`).on(`pan`,z(this._onPan,this)).on(`zoom`,z(this._onZoom,this))},t.prototype._onPan=function(e){var t=this._transThisToTarget;if(!(!this._isEnabled()||!t)){var n=pt([],[e.oldX,e.oldY],t),r=pt([],[e.oldX-e.dx,e.oldY-e.dy],t);this._api.dispatchAction(U6(this._model.getTarget().baseMapProvider,{dx:r[0]-n[0],dy:r[1]-n[1]}))}},t.prototype._onZoom=function(e){var t=this._transThisToTarget;if(!(!this._isEnabled()||!t)){var n=pt([],[e.originX,e.originY],t);this._api.dispatchAction(U6(this._model.getTarget().baseMapProvider,{zoom:1/e.scale,originX:n[0],originY:n[1]}))}},t.prototype._isEnabled=function(){var e=this._model;return!(!e||!e.shouldShow()||!e.getTarget().baseMapProvider)},t.prototype._clear=function(){this.group.removeAll(),this._bridgeRendered=null,this._roamController&&this._roamController.disable()},t.prototype.remove=function(){this._clear()},t.prototype.dispose=function(){this._clear()},t.type=`thumbnail`,t}(Pb);function U6(e,t){var n={type:e.mainType===`series`?e.subType+`Roam`:e.mainType+`Roam`};return n[e.mainType+`Id`]=e.id,P(n,t),n}function W6(e,t){var n=Um(e);Gm(t.group,n.z,n.zlevel)}function G6(e){e.registerComponentModel(V6),e.registerComponentView(H6)}var K6={label:{enabled:!0},decal:{show:!1}},q6=Bs(),J6=Bs(),Y6=vc(X6);function X6(e,t){var n=e.getModel(`aria`);if(!n.get(`enabled`))return;var r=J6(e).scope||(J6(e).scope={}),i=M(K6);N(i.label,e.getLocaleModel().get(`aria`),!1),N(n.option,i,!1),a(),o();function a(){if(n.getModel(`decal`).get(`show`)){var t=G();e.eachSeries(function(e){e.isColorBySeries()||(q6(e).scope=t.get(e.type)||t.set(e.type,{}))}),e.eachSeries(function(t){if(V(t.enableAriaDecal)){t.enableAriaDecal();return}var n=t.getData();if(t.isColorBySeries()){var i=H_(t.ecModel,t.name,r,e.getSeriesCount()),a=n.getVisual(`decal`);n.setVisual(`decal`,u(a,i))}else{var o=t.getRawData(),s={},c=q6(t).scope;n.each(function(e){var t=n.getRawIndex(e);s[t]=e});var l=o.count();o.each(function(e){var r=s[e],i=o.getName(e)||e+``,a=H_(t.ecModel,i,c,l),d=n.getItemVisual(r,`decal`);n.setItemVisual(r,`decal`,u(d,a))})}function u(e,t){var n=e?P(P({},t),e):t;return n.dirty=!0,n}})}}function o(){var r=t.getZr().dom;if(r){var i=e.getLocaleModel().get(`aria`),a=n.getModel(`label`);if(a.option=F(a.option,i),a.get(`enabled`)){if(r.setAttribute(`role`,`img`),a.get(`description`)){r.setAttribute(`aria-label`,a.get(`description`));return}var o=e.getSeriesCount(),u=a.get([`data`,`maxCount`])||10,d=a.get([`series`,`maxCount`])||10,f=Math.min(o,d),p;if(!(o<1)){var m=c();p=m?s(a.get([`general`,`withTitle`]),{title:m}):a.get([`general`,`withoutTitle`]);var h=[],g=o>1?a.get([`series`,`multiple`,`prefix`]):a.get([`series`,`single`,`prefix`]);p+=s(g,{seriesCount:o}),e.eachSeries(function(e,t){if(t1?a.get([`series`,`multiple`,r]):a.get([`series`,`single`,r]),n=s(n,{seriesId:e.seriesIndex,seriesName:e.get(`name`),seriesType:l(e.subType)});var i=e.getData();if(i.count()>u){var c=a.get([`data`,`partialData`]);n+=s(c,{displayCnt:u})}else n+=a.get([`data`,`allData`]);for(var d=a.get([`data`,`separator`,`middle`]),p=a.get([`data`,`separator`,`end`]),m=a.get([`data`,`excludeDimensionId`]),g=[],_=0;_":`gt`,">=":`gte`,"=":`eq`,"!=":`ne`,"<>":`ne`},e8=function(){function e(e){(this._condVal=H(e)?new RegExp(e):ke(e)?e:null)??ms(``)}return e.prototype.evaluate=function(e){var t=typeof e;return H(t)?this._condVal.test(e):Ce(t)?this._condVal.test(e+``):!1},e}(),t8=function(){function e(){}return e.prototype.evaluate=function(){return this.value},e}(),n8=function(){function e(){}return e.prototype.evaluate=function(){for(var e=this.children,t=0;t2&&r.push(i),i=[e,t]}function u(e,t,n,r){b8(e,n)&&b8(t,r)||i.push(e,t,n,r,n,r)}function d(e,t,n,r,a,o){var s=Math.abs(t-e),c=Math.tan(s/4)*4/3,l=tw:D2&&r.push(i),r}function S8(e,t,n,r,i,a,o,s,c,l){if(b8(e,n)&&b8(t,r)&&b8(i,o)&&b8(a,s)){c.push(o,s);return}var u=2/l,d=u*u,f=o-e,p=s-t,m=Math.sqrt(f*f+p*p);f/=m,p/=m;var h=n-e,g=r-t,_=i-o,v=a-s,y=h*h+g*g,b=_*_+v*v;if(y=0&&w=0){c.push(o,s);return}var T=[],E=[];_r(e,n,i,o,.5,T),_r(t,r,a,s,.5,E),S8(T[0],E[0],T[1],E[1],T[2],E[2],T[3],E[3],c,l),S8(T[4],E[4],T[5],E[5],T[6],E[6],T[7],E[7],c,l)}function C8(e,t){var n=x8(e),r=[];t||=1;for(var i=0;i0)for(var l=0;lMath.abs(l),d=w8([c,l],+!u,t),f=(u?s:l)/d.length,p=0;pi,o=w8([r,i],+!a,t),s=a?`width`:`height`,c=a?`height`:`width`,l=a?`x`:`y`,u=a?`y`:`x`,d=e[s]/o.length,f=0;f1?null:new q(p*c+e,p*l+t)}function k8(e,t,n){var r=new q;q.sub(r,n,t),r.normalize();var i=new q;return q.sub(i,e,t),i.dot(r)}function A8(e,t){var n=e[e.length-1];n&&n[0]===t[0]&&n[1]===t[1]||e.push(t)}function j8(e,t,n){for(var r=e.length,i=[],a=0;ao?(l.x=u.x=s+a/2,l.y=c,u.y=c+o):(l.y=u.y=c+o/2,l.x=s,u.x=s+a),j8(t,l,u)}function N8(e,t,n,r){if(n===1)r.push(t);else{var i=Math.floor(n/2),a=e(t);N8(e,a[0],i,r),N8(e,a[1],n-i,r)}return r}function P8(e,t){for(var n=[],r=0;r0)for(var x=r/n,S=-r/2;S<=r/2;S+=x){for(var C=Math.sin(S),w=Math.cos(S),T=0,y=0;y0;l/=2){var u=0,d=0;(e&l)>0&&(u=1),(t&l)>0&&(d=1),s+=l*l*(3*u^d),d===0&&(u===1&&(e=l-1-e,t=l-1-t),c=e,e=t,t=c)}return s}function $8(e){var t=1/0,n=1/0,r=-1/0,i=-1/0;return R(R(e,function(e){var a=e.getBoundingRect(),o=e.getComputedTransform(),s=a.x+a.width/2+(o?o[4]:0),c=a.y+a.height/2+(o?o[5]:0);return t=Math.min(s,t),n=Math.min(c,n),r=Math.max(s,r),i=Math.max(c,i),[s,c]}),function(a,o){return{cp:a,z:Q8(a[0],a[1],t,n,r,i),path:e[o]}}).sort(function(e,t){return e.z-t.z}).map(function(e){return e.path})}function e5(e){return L8(e.path,e.count)}function t5(){return{fromIndividuals:[],toIndividuals:[],count:0}}function n5(e,t,n){var r=[];function i(e){for(var t=0;t=0;i--)if(!n[i].many.length){var c=n[s].many;if(c.length<=1)if(s)s=0;else return n;var a=c.length,l=Math.ceil(a/2);n[i].many=c.slice(l,a),n[s].many=c.slice(0,l),s++}return n}var o5={clone:function(e){for(var t=[],n=1-(1-e.path.style.opacity)**(1/e.count),r=0;r0))return;var s=r.getModel(`universalTransition`).get(`delay`),c=P({setToFinal:!0},o),l,u;i5(e)&&(l=e,u=t),i5(t)&&(l=t,u=e);function d(e,t,r,i,o){var l=e.many,u=e.one;if(l.length===1&&!o){var f=t?l[0]:u,p=t?u:l[0];if(G8(f))d({many:[f],one:p},!0,r,i,!0);else{var m=s?F({delay:s(r,i)},c):c;Z8(f,p,m),a(f,p,f,p,m)}}else for(var h=F({dividePath:o5[n],individualDelay:s&&function(e,t,n,a){return s(e+r,i)}},c),g=t?n5(l,u,h):r5(u,l,h),_=g.fromIndividuals,v=g.toIndividuals,y=_.length,b=0;bt.length,p=l?a5(u,l):a5(f?t:e,[f?e:t]),m=0,h=0;hl5))for(var i=n.getIndices(),a=0;a0&&r.group.traverse(function(e){e instanceof Su&&!e.animators.length&&e.animateFrom({style:{opacity:0}},i)})})}function w5(e){return e.getModel(`universalTransition`).get(`seriesKey`)||e.id}function T5(e){return B(e)?e.sort().join(`,`):e}function E5(e){if(e.hostModel)return e.hostModel.getModel(`universalTransition`).get(`divideShape`)}function D5(e,t){var n=G(),r=G(),i=G();return L(e.oldSeries,function(t,n){var a=e.oldDataGroupIds[n],o=e.oldData[n],s=w5(t),c=T5(s);r.set(c,{dataGroupId:a,data:o}),B(s)&&L(s,function(e){i.set(e,{key:c,dataGroupId:a,data:o})})}),L(t.updatedSeries,function(e){if(e.isUniversalTransitionEnabled()&&e.isAnimationEnabled()){var t=e.get(`dataGroupId`),a=e.getData(),o=w5(e),s=T5(o),c=r.get(s);if(c)n.set(s,{oldSeries:[{dataGroupId:c.dataGroupId,divide:E5(c.data),data:c.data}],newSeries:[{dataGroupId:t,divide:E5(a),data:a}]});else if(B(o)){var l=[];L(o,function(e){var t=r.get(e);t.data&&l.push({dataGroupId:t.dataGroupId,divide:E5(t.data),data:t.data})}),l.length&&n.set(s,{oldSeries:l,newSeries:[{dataGroupId:t,data:a,divide:E5(a)}]})}else{var u=i.get(o);if(u){var d=n.get(u.key);d||(d={oldSeries:[{dataGroupId:u.dataGroupId,data:u.data,divide:E5(u.data)}],newSeries:[]},n.set(u.key,d)),d.newSeries.push({dataGroupId:t,data:a,divide:E5(a)})}}}}),n}function O5(e,t){for(var n=0;n=0&&i.push({dataGroupId:t.oldDataGroupIds[n],data:t.oldData[n],divide:E5(t.oldData[n]),groupIdDim:e.dimension})}),L(vs(e.to),function(e){var r=O5(n.updatedSeries,e);if(r>=0){var i=n.updatedSeries[r].getData();a.push({dataGroupId:t.oldDataGroupIds[r],data:i,divide:E5(i),groupIdDim:e.dimension})}}),i.length>0&&a.length>0&&C5(i,a,r)}function A5(e){e.registerUpdateLifecycle(`series:beforeupdate`,function(e,t,n){L(vs(n.seriesTransition),function(e){L(vs(e.to),function(e){for(var t=n.updatedSeries,r=0;ro.vmin?n+=o.vmin-r+(e-o.vmin)/(o.vmax-o.vmin)*o.gapReal:n+=e-r,r=o.vmax,i=!1;break}n+=o.vmin-r+o.gapReal,r=o.vmax}return i&&(n+=e-r),n},transformOut:function(e,t){if(t&&t.depth===2)return e;for(var n=N5,r=P5,i=!0,a=0,o=0;oc?s.vmin+(e-c)/(l-c)*(s.vmax-s.vmin):r+e-n,r=s.vmax,i=!1;break}n=l,r=s.vmax}return i&&(a=r+e-n),a}},e}();function M5(e,t){return new j5(e,t)}var N5=0,P5=0;function F5(e,t){var n=0,r={tpAbs:{span:0,val:0},tpPrct:{span:0,val:0}},i=function(){return{has:!1,span:NaN,inExtFrac:NaN,val:NaN}},a={S:{tpAbs:i(),tpPrct:i()},E:{tpAbs:i(),tpPrct:i()}};L(e.breaks,function(e){var i=e.gapParsed;i.type===`tpPrct`&&(n+=i.val);var o=R5(e,t);if(o){var s=o.vmin!==e.vmin,c=o.vmax!==e.vmax,l=o.vmax-o.vmin;if(!(s&&c))if(s||c){var u=s?`S`:`E`;a[u][i.type].has=!0,a[u][i.type].span=l,a[u][i.type].inExtFrac=l/(e.vmax-e.vmin),a[u][i.type].val=i.val}else r[i.type].span+=l,r[i.type].val+=i.val}});var o=n*(0+(t[1]-t[0])+(r.tpAbs.val-r.tpAbs.span)+(a.S.tpAbs.has?(a.S.tpAbs.val-a.S.tpAbs.span)*a.S.tpAbs.inExtFrac:0)+(a.E.tpAbs.has?(a.E.tpAbs.val-a.E.tpAbs.span)*a.E.tpAbs.inExtFrac:0)-r.tpPrct.span-(a.S.tpPrct.has?a.S.tpPrct.span*a.S.tpPrct.inExtFrac:0)-(a.E.tpPrct.has?a.E.tpPrct.span*a.E.tpPrct.inExtFrac:0))/(1-r.tpPrct.val-(a.S.tpPrct.has?a.S.tpPrct.val*a.S.tpPrct.inExtFrac:0)-(a.E.tpPrct.has?a.E.tpPrct.val*a.E.tpPrct.inExtFrac:0));L(e.breaks,function(e){var t=e.gapParsed;t.type===`tpPrct`&&(e.gapReal=n===0?0:To(o,0)*t.val/n),t.type===`tpAbs`&&(e.gapReal=t.val),e.gapReal??=0})}function I5(e,t,n,r,i,a){e!==`no`&&L(n,function(n){var o=R5(n,a);if(o)for(var s=t.length-1;s>=0;s--){var c=t[s],l=r(c),u=i*3/4;l>o.vmin-u&&lt[0]&&n=0&&e<.99999}L(e,function(e){if(!(!e||e.start==null||e.end==null)&&!e.isExpanded){var a={breakOption:M(e),vmin:t.parse(e.start),vmax:t.parse(e.end),gapParsed:{type:`tpAbs`,val:0},gapReal:null};if(e.gap!=null){var o=!1;if(H(e.gap)){var s=Ie(e.gap);if(s.match(/%$/)){var c=parseFloat(s)/100;i(c,`Percent gap`)||(c=0),a.gapParsed.type=`tpPrct`,a.gapParsed.val=c,o=!0}}if(!o){var l=t.parse(e.gap);(!isFinite(l)||l<0)&&(l=0),a.gapParsed.type=`tpAbs`,a.gapParsed.val=l}}if(a.vmin===a.vmax&&(a.gapParsed.type=`tpAbs`,a.gapParsed.val=0),n&&n.noNegative&&L([`vmin`,`vmax`],function(e){a[e]<0&&(a[e]=0)}),a.vmin>a.vmax){var u=a.vmax;a.vmax=a.vmin,a.vmin=u}r.push(a)}}),r.sort(function(e,t){return e.vmin-t.vmin});var a=-1/0;return L(r,function(e,t){a>e.vmin&&(r[t]=null),a=e.vmax}),{breaks:_e(r,function(e){return!!e})}}function B5(e,t){return V5(t)===V5(e)}function V5(e){return e.start+`_\0_`+e.end}function H5(e,t,n){var r=[];L(e,function(e,n){var i=t(e);i&&i.type===`vmin`&&r.push([n])}),L(e,function(n,i){var a=t(n);if(a&&a.type===`vmax`){var o=ve(r,function(n){return B5(t(e[n[0]]).parsedBreak.breakOption,a.parsedBreak.breakOption)});o&&o.push(i)}});var i=[];return L(r,function(t){t.length===2&&i.push(n?t:[e[t[0]],e[t[1]]])}),i}function U5(e,t,n,r){if(t.break){var i=t.break.parsedBreak,a=ve(n,function(e){return B5(e.breakOption,t.break.parsedBreak.breakOption)}),o={lookup:r,depth:2},s={vmin:e.transformOut(i.vmin,o),vmax:e.transformOut(i.vmax,o),breakOption:i.breakOption,gapParsed:M(a.gapParsed),gapReal:i.gapReal};return{tickVal:s[t.break.type],vBreak:{type:t.break.type,parsedBreak:s}}}}function W5(e,t,n,r,i){i.original=z5(e,t,n);var a=i.transformed=z5(e,t,n),o=i.lookup;a.breaks=R(a.breaks,function(e,n){var i={depth:2},a=t.transformIn(e.vmin,i),s=t.transformIn(e.vmax,i),c={type:e.gapParsed.type,val:e.gapParsed.type===`tpAbs`?t.transformIn(e.vmin+e.gapParsed.val,i)-a:e.gapParsed.val};return o.from[r+n]=a,o.to[r+n]=e.vmin,o.from[r+n+1]=s,o.to[r+n+1]=e.vmax,{vmin:a,vmax:s,gapParsed:c,gapReal:e.gapReal,breakOption:e.breakOption}})}var G5={vmin:`start`,vmax:`end`};function K5(e,t){return t&&(e||={},e.break={type:G5[t.type],start:t.parsedBreak.vmin,end:t.parsedBreak.vmax}),e}function q5(){Wh({createBreakScaleMapper:M5,pruneTicksByBreak:I5,addBreaksToTicks:L5,parseAxisBreakOption:z5,identifyAxisBreak:B5,serializeAxisBreakIdentifier:V5,retrieveAxisBreakPairs:H5,getTicksBreakOutwardTransform:U5,parseAxisBreakOptionInwardTransform:W5,makeAxisLabelFormatterParamBreak:K5})}var J5=Bs();function Y5(e,t){var n=ve(e,function(e){return Gh().identifyAxisBreak(e.parsedBreak.breakOption,t.breakOption)});return n||e.push(n={zigzagRandomList:[],parsedBreak:t,shouldRemove:!1}),n}function X5(e){L(e,function(e){return e.shouldRemove=!0})}function Z5(e){for(var t=e.length-1;t>=0;t--)e[t].shouldRemove&&e.splice(t,1)}function Q5(e,t,n,r,i){var a=n.axis;if(a.scale.isBlank()||!Gh())return;var o=Gh().retrieveAxisBreakPairs(a.scale.getTicks({breakTicks:`only_break`}),function(e){return e.break},!1);if(!o.length)return;var s=n.getModel(`breakArea`),c=s.get(`zigzagAmplitude`),l=s.get(`zigzagMinSpan`),u=s.get(`zigzagMaxSpan`);l=Math.max(2,l||0),u=Math.max(l,u||0);var d=s.get(`expandOnClick`),f=s.get(`zigzagZ`),p=s.getModel(`itemStyle`).getItemStyle(),m=p.stroke,h=p.lineWidth,g=p.lineDash,_=p.fill,v=new Y({ignoreModelZ:!0}),y=a.isHorizontal(),b=J5(t).visualList||(J5(t).visualList=[]);X5(b);for(var x=function(e){var t=o[e][0].break.parsedBreak,r=[];r[0]=a.toGlobalCoord(a.dataToCoord(t.vmin,!0)),r[1]=a.toGlobalCoord(a.dataToCoord(t.vmax,!0)),r[1]=y;D&&(w=y);var O=[],k=[];O[d]=n,k[d]=i,!E&&!D&&(O[d]+=C?-c:c,k[d]-=C?c:-c),O[v]=w,k[v]=w,x.push(O),S.push(k);var A=void 0;if(Tn[1]&&n.reverse(),{coordPair:n,brkId:Gh().serializeAxisBreakIdentifier(t.breakOption)}});s.sort(function(e,t){return e.coordPair[0]-t.coordPair[0]});for(var c=o[0],l=null,u=0;u=0?c[0].width:c[1].width)+u.x)/2-l.x,f=Math.min(d,d-u.x),p=Math.max(d,d-u.x);s=(d-(p<0?p:f>0?f:0))/u.x}var m=new q,h=new q;q.scale(m,r,-s),q.scale(h,r,1-s),uk(n[0],m),uk(n[1],h)}function t7(e,t){var n={breaks:[]};return L(t.breaks,function(r){if(r){var i=ve(e.get(`breaks`,!0),function(e){return Gh().identifyAxisBreak(e,r)});if(i){var a=t.type,o={isExpanded:!!i.isExpanded};i.isExpanded=a===`expandAxisBreak`?!0:a===`collapseAxisBreak`?!1:a===`toggleAxisBreak`?!i.isExpanded:i.isExpanded,n.breaks.push({start:i.start,end:i.end,isExpanded:!!i.isExpanded,old:o})}}}),n}function n7(){zM({adjustBreakLabelPair:e7,buildAxisBreakLine:$5,rectCoordBuildBreakAxis:Q5,updateModelAxisBreak:t7})}function r7(e){YM(e),q5(),n7()}function i7(){VF(a7)}function a7(e,t){L(e,function(e){if(!e.model.get([`axisLabel`,`inside`])){var n=o7(e);if(n){var r=e.isHorizontal()?`height`:`width`,i=e.model.get([`axisLabel`,`margin`]);t[r]-=n[r]+i,e.position===`top`?t.y+=n.height+i:e.position===`left`&&(t.x+=n.width+i)}}})}function o7(e){var t=e.model,n=e.scale;if(!t.get([`axisLabel`,`show`])||n.isBlank())return;var r,i,a=n.getExtent();n instanceof rE?i=n.count():(r=n.getTicks(),i=r.length);var o=e.getLabelModel(),s=NE(e),c,l=1;i>40&&(l=Math.ceil(i/40));for(var u=0;u(i(),l(`div`,s7,[s(`div`,c7,r(e.label),1),s(`div`,l7,r(e.value),1)]))}}),d7={class:`page`},f7={class:`stat-grid`},p7={class:`content-grid content-grid--2-1`},m7=o({__name:`DashboardView`,setup(a){let o=d({upload_rate:0,download_rate:0,connections:0,total_nodes:0,alive_nodes:0}),g=d([]),_=d(!1),v=d(),y=null,b;function x(e){return e<1024?`${e} B/s`:e<1024*1024?`${(e/1024).toFixed(1)} KB/s`:`${(e/1024/1024).toFixed(1)} MB/s`}async function S(){let{data:e}=await u.get(`/dashboard`);o.value=e.snapshot,_.value=e.engine_running;let t=(e.history||[]).reverse();y&&t.length&&y.setOption({grid:{left:40,right:16,top:16,bottom:24},xAxis:{type:`category`,data:t.map(e=>e.created_at?.slice(11,19)||``)},yAxis:{type:`value`},series:[{name:`下行`,type:`line`,smooth:!0,data:t.map(e=>e.download_rate),color:`#0f7a62`},{name:`上行`,type:`line`,smooth:!0,data:t.map(e=>e.upload_rate),color:`#71717a`}],tooltip:{trigger:`axis`}}),g.value=(await u.get(`/connections`)).data.connections||[]}return e(()=>{v.value&&(y=hw(v.value)),S(),b=window.setInterval(S,5e3)}),n(()=>{clearInterval(b),y?.dispose()}),(e,n)=>{let a=t(`el-tag`),u=t(`el-table-column`),d=t(`el-table`);return i(),l(`div`,d7,[p(m,{title:`监控大盘`,description:`实时流量、连接与节点健康概览`},{actions:c(()=>[p(a,{type:_.value?`success`:`danger`,size:`small`},{default:c(()=>[f(r(_.value?`内核运行中`:`内核未运行`),1)]),_:1},8,[`type`])]),_:1}),s(`div`,f7,[p(u7,{label:`总节点`,value:o.value.total_nodes},null,8,[`value`]),p(u7,{label:`可用节点`,value:o.value.alive_nodes},null,8,[`value`]),p(u7,{label:`活跃连接`,value:o.value.connections},null,8,[`value`]),p(u7,{label:`下行速率`,value:x(o.value.download_rate)},null,8,[`value`])]),s(`div`,p7,[p(h,{title:`活跃连接`},{default:c(()=>[p(d,{data:g.value.slice(0,20),size:`small`,"empty-text":`暂无连接`},{default:c(()=>[p(u,{prop:`metadata.host`,label:`目标`,"min-width":`160`},{default:c(({row:e})=>[f(r(e.metadata?.host||e.metadata?.destinationIP||`-`),1)]),_:1}),p(u,{prop:`rule`,label:`规则`,width:`120`}),p(u,{label:`代理`,width:`140`},{default:c(({row:e})=>[f(r(e.chains?.join(` → `)||`-`),1)]),_:1})]),_:1},8,[`data`])]),_:1}),p(h,{title:`流量趋势`,padded:``},{default:c(()=>[s(`div`,{ref_key:`chartRef`,ref:v,style:{height:`280px`}},null,512)]),_:1})])])}}});export{m7 as default}; \ No newline at end of file diff --git a/internal/api/static/assets/LoginView-CogloP1s.js b/internal/api/static/assets/LoginView-CogloP1s.js new file mode 100644 index 0000000..ec4f6f0 --- /dev/null +++ b/internal/api/static/assets/LoginView-CogloP1s.js @@ -0,0 +1 @@ +import{H as e,R as t,_ as n,b as r,d as i,et as a,m as o,ut as s,v as c,y as l}from"./client-CiT_nDm8.js";import{i as u,n as d,o as f,t as p}from"./index-B4K9RppJ.js";var m={class:`login-page`},h={class:`login-wrap`},g={class:`login-card`},_=r({__name:`LoginView`,setup(r){let _=d(),v=p(),y=s(``),b=s(!1);async function x(){b.value=!0;try{await v.login(y.value),_.push(`/`)}catch{u.error(`密码错误`)}finally{b.value=!1}}return(r,s)=>{let u=e(`el-input`),d=e(`el-form-item`),p=e(`el-button`),_=e(`el-form`);return t(),o(`div`,m,[i(`div`,h,[s[4]||=n(`

Prism

HTTP / SOCKS5 代理网关管理台

`,3),i(`div`,g,[s[2]||=i(`h3`,{class:`app-card__title`,style:{"margin-bottom":`24px`}},`登录`,-1),l(_,{size:`large`,onSubmit:f(x,[`prevent`])},{default:a(()=>[l(d,{label:`密码`},{default:a(()=>[l(u,{modelValue:y.value,"onUpdate:modelValue":s[0]||=e=>y.value=e,type:`password`,"show-password":``,placeholder:`默认 admin`},null,8,[`modelValue`])]),_:1}),l(p,{type:`primary`,"native-type":`submit`,loading:b.value,style:{width:`100%`}},{default:a(()=>[...s[1]||=[c(` 登录 `,-1)]]),_:1},8,[`loading`])]),_:1}),s[3]||=i(`p`,{class:`form-hint`,style:{"margin-top":`16px`,"text-align":`center`}},` 首次使用默认密码为 admin,请在设置中修改 `,-1)])])])}}});export{_ as default}; \ No newline at end of file diff --git a/internal/api/static/assets/LogsView-SE35ruFF.js b/internal/api/static/assets/LogsView-SE35ruFF.js new file mode 100644 index 0000000..b975eb9 --- /dev/null +++ b/internal/api/static/assets/LogsView-SE35ruFF.js @@ -0,0 +1 @@ +import{F as e,H as t,R as n,U as r,b as i,d as a,et as o,f as s,m as c,p as l,t as u,tt as d,ut as f,v as p,y as m}from"./client-CiT_nDm8.js";import{a as h}from"./index-B4K9RppJ.js";import{n as g,t as _}from"./AppCard-ClnBgZ-s.js";var v={class:`page`},y={class:`tabs-bar`},b={key:0,class:`card-toolbar`},x={key:2,class:`card-pager`},S=50,C=i({__name:`LogsView`,setup(i){let C=f([]),w=f([]),T=f(0),E=f(!1),D=f(``),O=f(``),k=f(1),A=f(`runtime`);async function j(){E.value=!0;try{if(A.value===`audit`){let{data:e}=await u.get(`/audit-logs`);w.value=e.items||[];return}let{data:e}=await u.get(`/logs`,{params:{level:D.value,keyword:O.value,limit:S,offset:(k.value-1)*S}});C.value=e.items||[],T.value=e.total||0}finally{E.value=!1}}return e(j),(e,i)=>{let u=t(`el-tab-pane`),f=t(`el-tabs`),M=t(`el-option`),N=t(`el-select`),P=t(`el-input`),F=t(`el-button`),I=t(`el-table-column`),L=t(`el-table`),R=t(`el-pagination`),z=r(`loading`);return n(),c(`div`,v,[m(g,{title:`运行日志`,description:`Prism 与代理内核运行日志`}),m(_,null,{default:o(()=>[a(`div`,y,[m(f,{modelValue:A.value,"onUpdate:modelValue":i[0]||=e=>A.value=e,onTabChange:j},{default:o(()=>[m(u,{label:`运行日志`,name:`runtime`}),m(u,{label:`审计日志`,name:`audit`})]),_:1},8,[`modelValue`])]),A.value===`runtime`?(n(),c(`div`,b,[m(N,{modelValue:D.value,"onUpdate:modelValue":i[1]||=e=>D.value=e,placeholder:`级别`,clearable:``,style:{width:`120px`},onChange:j},{default:o(()=>[m(M,{label:`info`,value:`info`}),m(M,{label:`warn`,value:`warn`}),m(M,{label:`error`,value:`error`})]),_:1},8,[`modelValue`]),m(P,{modelValue:O.value,"onUpdate:modelValue":i[2]||=e=>O.value=e,placeholder:`搜索关键词`,clearable:``,style:{width:`200px`},onKeyup:h(j,[`enter`])},null,8,[`modelValue`]),m(F,{onClick:j},{default:o(()=>[...i[4]||=[p(`刷新`,-1)]]),_:1})])):l(``,!0),A.value===`runtime`?d((n(),s(L,{key:1,data:C.value,size:`small`},{default:o(()=>[m(I,{prop:`created_at`,label:`时间`,width:`170`}),m(I,{prop:`level`,label:`级别`,width:`80`}),m(I,{prop:`source`,label:`来源`,width:`100`}),m(I,{prop:`message`,label:`消息`,"min-width":`300`,"show-overflow-tooltip":``})]),_:1},8,[`data`])),[[z,E.value]]):l(``,!0),A.value===`runtime`?(n(),c(`div`,x,[m(R,{"current-page":k.value,"onUpdate:currentPage":i[3]||=e=>k.value=e,"page-size":S,total:T.value,layout:`total, prev, pager, next`,onCurrentChange:j},null,8,[`current-page`,`total`])])):d((n(),s(L,{key:3,data:w.value,size:`small`},{default:o(()=>[m(I,{prop:`created_at`,label:`时间`,width:`170`}),m(I,{prop:`action`,label:`操作`,width:`100`}),m(I,{prop:`resource`,label:`资源`,width:`120`}),m(I,{prop:`detail`,label:`详情`,"min-width":`200`,"show-overflow-tooltip":``})]),_:1},8,[`data`])),[[z,E.value]])]),_:1})])}}});export{C as default}; \ No newline at end of file diff --git a/internal/api/static/assets/ProxiesView-CGCYPjQ-.js b/internal/api/static/assets/ProxiesView-CGCYPjQ-.js new file mode 100644 index 0000000..e304e05 --- /dev/null +++ b/internal/api/static/assets/ProxiesView-CGCYPjQ-.js @@ -0,0 +1 @@ +import{F as e,H as t,Kt as n,R as r,U as i,Ut as a,b as o,d as s,et as c,f as l,m as u,t as d,tt as f,u as p,ut as m,v as h,y as g}from"./client-CiT_nDm8.js";import{i as _}from"./index-B4K9RppJ.js";import{n as v,t as y}from"./AppCard-ClnBgZ-s.js";var b={class:`page`},x={class:`tabs-bar`},S=o({__name:`ProxiesView`,setup(o){let S=m([]),C=m(!1),w=m(`all`),T=m(!1),E=m(!1),D=m({name:``,type:`socks5`,server:``,port:1080,username:``,password:``}),O=p(()=>w.value===`manual`?S.value.filter(e=>e.source===`manual`):w.value===`subscription`?S.value.filter(e=>e.source===`subscription`):S.value);function k(e){return e<0?`latency-dead`:e<200?`latency-good`:e<500?`latency-warn`:`latency-bad`}async function A(){C.value=!0;try{let{data:e}=await d.get(`/proxies`);S.value=e.items||[]}finally{C.value=!1}}async function j(e){let{data:t}=await d.post(`/proxies/${e.id}/test`);e.latency_ms=t.latency_ms,e.alive=t.alive}async function M(){T.value=!0;try{await d.post(`/proxies/test-all`),_.success(`测速完成`),A()}finally{T.value=!1}}function N(){D.value={name:``,type:`socks5`,server:``,port:1080,username:``,password:``},E.value=!0}async function P(){let e={type:D.value.type,server:D.value.server,port:D.value.port,...D.value.username?{username:D.value.username,password:D.value.password}:{}};await d.post(`/proxies`,{name:D.value.name,type:D.value.type,raw_config:JSON.stringify(e)}),_.success(`节点已添加`),E.value=!1,A()}return e(A),(e,o)=>{let d=t(`el-button`),p=t(`el-tab-pane`),m=t(`el-tabs`),_=t(`el-table-column`),S=t(`el-tag`),A=t(`el-table`),F=t(`el-input`),I=t(`el-form-item`),L=t(`el-option`),R=t(`el-select`),z=t(`el-input-number`),B=t(`el-form`),V=t(`el-dialog`),H=i(`loading`);return r(),u(`div`,b,[g(v,{title:`代理节点`,description:`查看节点状态与延迟,支持手动添加节点`},{actions:c(()=>[g(d,{onClick:N},{default:c(()=>[...o[9]||=[h(`添加节点`,-1)]]),_:1}),g(d,{loading:T.value,onClick:M},{default:c(()=>[...o[10]||=[h(`全部测速`,-1)]]),_:1},8,[`loading`])]),_:1}),g(y,null,{default:c(()=>[s(`div`,x,[g(m,{modelValue:w.value,"onUpdate:modelValue":o[0]||=e=>w.value=e},{default:c(()=>[g(p,{label:`全部`,name:`all`}),g(p,{label:`订阅`,name:`subscription`}),g(p,{label:`手动`,name:`manual`})]),_:1},8,[`modelValue`])]),f((r(),l(A,{data:O.value,size:`small`},{default:c(()=>[g(_,{prop:`name`,label:`名称`,"min-width":`140`}),g(_,{prop:`type`,label:`类型`,width:`90`}),g(_,{prop:`source`,label:`来源`,width:`90`}),g(_,{label:`延迟`,width:`100`},{default:c(({row:e})=>[s(`span`,{class:a(k(e.latency_ms))},n(e.latency_ms>=0?`${e.latency_ms} ms`:`未测`),3)]),_:1}),g(_,{label:`状态`,width:`80`},{default:c(({row:e})=>[g(S,{type:e.alive?`success`:`info`,size:`small`},{default:c(()=>[h(n(e.alive?`可用`:`未知`),1)]),_:2},1032,[`type`])]),_:1}),g(_,{label:`操作`,width:`80`,fixed:`right`},{default:c(({row:e})=>[g(d,{size:`small`,link:``,onClick:t=>j(e)},{default:c(()=>[...o[11]||=[h(`测速`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[H,C.value]])]),_:1}),g(V,{modelValue:E.value,"onUpdate:modelValue":o[8]||=e=>E.value=e,title:`添加手动节点`,width:`520px`,"destroy-on-close":``},{footer:c(()=>[g(d,{onClick:o[7]||=e=>E.value=!1},{default:c(()=>[...o[12]||=[h(`取消`,-1)]]),_:1}),g(d,{type:`primary`,onClick:P},{default:c(()=>[...o[13]||=[h(`确认`,-1)]]),_:1})]),default:c(()=>[g(B,{"label-width":`100px`},{default:c(()=>[g(I,{label:`名称`},{default:c(()=>[g(F,{modelValue:D.value.name,"onUpdate:modelValue":o[1]||=e=>D.value.name=e},null,8,[`modelValue`])]),_:1}),g(I,{label:`类型`},{default:c(()=>[g(R,{modelValue:D.value.type,"onUpdate:modelValue":o[2]||=e=>D.value.type=e,style:{width:`100%`}},{default:c(()=>[g(L,{label:`SOCKS5`,value:`socks5`}),g(L,{label:`HTTP`,value:`http`})]),_:1},8,[`modelValue`])]),_:1}),g(I,{label:`服务器`},{default:c(()=>[g(F,{modelValue:D.value.server,"onUpdate:modelValue":o[3]||=e=>D.value.server=e},null,8,[`modelValue`])]),_:1}),g(I,{label:`端口`},{default:c(()=>[g(z,{modelValue:D.value.port,"onUpdate:modelValue":o[4]||=e=>D.value.port=e,min:1,max:65535},null,8,[`modelValue`])]),_:1}),g(I,{label:`用户名`},{default:c(()=>[g(F,{modelValue:D.value.username,"onUpdate:modelValue":o[5]||=e=>D.value.username=e},null,8,[`modelValue`])]),_:1}),g(I,{label:`密码`},{default:c(()=>[g(F,{modelValue:D.value.password,"onUpdate:modelValue":o[6]||=e=>D.value.password=e,type:`password`,"show-password":``},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}});export{S as default}; \ No newline at end of file diff --git a/internal/api/static/assets/RulesView-4vpiUKI8.js b/internal/api/static/assets/RulesView-4vpiUKI8.js new file mode 100644 index 0000000..72d94d0 --- /dev/null +++ b/internal/api/static/assets/RulesView-4vpiUKI8.js @@ -0,0 +1 @@ +import{F as e,H as t,R as n,U as r,b as i,d as a,et as o,f as s,m as c,t as l,tt as u,ut as d,v as f,y as p}from"./client-CiT_nDm8.js";import{i as m,r as h}from"./index-B4K9RppJ.js";import{n as g,t as _}from"./AppCard-ClnBgZ-s.js";var v={class:`page`},y={class:`content-grid content-grid--2`},b=i({__name:`RulesView`,setup(i){let b=d([]),x=d([]),S=d(!1),C=d(!1),w=d({rule_type:`DOMAIN-SUFFIX`,payload:``,target:`PROXY`,priority:100});async function T(){S.value=!0;try{let[e,t]=await Promise.all([l.get(`/rules?source=manual`),l.get(`/rules/merged`)]);b.value=e.data.items||[],x.value=t.data.items||[]}finally{S.value=!1}}function E(){w.value={rule_type:`DOMAIN-SUFFIX`,payload:``,target:`PROXY`,priority:100},C.value=!0}async function D(){await l.post(`/rules`,w.value),m.success(`规则已添加`),C.value=!1,T()}async function O(e){await h.confirm(`确定删除该规则?`,`确认`),await l.delete(`/rules/${e.id}`),T()}return e(T),(e,i)=>{let l=t(`el-button`),d=t(`el-table-column`),m=t(`el-table`),h=t(`el-option`),T=t(`el-select`),k=t(`el-form-item`),A=t(`el-input`),j=t(`el-input-number`),M=t(`el-form`),N=t(`el-dialog`),P=r(`loading`);return n(),c(`div`,v,[p(g,{title:`路由规则`,description:`手动规则优先级高于订阅规则,自上而下首条命中`},{actions:o(()=>[p(l,{type:`primary`,onClick:E},{default:o(()=>[...i[6]||=[f(`添加规则`,-1)]]),_:1})]),_:1}),a(`div`,y,[p(_,{title:`手动规则(高优先级)`},{default:o(()=>[u((n(),s(m,{data:b.value,size:`small`},{default:o(()=>[p(d,{prop:`priority`,label:`优先级`,width:`80`}),p(d,{prop:`rule_type`,label:`类型`,width:`120`}),p(d,{prop:`payload`,label:`匹配`,"min-width":`120`}),p(d,{prop:`target`,label:`目标`,width:`100`}),p(d,{label:`操作`,width:`80`,fixed:`right`},{default:o(({row:e})=>[p(l,{size:`small`,type:`danger`,link:``,onClick:t=>O(e)},{default:o(()=>[...i[7]||=[f(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[P,S.value]])]),_:1}),p(_,{title:`合成后规则预览`},{default:o(()=>[p(m,{data:x.value,size:`small`,"max-height":`400`},{default:o(()=>[p(d,{prop:`priority`,label:`序`,width:`70`}),p(d,{prop:`rule`,label:`规则`,"min-width":`200`}),p(d,{prop:`source`,label:`来源`,width:`90`})]),_:1},8,[`data`])]),_:1})]),p(N,{modelValue:C.value,"onUpdate:modelValue":i[5]||=e=>C.value=e,title:`添加规则`,width:`520px`,"destroy-on-close":``},{footer:o(()=>[p(l,{onClick:i[4]||=e=>C.value=!1},{default:o(()=>[...i[9]||=[f(`取消`,-1)]]),_:1}),p(l,{type:`primary`,onClick:D},{default:o(()=>[...i[10]||=[f(`确认`,-1)]]),_:1})]),default:o(()=>[p(M,{"label-width":`100px`},{default:o(()=>[p(k,{label:`类型`},{default:o(()=>[p(T,{modelValue:w.value.rule_type,"onUpdate:modelValue":i[0]||=e=>w.value.rule_type=e,style:{width:`100%`}},{default:o(()=>[p(h,{label:`DOMAIN`,value:`DOMAIN`}),p(h,{label:`DOMAIN-SUFFIX`,value:`DOMAIN-SUFFIX`}),p(h,{label:`DOMAIN-KEYWORD`,value:`DOMAIN-KEYWORD`}),p(h,{label:`IP-CIDR`,value:`IP-CIDR`}),p(h,{label:`GEOIP`,value:`GEOIP`})]),_:1},8,[`modelValue`])]),_:1}),p(k,{label:`匹配值`},{default:o(()=>[p(A,{modelValue:w.value.payload,"onUpdate:modelValue":i[1]||=e=>w.value.payload=e},null,8,[`modelValue`])]),_:1}),p(k,{label:`目标`},{default:o(()=>[p(A,{modelValue:w.value.target,"onUpdate:modelValue":i[2]||=e=>w.value.target=e,placeholder:`PROXY / DIRECT / REJECT`},null,8,[`modelValue`])]),_:1}),p(k,{label:`优先级`},{default:o(()=>[p(j,{modelValue:w.value.priority,"onUpdate:modelValue":i[3]||=e=>w.value.priority=e,min:1,max:9999},null,8,[`modelValue`]),i[8]||=a(`p`,{class:`form-hint`},`数值越小优先级越高`,-1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}});export{b as default}; \ No newline at end of file diff --git a/internal/api/static/assets/SettingsView-D_MdXCJL.js b/internal/api/static/assets/SettingsView-D_MdXCJL.js new file mode 100644 index 0000000..f5c7ce5 --- /dev/null +++ b/internal/api/static/assets/SettingsView-D_MdXCJL.js @@ -0,0 +1 @@ +import{F as e,H as t,R as n,U as r,b as i,d as a,et as o,f as s,m as c,t as l,tt as u,ut as d,v as f,y as p}from"./client-CiT_nDm8.js";import{i as m}from"./index-B4K9RppJ.js";import{n as h,t as g}from"./AppCard-ClnBgZ-s.js";var _={class:`page`},v=i({__name:`SettingsView`,setup(i){let v=d({}),y=d(!1),b=d(!1);async function x(){y.value=!0;try{let{data:e}=await l.get(`/settings`);v.value=e}finally{y.value=!1}}async function S(){b.value=!0;try{await l.put(`/settings`,v.value),m.success(`设置已保存`)}finally{b.value=!1}}async function C(){await l.post(`/system/reload`),m.success(`内核已重载`)}return e(x),(e,i)=>{let l=t(`el-button`),d=t(`el-input`),m=t(`el-form-item`),x=t(`el-option`),w=t(`el-select`),T=t(`el-switch`),E=t(`el-form`),D=r(`loading`);return n(),c(`div`,_,[p(h,{title:`系统设置`,description:`代理端口、调度间隔与安全配置`},{actions:o(()=>[p(l,{onClick:C},{default:o(()=>[...i[10]||=[f(`重载内核`,-1)]]),_:1}),p(l,{type:`primary`,loading:b.value,onClick:S},{default:o(()=>[...i[11]||=[f(`保存`,-1)]]),_:1},8,[`loading`])]),_:1}),u((n(),s(g,{title:`入站与 API`,padded:``},{default:o(()=>[p(E,{"label-width":`120px`},{default:o(()=>[i[14]||=a(`div`,{class:`section-title`},`代理入站`,-1),p(m,{label:`HTTP 端口`},{default:o(()=>[p(d,{modelValue:v.value.http_port,"onUpdate:modelValue":i[0]||=e=>v.value.http_port=e},null,8,[`modelValue`])]),_:1}),p(m,{label:`SOCKS5 端口`},{default:o(()=>[p(d,{modelValue:v.value.socks_port,"onUpdate:modelValue":i[1]||=e=>v.value.socks_port=e},null,8,[`modelValue`])]),_:1}),i[15]||=a(`div`,{class:`section-title`},`管理 API`,-1),p(m,{label:`API 端口`},{default:o(()=>[p(d,{modelValue:v.value.api_port,"onUpdate:modelValue":i[2]||=e=>v.value.api_port=e},null,8,[`modelValue`]),i[12]||=a(`p`,{class:`form-hint`},`修改后需重启进程生效`,-1)]),_:1}),p(m,{label:`Mihomo API`},{default:o(()=>[p(d,{modelValue:v.value.mihomo_api_port,"onUpdate:modelValue":i[3]||=e=>v.value.mihomo_api_port=e},null,8,[`modelValue`])]),_:1}),p(m,{label:`API Secret`},{default:o(()=>[p(d,{modelValue:v.value.api_secret,"onUpdate:modelValue":i[4]||=e=>v.value.api_secret=e,placeholder:`Clash API 密钥`},null,8,[`modelValue`])]),_:1}),i[16]||=a(`div`,{class:`section-title`},`调度`,-1),p(m,{label:`健康检查间隔`},{default:o(()=>[p(d,{modelValue:v.value.health_interval_sec,"onUpdate:modelValue":i[5]||=e=>v.value.health_interval_sec=e},null,8,[`modelValue`]),i[13]||=a(`p`,{class:`form-hint`},`秒`,-1)]),_:1}),p(m,{label:`默认策略`},{default:o(()=>[p(w,{modelValue:v.value.default_policy,"onUpdate:modelValue":i[6]||=e=>v.value.default_policy=e,style:{width:`100%`}},{default:o(()=>[p(x,{label:`DIRECT`,value:`DIRECT`}),p(x,{label:`PROXY`,value:`PROXY`}),p(x,{label:`REJECT`,value:`REJECT`})]),_:1},8,[`modelValue`])]),_:1}),p(m,{label:`日志级别`},{default:o(()=>[p(w,{modelValue:v.value.log_level,"onUpdate:modelValue":i[7]||=e=>v.value.log_level=e,style:{width:`100%`}},{default:o(()=>[p(x,{label:`info`,value:`info`}),p(x,{label:`warning`,value:`warning`}),p(x,{label:`error`,value:`error`}),p(x,{label:`debug`,value:`debug`})]),_:1},8,[`modelValue`])]),_:1}),i[17]||=a(`div`,{class:`section-title`},`安全`,-1),p(m,{label:`启用登录`},{default:o(()=>[p(T,{modelValue:v.value.auth_enabled,"onUpdate:modelValue":i[8]||=e=>v.value.auth_enabled=e,"active-value":`true`,"inactive-value":`false`},null,8,[`modelValue`])]),_:1}),p(m,{label:`新密码`},{default:o(()=>[p(d,{modelValue:v.value.admin_password,"onUpdate:modelValue":i[9]||=e=>v.value.admin_password=e,type:`password`,"show-password":``,placeholder:`留空则不修改`},null,8,[`modelValue`])]),_:1})]),_:1})]),_:1})),[[D,y.value]])])}}});export{v as default}; \ No newline at end of file diff --git a/internal/api/static/assets/SubscriptionsView-BwdRKwvh.js b/internal/api/static/assets/SubscriptionsView-BwdRKwvh.js new file mode 100644 index 0000000..c4c1c73 --- /dev/null +++ b/internal/api/static/assets/SubscriptionsView-BwdRKwvh.js @@ -0,0 +1 @@ +import{F as e,H as t,Kt as n,R as r,U as i,b as a,d as o,et as s,f as c,m as l,t as u,tt as d,ut as f,v as p,y as m}from"./client-CiT_nDm8.js";import{i as h,r as g}from"./index-B4K9RppJ.js";import{n as _,t as v}from"./AppCard-ClnBgZ-s.js";var y={class:`page`},b=a({__name:`SubscriptionsView`,setup(a){let b=f([]),x=f(!1),S=f(!1),C=f({name:``,url:``,type:`clash`,interval_sec:3600});async function w(){x.value=!0;try{let{data:e}=await u.get(`/subscriptions`);b.value=e.items||[]}finally{x.value=!1}}function T(){C.value={name:``,url:``,type:`clash`,interval_sec:3600},S.value=!0}async function E(){await u.post(`/subscriptions`,C.value),h.success(`已添加订阅`),S.value=!1,w()}async function D(e){await u.post(`/subscriptions/${e.id}/refresh`),h.success(`刷新成功`),w()}async function O(e){await g.confirm(`确定删除订阅「${e.name}」?`,`确认`),await u.delete(`/subscriptions/${e.id}`),h.success(`已删除`),w()}return e(w),(e,a)=>{let u=t(`el-button`),f=t(`el-table-column`),h=t(`el-tag`),g=t(`el-table`),w=t(`el-input`),k=t(`el-form-item`),A=t(`el-option`),j=t(`el-select`),M=t(`el-input-number`),N=t(`el-form`),P=t(`el-dialog`),F=i(`loading`);return r(),l(`div`,y,[m(_,{title:`订阅管理`,description:`添加并定时更新 Clash 或节点链接订阅`},{actions:s(()=>[m(u,{type:`primary`,onClick:T},{default:s(()=>[...a[6]||=[p(`添加订阅`,-1)]]),_:1})]),_:1}),m(v,null,{default:s(()=>[d((r(),c(g,{data:b.value,size:`small`},{default:s(()=>[m(f,{prop:`name`,label:`名称`,"min-width":`120`}),m(f,{prop:`type`,label:`类型`,width:`80`}),m(f,{prop:`url`,label:`URL`,"min-width":`200`,"show-overflow-tooltip":``}),m(f,{prop:`node_count`,label:`节点数`,width:`80`}),m(f,{label:`状态`,width:`100`},{default:s(({row:e})=>[m(h,{type:e.last_error?`danger`:`success`,size:`small`},{default:s(()=>[p(n(e.last_error?`异常`:`正常`),1)]),_:2},1032,[`type`])]),_:1}),m(f,{prop:`last_fetch_at`,label:`上次更新`,width:`160`}),m(f,{label:`操作`,width:`160`,fixed:`right`},{default:s(({row:e})=>[m(u,{size:`small`,link:``,onClick:t=>D(e)},{default:s(()=>[...a[7]||=[p(`刷新`,-1)]]),_:1},8,[`onClick`]),m(u,{size:`small`,type:`danger`,link:``,onClick:t=>O(e)},{default:s(()=>[...a[8]||=[p(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1},8,[`data`])),[[F,x.value]])]),_:1}),m(P,{modelValue:S.value,"onUpdate:modelValue":a[5]||=e=>S.value=e,title:`添加订阅`,width:`520px`,"destroy-on-close":``},{footer:s(()=>[m(u,{onClick:a[4]||=e=>S.value=!1},{default:s(()=>[...a[10]||=[p(`取消`,-1)]]),_:1}),m(u,{type:`primary`,onClick:E},{default:s(()=>[...a[11]||=[p(`确认`,-1)]]),_:1})]),default:s(()=>[m(N,{"label-width":`100px`},{default:s(()=>[m(k,{label:`名称`},{default:s(()=>[m(w,{modelValue:C.value.name,"onUpdate:modelValue":a[0]||=e=>C.value.name=e},null,8,[`modelValue`])]),_:1}),m(k,{label:`URL`},{default:s(()=>[m(w,{modelValue:C.value.url,"onUpdate:modelValue":a[1]||=e=>C.value.url=e},null,8,[`modelValue`])]),_:1}),m(k,{label:`类型`},{default:s(()=>[m(j,{modelValue:C.value.type,"onUpdate:modelValue":a[2]||=e=>C.value.type=e,style:{width:`100%`}},{default:s(()=>[m(A,{label:`Clash YAML`,value:`clash`}),m(A,{label:`节点链接`,value:`links`})]),_:1},8,[`modelValue`])]),_:1}),m(k,{label:`更新间隔`},{default:s(()=>[m(M,{modelValue:C.value.interval_sec,"onUpdate:modelValue":a[3]||=e=>C.value.interval_sec=e,min:300,step:300},null,8,[`modelValue`]),a[9]||=o(`p`,{class:`form-hint`},`秒,最小 300`,-1)]),_:1})]),_:1})]),_:1},8,[`modelValue`])])}}});export{b as default}; \ No newline at end of file diff --git a/internal/api/static/assets/client-CiT_nDm8.js b/internal/api/static/assets/client-CiT_nDm8.js new file mode 100644 index 0000000..7510fe0 --- /dev/null +++ b/internal/api/static/assets/client-CiT_nDm8.js @@ -0,0 +1,9 @@ +var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;li[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));function u(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var d={},f=[],p=()=>{},m=()=>!1,h=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),g=e=>e.startsWith(`onUpdate:`),_=Object.assign,v=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},y=Object.prototype.hasOwnProperty,b=(e,t)=>y.call(e,t),x=Array.isArray,S=e=>A(e)===`[object Map]`,C=e=>A(e)===`[object Set]`,w=e=>A(e)===`[object Date]`,T=e=>typeof e==`function`,E=e=>typeof e==`string`,D=e=>typeof e==`symbol`,O=e=>typeof e==`object`&&!!e,ee=e=>(O(e)||T(e))&&T(e.then)&&T(e.catch),k=Object.prototype.toString,A=e=>k.call(e),te=e=>A(e).slice(8,-1),ne=e=>A(e)===`[object Object]`,re=e=>E(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,j=u(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),ie=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ae=/-\w/g,M=ie(e=>e.replace(ae,e=>e.slice(1).toUpperCase())),oe=/\B([A-Z])/g,se=ie(e=>e.replace(oe,`-$1`).toLowerCase()),N=ie(e=>e.charAt(0).toUpperCase()+e.slice(1)),ce=ie(e=>e?`on${N(e)}`:``),le=(e,t)=>!Object.is(e,t),ue=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},fe=e=>{let t=parseFloat(e);return isNaN(t)?e:t},pe=e=>{let t=E(e)?Number(e):NaN;return isNaN(t)?e:t},me,he=()=>me||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function ge(e){if(x(e)){let t={};for(let n=0;n{if(e){let n=e.split(ve);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function xe(e){let t=``;if(E(e))t=e;else if(x(e))for(let n=0;nDe(e,t))}var ke=e=>!!(e&&e.__v_isRef===!0),Ae=e=>E(e)?e:e==null?``:x(e)||O(e)&&(e.toString===k||!T(e.toString))?ke(e)?Ae(e.value):JSON.stringify(e,je,2):String(e),je=(e,t)=>ke(t)?je(e,t.value):S(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Me(t,r)+` =>`]=n,e),{})}:C(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Me(e))}:D(t)?Me(t):O(t)&&!x(t)&&!ne(t)?String(t):t,Me=(e,t=``)=>D(e)?`Symbol(${e.description??t})`:e,P,Ne=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&&P&&(P.active?(this.parent=P,this.index=(P.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(P===this)P=this.prevScope;else{let e=P;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(Ve){let e=Ve;for(Ve=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Be;){let t=Be;for(Be=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 Ge(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Ke(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ye(r),Xe(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function qe(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Je(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Je(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===nt)||(e.globalVersion=nt,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!qe(e))))return;e.flags|=2;let t=e.dep,n=F,r=Ze;F=e,Ze=!0;try{Ge(e);let n=e.fn(e._value);(t.version===0||le(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{F=n,Ze=r,Ke(e),e.flags&=-3}}function Ye(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)Ye(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Xe(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var Ze=!0,Qe=[];function $e(){Qe.push(Ze),Ze=!1}function et(){let e=Qe.pop();Ze=e===void 0?!0:e}function tt(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=F;F=void 0;try{t()}finally{F=e}}}var nt=0,rt=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}},it=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(!F||!Ze||F===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==F)t=this.activeLink=new rt(F,this),F.deps?(t.prevDep=F.depsTail,F.depsTail.nextDep=t,F.depsTail=t):F.deps=F.depsTail=t,at(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=F.depsTail,t.nextDep=void 0,F.depsTail.nextDep=t,F.depsTail=t,F.deps===t&&(F.deps=e)}return t}trigger(e){this.version++,nt++,this.notify(e)}notify(e){Ue();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{We()}}};function at(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)at(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var ot=new WeakMap,st=Symbol(``),ct=Symbol(``),lt=Symbol(``);function I(e,t,n){if(Ze&&F){let t=ot.get(e);t||ot.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new it),r.map=t,r.key=n),r.track()}}function ut(e,t,n,r,i,a){let o=ot.get(e);if(!o){nt++;return}let s=e=>{e&&e.trigger()};if(Ue(),t===`clear`)o.forEach(s);else{let i=x(e),a=i&&re(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===lt||!D(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(lt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(st)),S(e)&&s(o.get(ct)));break;case`delete`:i||(s(o.get(st)),S(e)&&s(o.get(ct)));break;case`set`:S(e)&&s(o.get(st));break}}We()}function dt(e,t){let n=ot.get(e);return n&&n.get(t)}function ft(e){let t=L(e);return t===e?t:(I(t,`iterate`,lt),en(e)?t:t.map(rn))}function pt(e){return I(e=L(e),`iterate`,lt),e}function mt(e,t){return $t(e)?an(Qt(e)?rn(t):t):rn(t)}var ht={__proto__:null,[Symbol.iterator](){return gt(this,Symbol.iterator,e=>mt(this,e))},concat(...e){return ft(this).concat(...e.map(e=>x(e)?ft(e):e))},entries(){return gt(this,`entries`,e=>(e[1]=mt(this,e[1]),e))},every(e,t){return vt(this,`every`,e,t,void 0,arguments)},filter(e,t){return vt(this,`filter`,e,t,e=>e.map(e=>mt(this,e)),arguments)},find(e,t){return vt(this,`find`,e,t,e=>mt(this,e),arguments)},findIndex(e,t){return vt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return vt(this,`findLast`,e,t,e=>mt(this,e),arguments)},findLastIndex(e,t){return vt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return vt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return bt(this,`includes`,e)},indexOf(...e){return bt(this,`indexOf`,e)},join(e){return ft(this).join(e)},lastIndexOf(...e){return bt(this,`lastIndexOf`,e)},map(e,t){return vt(this,`map`,e,t,void 0,arguments)},pop(){return xt(this,`pop`)},push(...e){return xt(this,`push`,e)},reduce(e,...t){return yt(this,`reduce`,e,t)},reduceRight(e,...t){return yt(this,`reduceRight`,e,t)},shift(){return xt(this,`shift`)},some(e,t){return vt(this,`some`,e,t,void 0,arguments)},splice(...e){return xt(this,`splice`,e)},toReversed(){return ft(this).toReversed()},toSorted(e){return ft(this).toSorted(e)},toSpliced(...e){return ft(this).toSpliced(...e)},unshift(...e){return xt(this,`unshift`,e)},values(){return gt(this,`values`,e=>mt(this,e))}};function gt(e,t,n){let r=pt(e),i=r[t]();return r!==e&&!en(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var _t=Array.prototype;function vt(e,t,n,r,i,a){let o=pt(e),s=o!==e&&!en(e),c=o[t];if(c!==_t[t]){let t=c.apply(e,a);return s?rn(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,mt(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 yt(e,t,n,r){let i=pt(e),a=i!==e&&!en(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=mt(e,t)),n.call(this,t,mt(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?mt(e,c):c}function bt(e,t,n){let r=L(e);I(r,`iterate`,lt);let i=r[t](...n);return(i===-1||i===!1)&&tn(n[0])?(n[0]=L(n[0]),r[t](...n)):i}function xt(e,t,n=[]){$e(),Ue();let r=L(e)[t].apply(e,n);return We(),et(),r}var St=u(`__proto__,__v_isRef,__isVue`),Ct=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(D));function wt(e){D(e)||(e=String(e));let t=L(this);return I(t,`has`,e),t.hasOwnProperty(e)}var Tt=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?Gt:Wt:i?Ut:Ht).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=x(e);if(!r){let e;if(a&&(e=ht[t]))return e;if(t===`hasOwnProperty`)return wt}let o=Reflect.get(e,t,R(e)?e:n);if((D(t)?Ct.has(t):St(t))||(r||I(e,`get`,t),i))return o;if(R(o)){let e=a&&re(t)?o:o.value;return r&&O(e)?Yt(e):e}return O(o)?r?Yt(o):qt(o):o}},Et=class extends Tt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=x(e)&&re(t);if(!this._isShallow){let e=$t(i);if(!en(n)&&!$t(n)&&(i=L(i),n=L(n)),!a&&R(i)&&!R(n))return e||(i.value=n),!0}let o=a?Number(t)e,Nt=e=>Reflect.getPrototypeOf(e);function Pt(e,t,n){return function(...r){let i=this.__v_raw,a=L(i),o=S(a),s=e===`entries`||e===Symbol.iterator&&o,c=e===`keys`&&o,l=i[e](...r),u=n?Mt:t?an:rn;return!t&&I(a,`iterate`,c?ct:st),_(Object.create(l),{next(){let{value:e,done:t}=l.next();return t?{value:e,done:t}:{value:s?[u(e[0]),u(e[1])]:u(e),done:t}}})}}function Ft(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function It(e,t){let n={get(n){let r=this.__v_raw,i=L(r),a=L(n);e||(le(n,a)&&I(i,`get`,n),I(i,`get`,a));let{has:o}=Nt(i),s=t?Mt:e?an:rn;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&&I(L(t),`iterate`,st),t.size},has(t){let n=this.__v_raw,r=L(n),i=L(t);return e||(le(t,i)&&I(r,`has`,t),I(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=L(a),s=t?Mt:e?an:rn;return!e&&I(o,`iterate`,st),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return _(n,e?{add:Ft(`add`),set:Ft(`set`),delete:Ft(`delete`),clear:Ft(`clear`)}:{add(e){let n=L(this),r=Nt(n),i=L(e),a=!t&&!en(e)&&!$t(e)?i:e;return r.has.call(n,a)||le(e,a)&&r.has.call(n,e)||le(i,a)&&r.has.call(n,i)||(n.add(a),ut(n,`add`,a,a)),this},set(e,n){!t&&!en(n)&&!$t(n)&&(n=L(n));let r=L(this),{has:i,get:a}=Nt(r),o=i.call(r,e);o||=(e=L(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?le(n,s)&&ut(r,`set`,e,n,s):ut(r,`add`,e,n),this},delete(e){let t=L(this),{has:n,get:r}=Nt(t),i=n.call(t,e);i||=(e=L(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&ut(t,`delete`,e,void 0,a),o},clear(){let e=L(this),t=e.size!==0,n=e.clear();return t&&ut(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Pt(r,e,t)}),n}function Lt(e,t){let n=It(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(b(n,r)&&r in t?n:t,r,i)}var Rt={get:Lt(!1,!1)},zt={get:Lt(!1,!0)},Bt={get:Lt(!0,!1)},Vt={get:Lt(!0,!0)},Ht=new WeakMap,Ut=new WeakMap,Wt=new WeakMap,Gt=new WeakMap;function Kt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function qt(e){return $t(e)?e:Zt(e,!1,Ot,Rt,Ht)}function Jt(e){return Zt(e,!1,At,zt,Ut)}function Yt(e){return Zt(e,!0,kt,Bt,Wt)}function Xt(e){return Zt(e,!0,jt,Vt,Gt)}function Zt(e,t,n,r,i){if(!O(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=Kt(te(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Qt(e){return $t(e)?Qt(e.__v_raw):!!(e&&e.__v_isReactive)}function $t(e){return!!(e&&e.__v_isReadonly)}function en(e){return!!(e&&e.__v_isShallow)}function tn(e){return e?!!e.__v_raw:!1}function L(e){let t=e&&e.__v_raw;return t?L(t):e}function nn(e){return!b(e,`__v_skip`)&&Object.isExtensible(e)&&de(e,`__v_skip`,!0),e}var rn=e=>O(e)?qt(e):e,an=e=>O(e)?Yt(e):e;function R(e){return e?e.__v_isRef===!0:!1}function on(e){return cn(e,!1)}function sn(e){return cn(e,!0)}function cn(e,t){return R(e)?e:new ln(e,t)}var ln=class{constructor(e,t){this.dep=new it,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:L(e),this._value=t?e:rn(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||en(e)||$t(e);e=n?e:L(e),le(e,t)&&(this._rawValue=e,this._value=n?e:rn(e),this.dep.trigger())}};function un(e){e.dep&&e.dep.trigger()}function dn(e){return R(e)?e.value:e}function fn(e){return T(e)?e():dn(e)}var pn={get:(e,t,n)=>t===`__v_raw`?e:dn(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return R(i)&&!R(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function mn(e){return Qt(e)?e:new Proxy(e,pn)}function hn(e){let t=x(e)?Array(e.length):{};for(let n in e)t[n]=yn(e,n);return t}var gn=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=D(t)?t:String(t),this._raw=L(e);let r=!0,i=e;if(!x(e)||D(this._key)||!re(this._key))do r=!tn(i)||en(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=dn(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&R(this._raw[this._key])){let t=this._object[this._key];if(R(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return dt(this._raw,this._key)}},_n=class{constructor(e){this._getter=e,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}};function vn(e,t,n){return R(e)?e:T(e)?new _n(e):O(e)&&arguments.length>1?yn(e,t,n):on(e)}function yn(e,t,n){return new gn(e,t,n)}var bn=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new it(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=nt-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&F!==this)return He(this,!0),!0}get value(){let e=this.dep.track();return Je(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function xn(e,t,n=!1){let r,i;return T(e)?r=e:(r=e.get,i=e.set),new bn(r,i,n)}var Sn={},Cn=new WeakMap,wn=void 0;function Tn(e,t=!1,n=wn){if(n){let t=Cn.get(n);t||Cn.set(n,t=[]),t.push(e)}}function En(e,t,n=d){let{immediate:r,deep:i,once:a,scheduler:o,augmentJob:s,call:c}=n,l=e=>i?e:en(e)||i===!1||i===0?Dn(e,1):Dn(e),u,f,m,h,g=!1,_=!1;if(R(e)?(f=()=>e.value,g=en(e)):Qt(e)?(f=()=>l(e),g=!0):x(e)?(_=!0,g=e.some(e=>Qt(e)||en(e)),f=()=>e.map(e=>{if(R(e))return e.value;if(Qt(e))return l(e);if(T(e))return c?c(e,2):e()})):f=T(e)?t?c?()=>c(e,2):e:()=>{if(m){$e();try{m()}finally{et()}}let t=wn;wn=u;try{return c?c(e,3,[h]):e(h)}finally{wn=t}}:p,t&&i){let e=f,t=i===!0?1/0:i;f=()=>Dn(e(),t)}let y=Fe(),b=()=>{u.stop(),y&&y.active&&v(y.effects,u)};if(a&&t){let e=t;t=(...t)=>{let n=e(...t);return b(),n}}let S=_?Array(e.length).fill(Sn):Sn,C=e=>{if(!(!(u.flags&1)||!u.dirty&&!e))if(t){let n=u.run();if(e||i||g||(_?n.some((e,t)=>le(e,S[t])):le(n,S))){m&&m();let e=wn;wn=u;try{let e=[n,S===Sn?void 0:_&&S[0]===Sn?[]:S,h];S=n,c?c(t,3,e):t(...e)}finally{wn=e}}}else u.run()};return s&&s(C),u=new Re(f),u.scheduler=o?()=>o(C,!1):C,h=e=>Tn(e,!1,u),m=u.onStop=()=>{let e=Cn.get(u);if(e){if(c)c(e,4);else for(let t of e)t();Cn.delete(u)}},t?r?C(!0):S=u.run():o?o(C.bind(null,!0),!0):u.run(),b.pause=u.pause.bind(u),b.resume=u.resume.bind(u),b.stop=b,b}function Dn(e,t=1/0,n){if(t<=0||!O(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,R(e))Dn(e.value,t,n);else if(x(e))for(let r=0;r{Dn(e,t,n)});else if(ne(e)){for(let r in e)Dn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&Dn(e[r],t,n)}return e}function On(e,t,n,r){try{return r?e(...r):e()}catch(e){An(e,t,n)}}function kn(e,t,n,r){if(T(e)){let i=On(e,t,n,r);return i&&ee(i)&&i.catch(e=>{An(e,t,n)}),i}if(x(e)){let i=[];for(let a=0;a>>1,i=z[r],a=Gn(i);a=Gn(n)?z.push(e):z.splice(zn(t),0,e),e.flags|=1,Vn()}}function Vn(){Ln||=In.then(Kn)}function Hn(e){x(e)?Nn.push(...e):Pn&&e.id===-1?Pn.splice(Fn+1,0,e):e.flags&1||(Nn.push(e),e.flags|=1),Vn()}function Un(e,t,n=Mn+1){for(;nGn(e)-Gn(t));if(Nn.length=0,Pn){Pn.push(...e);return}for(Pn=e,Fn=0;Fne.id==null?e.flags&2?-1:1/0:e.id;function Kn(e){try{for(Mn=0;Mn{r._d&&Va(-1);let i=Jn(t),a;try{a=e(...n)}finally{Jn(i),r._d&&Va(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function Xn(e,t){if(B===null)return e;let n=Eo(B),r=e.dirs||=[];for(let e=0;e1)return n&&T(t)?t.call(r&&r.proxy):t}}function er(){return!!(uo()||Gi)}var tr=Symbol.for(`v-scx`),nr=()=>$n(tr);function rr(e,t){return ar(e,null,t)}function ir(e,t,n){return ar(e,t,n)}function ar(e,t,n=d){let{immediate:r,deep:i,flush:a,once:o}=n,s=_({},n),c=t&&r||!t&&a!==`post`,l;if(_o){if(a===`sync`){let e=nr();l=e.__watcherHandles||=[]}else if(!c){let e=()=>{};return e.stop=p,e.resume=p,e.pause=p,e}}let u=K;s.call=(e,t,n)=>kn(e,u,t,n);let f=!1;a===`post`?s.scheduler=e=>{H(e,u&&u.suspense)}:a!==`sync`&&(f=!0,s.scheduler=(e,t)=>{t?e():Bn(e)}),s.augmentJob=e=>{t&&(e.flags|=4),f&&(e.flags|=2,u&&(e.id=u.uid,e.i=u))};let m=En(e,t,s);return _o&&(l?l.push(m):c&&m()),m}function or(e,t,n){let r=this.proxy,i=E(e)?e.includes(`.`)?sr(r,e):()=>r[e]:e.bind(r,r),a;T(t)?a=t:(a=t.handler,n=t);let o=mo(this),s=ar(i,a.bind(r),n);return o(),s}function sr(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,dr=e=>e&&(e.disabled||e.disabled===``),fr=e=>e&&(e.defer||e.defer===``),pr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,mr=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,hr=(e,t)=>{let n=e&&e.to;return E(n)?t?t(n):null:n},gr={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=dr(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=dr(e.props),r=e.target=hr(e.props,m),a=xr(r,e,h,p);r&&(o!==`svg`&&pr(r)?o=`svg`:o!==`mathml`&&mr(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),br(e,!1)))},S=e=>{let t=()=>{cr.get(e)===t&&(cr.delete(e),dr(e.props)&&(b(e,_(e.el)||n,e.anchor),br(e,!0)),x(e))};cr.set(e,t),H(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),fr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),br(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=cr.get(e);if(u){u.flags|=8,cr.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=dr(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||pr(p)?o=`svg`:(o===`mathml`||mr(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Da(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):_r(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=hr(t.props,m);e&&_r(t,e,null,l,0)}else g&&_r(t,p,h,l,1);br(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=a||!dr(f),m=cr.get(e);if(m&&(m.flags|=8,cr.delete(e)),d&&(i(l),i(u)),a&&i(c),!m&&o&16)for(let e=0;e{e.isMounted=!0}),ti(()=>{e.isUnmounting=!0}),e}var Tr=[Function,Array],Er={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Tr,onEnter:Tr,onAfterEnter:Tr,onEnterCancelled:Tr,onBeforeLeave:Tr,onLeave:Tr,onAfterLeave:Tr,onLeaveCancelled:Tr,onBeforeAppear:Tr,onAppear:Tr,onAfterAppear:Tr,onAppearCancelled:Tr},Dr=e=>{let t=e.subTree;return t.component?Dr(t.component):t},Or={name:`BaseTransition`,props:Er,setup(e,{slots:t}){let n=uo(),r=wr();return()=>{let i=t.default&&Ir(t.default(),!0),a=i&&i.length?kr(i):n.subTree?to():void 0;if(!a)return;let o=L(e),{mode:s}=o;if(r.isLeaving)return Nr(a);let c=Pr(a);if(!c)return Nr(a);let l=Mr(c,o,r,n,e=>l=e);c.type!==W&&Fr(c,l);let u=n.subTree&&Pr(n.subTree);if(u&&u.type!==W&&!Ka(u,c)&&Dr(n).type!==W){let e=Mr(u,o,r,n);if(Fr(u,e),s===`out-in`&&c.type!==W)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Nr(a);s===`in-out`&&c.type!==W?e.delayLeave=(e,t,n)=>{let i=jr(r,u);i[String(u.key)]=u,e[Sr]=()=>{t(),e[Sr]=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 kr(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==W){t=n;break}}return t}var Ar=Or;function jr(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function Mr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:f,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:_,onAfterAppear:v,onAppearCancelled:y}=t,b=String(e.key),S=jr(n,e),C=(e,t)=>{e&&kn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),x(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=g||c;else return;t[Sr]&&t[Sr](!0);let i=S[b];i&&Ka(e,i)&&i.el[Sr]&&i.el[Sr](),C(r,[t])},enter(t){if(S[b]===e)return;let r=l,i=u,o=d;if(!n.isMounted)if(a)r=_||l,i=v||u,o=y||d;else return;let s=!1;t[Cr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[Cr]=void 0)};let c=t[Cr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[Cr]&&t[Cr](!0),n.isUnmounting)return r();C(f,[t]);let a=!1;t[Sr]=n=>{a||(a=!0,r(),C(n?h:m,[t]),t[Sr]=void 0,S[i]===e&&delete S[i])};let o=t[Sr].bind(null,!1);S[i]=e,p?w(p,[t,o]):o()},clone(e){let a=Mr(e,t,n,r,i);return i&&i(a),a}};return T}function Nr(e){if(Wr(e))return e=Qa(e),e.children=null,e}function Pr(e){if(!Wr(e))return ur(e.type)&&e.children?kr(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&&T(n.default))return n.default()}}function Fr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Fr(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 Ir(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;eVr(e,t&&(x(t)?t[a]:t),n,r,i));return}if(Ur(r)&&!i){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Vr(e,t,n,r.component.subTree);return}let a=r.shapeFlag&4?Eo(r.component):r.el,o=i?null:a,{i:s,r:c}=e,l=t&&t.r,u=s.refs===d?s.refs={}:s.refs,f=s.setupState,p=L(f),h=f===d?m:e=>zr(u,e)?!1:b(p,e),g=(e,t)=>!(t&&zr(u,t));if(l!=null&&l!==c){if(Hr(t),E(l))u[l]=null,h(l)&&(f[l]=null);else if(R(l)){let e=t;g(l,e.k)&&(l.value=null),e.k&&(u[e.k]=null)}}if(T(c))On(c,s,12,[o,u]);else{let t=E(c),r=R(c);if(t||r){let s=()=>{if(e.f){let n=t?h(c)?f[c]:u[c]:g(c)||!e.k?c.value:u[e.k];if(i)x(n)&&v(n,a);else if(x(n))n.includes(a)||n.push(a);else if(t)u[c]=[a],h(c)&&(f[c]=u[c]);else{let t=[a];g(c,e.k)&&(c.value=t),e.k&&(u[e.k]=t)}}else t?(u[c]=o,h(c)&&(f[c]=o)):r&&(g(c,e.k)&&(c.value=o),e.k&&(u[e.k]=o))};if(o){let t=()=>{s(),Br.delete(e)};t.id=-1,Br.set(e,t),H(t,n)}else Hr(e),s()}}}function Hr(e){let t=Br.get(e);t&&(t.flags|=8,Br.delete(e))}he().requestIdleCallback,he().cancelIdleCallback;var Ur=e=>!!e.type.__asyncLoader,Wr=e=>e.type.__isKeepAlive;function Gr(e,t){qr(e,`a`,t)}function Kr(e,t){qr(e,`da`,t)}function qr(e,t,n=K){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(Yr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Wr(e.parent.vnode)&&Jr(r,t,n,e),e=e.parent}}function Jr(e,t,n,r){let i=Yr(t,e,r,!0);ni(()=>{v(r[t],i)},n)}function Yr(e,t,n=K,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{$e();let i=mo(n),a=kn(t,n,e,r);return i(),et(),a};return r?i.unshift(a):i.push(a),a}}var Xr=e=>(t,n=K)=>{(!_o||e===`sp`)&&Yr(e,(...e)=>t(...e),n)},Zr=Xr(`bm`),Qr=Xr(`m`),$r=Xr(`bu`),ei=Xr(`u`),ti=Xr(`bum`),ni=Xr(`um`),ri=Xr(`sp`),ii=Xr(`rtg`),ai=Xr(`rtc`);function oi(e,t=K){Yr(`ec`,e,t)}var si=`components`,ci=`directives`;function li(e,t){return pi(si,e,!0,t)||e}var ui=Symbol.for(`v-ndc`);function di(e){return E(e)?pi(si,e,!1)||e:e||ui}function fi(e){return pi(ci,e)}function pi(e,t,n=!0,r=!1){let i=B||K;if(i){let n=i.type;if(e===si){let e=Do(n,!1);if(e&&(e===t||e===M(t)||e===N(M(t))))return n}let a=mi(i[e]||n[e],t)||mi(i.appContext[e],t);return!a&&r?n:a}}function mi(e,t){return e&&(e[t]||e[M(t)]||e[N(M(t))])}function hi(e,t,n,r){let i,a=n&&n[r],o=x(e);if(o||E(e)){let n=o&&Qt(e),r=!1,s=!1;n&&(r=!en(e),s=$t(e),e=pt(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;r{let t=r.fn(...e);return t&&(t.key=r.key),t}:r.fn)}return e}function _i(e,t,n={},r,i){if(B.ce||B.parent&&Ur(B.parent)&&B.parent.ce){let e=Object.keys(n).length>0;return t!=="default"&&(n.name=t),Ra(),Wa(U,null,[G(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),Ra();let o=a&&vi(a(n)),s=n.key||o&&o.key,c=Wa(U,{key:(s&&!D(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 vi(e){return e.some(e=>Ga(e)?!(e.type===W||e.type===U&&!vi(e.children)):!0)?e:null}function yi(e,t){let n={};for(let r in e)n[t&&/[A-Z]/.test(r)?`on:${r}`:ce(r)]=e[r];return n}var bi=e=>e?go(e)?Eo(e):bi(e.parent):null,xi=_(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=>bi(e.parent),$root:e=>bi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ni(e),$forceUpdate:e=>e.f||=()=>{Bn(e.update)},$nextTick:e=>e.n||=Rn.bind(e.proxy),$watch:e=>or.bind(e)}),Si=(e,t)=>e!==d&&!e.__isScriptSetup&&b(e,t),Ci={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:n,setupState:r,data:i,props:a,accessCache:o,type:s,appContext:c}=e;if(t[0]!==`$`){let e=o[t];if(e!==void 0)switch(e){case 1:return r[t];case 2:return i[t];case 4:return n[t];case 3:return a[t]}else if(Si(r,t))return o[t]=1,r[t];else if(i!==d&&b(i,t))return o[t]=2,i[t];else if(b(a,t))return o[t]=3,a[t];else if(n!==d&&b(n,t))return o[t]=4,n[t];else Oi&&(o[t]=0)}let l=xi[t],u,f;if(l)return t===`$attrs`&&I(e.attrs,`get`,``),l(e);if((u=s.__cssModules)&&(u=u[t]))return u;if(n!==d&&b(n,t))return o[t]=4,n[t];if(f=c.config.globalProperties,b(f,t))return f[t]},set({_:e},t,n){let{data:r,setupState:i,ctx:a}=e;return Si(i,t)?(i[t]=n,!0):r!==d&&b(r,t)?(r[t]=n,!0):b(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(a[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,props:a,type:o}},s){let c;return!!(n[s]||e!==d&&s[0]!==`$`&&b(e,s)||Si(t,s)||b(a,s)||b(r,s)||b(xi,s)||b(i.config.globalProperties,s)||(c=o.__cssModules)&&c[s])},defineProperty(e,t,n){return n.get==null?b(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function wi(){return Ei(`useSlots`).slots}function Ti(){return Ei(`useAttrs`).attrs}function Ei(e){let t=uo();return t.setupContext||=To(t)}function Di(e){return x(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}var Oi=!0;function ki(e){let t=Ni(e),n=e.proxy,r=e.ctx;Oi=!1,t.beforeCreate&&ji(t.beforeCreate,e,`bc`);let{data:i,computed:a,methods:o,watch:s,provide:c,inject:l,created:u,beforeMount:d,mounted:f,beforeUpdate:m,updated:h,activated:g,deactivated:_,beforeDestroy:v,beforeUnmount:y,destroyed:b,unmounted:S,render:C,renderTracked:w,renderTriggered:E,errorCaptured:D,serverPrefetch:ee,expose:k,inheritAttrs:A,components:te,directives:ne,filters:re}=t;if(l&&Ai(l,r,null),o)for(let e in o){let t=o[e];T(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);O(t)&&(e.data=qt(t))}if(Oi=!0,a)for(let e in a){let t=a[e],i=ko({get:T(t)?t.bind(n,n):T(t.get)?t.get.bind(n,n):p,set:!T(t)&&T(t.set)?t.set.bind(n):p});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e})}if(s)for(let e in s)Mi(s[e],r,n,e);if(c){let e=T(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{Qn(t,e[t])})}u&&ji(u,e,`c`);function j(e,t){x(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(j(Zr,d),j(Qr,f),j($r,m),j(ei,h),j(Gr,g),j(Kr,_),j(oi,D),j(ai,w),j(ii,E),j(ti,y),j(ni,S),j(ri,ee),x(k))if(k.length){let t=e.exposed||={};k.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};C&&e.render===p&&(e.render=C),A!=null&&(e.inheritAttrs=A),te&&(e.components=te),ne&&(e.directives=ne),ee&&Rr(e)}function Ai(e,t,n=p){x(e)&&(e=Ri(e));for(let n in e){let r=e[n],i;i=O(r)?`default`in r?$n(r.from||n,r.default,!0):$n(r.from||n):$n(r),R(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function ji(e,t,n){kn(x(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Mi(e,t,n,r){let i=r.includes(`.`)?sr(n,r):()=>n[r];if(E(e)){let n=t[e];T(n)&&ir(i,n)}else if(T(e))ir(i,e.bind(n));else if(O(e))if(x(e))e.forEach(e=>Mi(e,t,n,r));else{let r=T(e.handler)?e.handler.bind(n):t[e.handler];T(r)&&ir(i,r,e)}}function Ni(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=>Pi(c,e,o,!0)),Pi(c,t,o)),O(t)&&a.set(t,c),c}function Pi(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Pi(e,a,n,!0),i&&i.forEach(t=>Pi(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=Fi[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var Fi={data:Ii,props:Bi,emits:Bi,methods:zi,computed:zi,beforeCreate:V,created:V,beforeMount:V,mounted:V,beforeUpdate:V,updated:V,beforeDestroy:V,beforeUnmount:V,destroyed:V,unmounted:V,activated:V,deactivated:V,errorCaptured:V,serverPrefetch:V,components:zi,directives:zi,watch:Vi,provide:Ii,inject:Li};function Ii(e,t){return t?e?function(){return _(T(e)?e.call(this,this):e,T(t)?t.call(this,this):t)}:t:e}function Li(e,t){return zi(Ri(e),Ri(t))}function Ri(e){if(x(e)){let t={};for(let n=0;nt===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${M(t)}Modifiers`]||e[`${se(t)}Modifiers`];function qi(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||d,i=n,a=t.startsWith(`update:`),o=a&&Ki(r,t.slice(7));o&&(o.trim&&(i=n.map(e=>E(e)?e.trim():e)),o.number&&(i=n.map(fe)));let s,c=r[s=ce(t)]||r[s=ce(M(t))];!c&&a&&(c=r[s=ce(se(t))]),c&&kn(c,e,6,i);let l=r[s+`Once`];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[s])return;e.emitted[s]=!0,kn(l,e,6,i)}}var Ji=new WeakMap;function Yi(e,t,n=!1){let r=n?Ji:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!T(e)){let r=e=>{let n=Yi(e,t,!0);n&&(s=!0,_(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(O(e)&&r.set(e,null),null):(x(a)?a.forEach(e=>o[e]=null):_(o,a),O(e)&&r.set(e,o),o)}function Xi(e,t){return!e||!h(t)?!1:(t=t.slice(2).replace(/Once$/,``),b(e,t[0].toLowerCase()+t.slice(1))||b(e,se(t))||b(e,t))}function Zi(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:s,emit:c,render:l,renderCache:u,props:d,data:f,setupState:p,ctx:m,inheritAttrs:h}=e,_=Jn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=no(l.call(t,e,u,d,p,f,m)),y=s}else{let e=t;v=no(e.length>1?e(d,{attrs:s,slots:o,emit:c}):e(d,null)),y=t.props?s:Qi(s)}}catch(t){Ia.length=0,An(t,e,1),v=G(W)}let b=v;if(y&&h!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(g)&&(y=$i(y,a)),b=Qa(b,y,!1,!0))}return n.dirs&&(b=Qa(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&Fr(b,n.transition),v=b,Jn(_),v}var Qi=e=>{let t;for(let n in e)(n===`class`||n===`style`||h(n))&&((t||={})[n]=e[n]);return t},$i=(e,t)=>{let n={};for(let r in e)(!g(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function ea(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?ta(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create(ia),oa=e=>Object.getPrototypeOf(e)===ia;function sa(e,t,n,r=!1){let i={},a=aa();e.propsDefaults=Object.create(null),la(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Jt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function ca(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=L(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{c=!0;let[n,r]=fa(e,t,!0);_(o,n),r&&s.push(...r)};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}if(!a&&!c)return O(e)&&r.set(e,f),f;if(x(a))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,ha=e=>x(e)?e.map(no):[no(e)],ga=(e,t,n)=>{if(t._n)return t;let r=Yn((...e)=>ha(t(...e)),n);return r._c=!1,r},_a=(e,t,n)=>{let r=e._ctx;for(let n in e){if(ma(n))continue;let i=e[n];if(T(i))t[n]=ga(n,i,r);else if(i!=null){let e=ha(i);t[n]=()=>e}}},va=(e,t)=>{let n=ha(t);e.slots.default=()=>n},ya=(e,t,n)=>{for(let r in t)(n||!ma(r))&&(e[r]=t[r])},ba=(e,t,n)=>{let r=e.slots=aa();if(e.vnode.shapeFlag&32){let e=t._;e?(ya(r,t,n),n&&de(r,`_`,e,!0)):_a(t,r)}else t&&va(e,t)},xa=(e,t,n)=>{let{vnode:r,slots:i}=e,a=!0,o=d;if(r.shapeFlag&32){let e=t._;e?n&&e===1?a=!1:ya(i,t,n):(a=!t.$stable,_a(t,i)),o=t}else t&&(va(e,t),o={default:1});if(a)for(let e in i)!ma(e)&&o[e]==null&&delete i[e]},H=Na;function Sa(e){return Ca(e)}function Ca(e,t){let n=he();n.__VUE__=!0;let{insert:r,remove:i,patchProp:a,createElement:o,createText:s,createComment:c,setText:l,setElementText:u,parentNode:m,nextSibling:h,setScopeId:g=p,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&&!Ka(e,t)&&(r=me(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 Pa:y(e,t,n,r);break;case W:b(e,t,n,r);break;case Fa:e??x(t,n,r,o);break;case U:A(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?te(e,t,n,r,i,a,o,s,c):(d&64||d&128)&&l.process(e,t,n,r,i,a,o,s,c,ve)}u!=null&&i?Vr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&Vr(e.ref,null,a,e,!0)},y=(e,t,n,i)=>{if(e==null)r(t.el=s(t.children),n,i);else{let n=t.el=e.el;t.children!==e.children&&l(n,t.children)}},b=(e,t,n,i)=>{e==null?r(t.el=c(t.children||``),n,i):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,i)=>{let a;for(;e&&e!==t;)a=h(e),r(e,n,i),e=a;r(t,n,i)},C=({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=h(e),i(e),e=n;i(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(),O(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(e,t,n,i,s,c,l,d)=>{let f,p,{props:m,shapeFlag:h,transition:g,dirs:_}=e;if(f=e.el=o(e.type,c,m&&m.is,m),h&8?u(f,e.children):h&16&&D(e.children,f,null,i,s,wa(e,c),l,d),_&&Zn(e,null,i,`created`),E(f,e,e.scopeId,l,i),m){for(let e in m)e!==`value`&&!j(e)&&a(f,e,null,m[e],c,i);`value`in m&&a(f,`value`,null,m.value,c),(p=m.onVnodeBeforeMount)&&oo(p,i,e)}_&&Zn(e,null,i,`beforeMount`);let v=Ea(s,g);v&&g.beforeEnter(f),r(f,t,n),((p=m&&m.onVnodeMounted)||v||_)&&H(()=>{try{p&&oo(p,i,e),v&&g.enter(f),_&&Zn(e,null,i,`mounted`)}finally{}},s)},E=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let c=t.el=e.el,{patchFlag:l,dynamicChildren:f,dirs:p}=t;l|=e.patchFlag&16;let m=e.props||d,h=t.props||d,g;if(n&&Ta(n,!1),(g=h.onVnodeBeforeUpdate)&&oo(g,n,t,e),p&&Zn(t,e,n,`beforeUpdate`),n&&Ta(n,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&u(c,``),f?ee(e.dynamicChildren,f,c,n,r,wa(t,i),o):s||M(e,t,c,null,n,r,wa(t,i),o,!1),l>0){if(l&16)k(c,m,h,n,i);else if(l&2&&m.class!==h.class&&a(c,`class`,null,h.class,i),l&4&&a(c,`style`,m.style,h.style,i),l&8){let e=t.dynamicProps;for(let t=0;t{g&&oo(g,n,t,e),p&&Zn(t,e,n,`updated`)},r)},ee=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==n){if(t!==d)for(let o in t)!j(o)&&!(o in n)&&a(e,o,t[o],null,i,r);for(let o in n){if(j(o))continue;let s=n[o],c=t[o];s!==c&&o!==`value`&&a(e,o,c,s,i,r)}`value`in n&&a(e,`value`,t.value,n.value,i)}},A=(e,t,n,i,a,o,c,l,u)=>{let d=t.el=e?e.el:s(``),f=t.anchor=e?e.anchor:s(``),{patchFlag:p,dynamicChildren:m,slotScopeIds:h}=t;h&&(l=l?l.concat(h):h),e==null?(r(d,n,i),r(f,n,i),D(t.children||[],n,f,a,o,c,l,u)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(ee(e.dynamicChildren,m,n,a,o,c,l),(t.key!=null||a&&t===a.subTree)&&Da(e,t,!0)):M(e,t,n,f,a,o,c,l,u)},te=(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):ne(t,n,r,i,a,o,c):re(e,t,c)},ne=(e,t,n,r,i,a,o)=>{let s=e.component=lo(e,r,i);if(Wr(e)&&(s.ctx.renderer=ve),vo(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,ie,o),!e.el){let r=s.subTree=G(W);b(null,r,t,n),e.placeholder=r.el}}else ie(s,e,t,n,i,a,o)},re=(e,t,n)=>{let r=t.component=e.component;if(ea(e,t,n))if(r.asyncDep&&!r.asyncResolved){ae(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},ie=(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=ka(e);if(n){t&&(t.el=c.el,ae(e,t,o)),n.asyncDep.then(()=>{H(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;Ta(e,!1),t?(t.el=c.el,ae(e,t,o)):t=c,n&&ue(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&oo(d,s,t,c),Ta(e,!0);let f=Zi(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),me(p),e,i,a),t.el=f.el,u===null&&ra(e,f.el),r&&H(r,i),(d=t.props&&t.props.onVnodeUpdated)&&H(()=>oo(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=Ur(t);if(Ta(e,!1),l&&ue(l),!m&&(o=c&&c.onVnodeBeforeMount)&&oo(o,d,t),Ta(e,!0),s&&be){let t=()=>{e.subTree=Zi(e),be(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=Zi(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&H(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;H(()=>oo(o,d,e),i)}(t.shapeFlag&256||d&&Ur(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&H(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Re(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=()=>Bn(u),Ta(e,!0),l()},ae=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,ca(e,t.props,r,n),xa(e,t.children,n),$e(),Un(e),et()},M=(e,t,n,r,i,a,o,s,c=!1)=>{let l=e&&e.children,d=e?e.shapeFlag:0,f=t.children,{patchFlag:p,shapeFlag:m}=t;if(p>0){if(p&128){se(l,f,n,r,i,a,o,s,c);return}else if(p&256){oe(l,f,n,r,i,a,o,s,c);return}}m&8?(d&16&&pe(l,i,a),f!==l&&u(n,f)):d&16?m&16?se(l,f,n,r,i,a,o,s,c):pe(l,i,a,!0):(d&8&&u(n,``),m&16&&D(f,n,r,i,a,o,s,c))},oe=(e,t,n,r,i,a,o,s,c)=>{e||=f,t||=f;let l=e.length,u=t.length,d=Math.min(l,u),p;for(p=0;pu?pe(e,i,a,!0,!1,d):D(t,n,r,i,a,o,s,c,d)},se=(e,t,n,r,i,a,o,s,c)=>{let l=0,u=t.length,d=e.length-1,p=u-1;for(;l<=d&&l<=p;){let r=e[l],u=t[l]=c?ro(t[l]):no(t[l]);if(Ka(r,u))v(r,u,n,null,i,a,o,s,c);else break;l++}for(;l<=d&&l<=p;){let r=e[d],l=t[p]=c?ro(t[p]):no(t[p]);if(Ka(r,l))v(r,l,n,null,i,a,o,s,c);else break;d--,p--}if(l>d){if(l<=p){let e=p+1,d=ep)for(;l<=d;)ce(e[l],i,a,!0),l++;else{let m=l,h=l,g=new Map;for(l=h;l<=p;l++){let e=t[l]=c?ro(t[l]):no(t[l]);e.key!=null&&g.set(e.key,l)}let _,y=0,b=p-h+1,x=!1,S=0,C=Array(b);for(l=0;l=b){ce(r,i,a,!0);continue}let u;if(r.key!=null)u=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Ka(r,t[_])){u=_;break}u===void 0?ce(r,i,a,!0):(C[u-h]=l+1,u>=S?S=u:x=!0,v(r,t[u],n,null,i,a,o,s,c),y++)}let w=x?Oa(C):f;for(_=w.length-1,l=b-1;l>=0;l--){let e=h+l,d=t[e],f=t[e+1],p=e+1{let{el:s,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){N(e.component.subTree,t,n,a);return}if(d&128){e.suspense.move(t,n,a);return}if(d&64){c.move(e,t,n,ve);return}if(c===U){r(s,t,n);for(let e=0;el.enter(s),o));else{let{leave:a,delayLeave:o,afterLeave:c}=l,u=()=>{e.ctx.isUnmounted?i(s):r(s,t,n)},d=()=>{let e=s._isLeaving||!!s[Sr];s._isLeaving&&s[Sr](!0),l.persisted&&!e?u():a(s,()=>{u(),c&&c()})};o?o(s,u,d):d()}else r(s,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&&($e(),Vr(s,null,n,e,!0),et()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Ur(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&oo(_,t,e),u&6)fe(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Zn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,ve,r):l&&!l.hasOnce&&(a!==U||d>0&&d&64)?pe(l,t,n,!1,!0):(a===U&&d&384||!i&&u&16)&&pe(c,t,n),r&&le(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&H(()=>{_&&oo(_,t,e),h&&Zn(e,null,t,`unmounted`),v&&(e.el=null)},n)},le=e=>{let{type:t,el:n,anchor:r,transition:a}=e;if(t===U){de(n,r);return}if(t===Fa){C(e);return}let o=()=>{i(n),a&&!a.persisted&&a.afterLeave&&a.afterLeave()};if(e.shapeFlag&1&&a&&!a.persisted){let{leave:t,delayLeave:r}=a,i=()=>t(n,o);r?r(e.el,o,i):i()}else o()},de=(e,t)=>{let n;for(;e!==t;)n=h(e),i(e),e=n;i(t)},fe=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Aa(c),Aa(l),r&&ue(r),i.stop(),a&&(a.flags|=8,ce(o,e,t,n)),s&&H(s,t),H(()=>{e.isUnmounted=!0},t)},pe=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return me(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[lr];return n?h(n):t},ge=!1,_e=(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,ge||=(ge=!0,Un(r),Wn(),!1)},ve={p:v,um:ce,m:N,r:le,mt:ne,mc:D,pc:M,pbc:ee,n:me,o:e},ye,be;return t&&([ye,be]=t(ve)),{render:_e,hydrate:ye,createApp:Wi(_e,ye)}}function wa({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 Ta({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Ea(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Da(e,t,n=!1){let r=e.children,i=t.children;if(x(r)&&x(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 ka(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:ka(t)}function Aa(e){if(e)for(let t=0;te.__isSuspense;function Na(e,t){t&&t.pendingBranch?x(e)?t.effects.push(...e):t.effects.push(e):Hn(e)}var U=Symbol.for(`v-fgt`),Pa=Symbol.for(`v-txt`),W=Symbol.for(`v-cmt`),Fa=Symbol.for(`v-stc`),Ia=[],La=null;function Ra(e=!1){Ia.push(La=e?null:[])}function za(){Ia.pop(),La=Ia[Ia.length-1]||null}var Ba=1;function Va(e,t=!1){Ba+=e,e<0&&La&&t&&(La.hasOnce=!0)}function Ha(e){return e.dynamicChildren=Ba>0?La||f:null,za(),Ba>0&&La&&La.push(e),e}function Ua(e,t,n,r,i,a){return Ha(Ya(e,t,n,r,i,a,!0))}function Wa(e,t,n,r,i){return Ha(G(e,t,n,r,i,!0))}function Ga(e){return e?e.__v_isVNode===!0:!1}function Ka(e,t){return e.type===t.type&&e.key===t.key}var qa=({key:e})=>e??null,Ja=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:E(e)||R(e)||T(e)?{i:B,r:e,k:t,f:!!n}:e);function Ya(e,t=null,n=null,r=0,i=null,a=e===U?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&qa(t),ref:t&&Ja(t),scopeId:qn,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:B};return s?(io(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=E(n)?8:16),Ba>0&&!o&&La&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&La.push(c),c}var G=Xa;function Xa(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===ui)&&(e=W),Ga(e)){let r=Qa(e,t,!0);return n&&io(r,n),Ba>0&&!a&&La&&(r.shapeFlag&6?La[La.indexOf(e)]=r:La.push(r)),r.patchFlag=-2,r}if(Oo(e)&&(e=e.__vccOpts),t){t=Za(t);let{class:e,style:n}=t;e&&!E(e)&&(t.class=xe(e)),O(n)&&(tn(n)&&!x(n)&&(n=_({},n)),t.style=ge(n))}let o=E(e)?1:Ma(e)?128:ur(e)?64:O(e)?4:T(e)?2:0;return Ya(e,t,n,r,i,o,a,!0)}function Za(e){return e?tn(e)||oa(e)?_({},e):e:null}function Qa(e,t,n=!1,r=!1){let{props:i,ref:a,patchFlag:o,children:s,transition:c}=e,l=t?ao(i||{},t):i,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&qa(l),ref:t&&t.ref?n&&a?x(a)?a.concat(Ja(t)):[a,Ja(t)]:Ja(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!==U?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&&Qa(e.ssContent),ssFallback:e.ssFallback&&Qa(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&Fr(u,c.clone(u)),u}function $a(e=` `,t=0){return G(Pa,null,e,t)}function eo(e,t){let n=G(Fa,null,e);return n.staticCount=t,n}function to(e=``,t=!1){return t?(Ra(),Wa(W,null,e)):G(W,null,e)}function no(e){return e==null||typeof e==`boolean`?G(W):x(e)?G(U,null,e.slice()):Ga(e)?ro(e):G(Pa,null,String(e))}function ro(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Qa(e)}function io(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(x(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),io(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!oa(t)?t._ctx=B:r===3&&B&&(B.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else T(t)?(t={default:t,_ctx:B},n=32):(t=String(t),r&64?(n=16,t=[$a(t)]):n=8);e.children=t,e.shapeFlag|=n}function ao(...e){let t={};for(let n=0;nK||B,fo,po;{let e=he(),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)}};fo=t(`__VUE_INSTANCE_SETTERS__`,e=>K=e),po=t(`__VUE_SSR_SETTERS__`,e=>_o=e)}var mo=e=>{let t=K;return fo(e),e.scope.on(),()=>{e.scope.off(),fo(t)}},ho=()=>{K&&K.scope.off(),fo(null)};function go(e){return e.vnode.shapeFlag&4}var _o=!1;function vo(e,t=!1,n=!1){t&&po(t);let{props:r,children:i}=e.vnode,a=go(e);sa(e,r,a,t),ba(e,i,n||t);let o=a?yo(e,t):void 0;return t&&po(!1),o}function yo(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Ci);let{setup:r}=n;if(r){$e();let n=e.setupContext=r.length>1?To(e):null,i=mo(e),a=On(r,e,0,[e.props,n]),o=ee(a);if(et(),i(),(o||e.sp)&&!Ur(e)&&Rr(e),o){if(a.then(ho,ho),t)return a.then(n=>{bo(e,n,t)}).catch(t=>{An(t,e,0)});e.asyncDep=a}else bo(e,a,t)}else Co(e,t)}function bo(e,t,n){T(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:O(t)&&(e.setupState=mn(t)),Co(e,n)}var xo,So;function Co(e,t,n){let r=e.type;if(!e.render){if(!t&&xo&&!r.render){let t=r.template||Ni(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r;r.render=xo(t,_(_({isCustomElement:n,delimiters:a},i),o))}}e.render=r.render||p,So&&So(e)}{let t=mo(e);$e();try{ki(e)}finally{et(),t()}}}var wo={get(e,t){return I(e,`get`,``),e[t]}};function To(e){return{attrs:new Proxy(e.attrs,wo),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function Eo(e){return e.exposed?e.exposeProxy||=new Proxy(mn(nn(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in xi)return xi[n](e)},has(e,t){return t in e||t in xi}}):e.proxy}function Do(e,t=!0){return T(e)?e.displayName||e.name:e.name||t&&e.__name}function Oo(e){return T(e)&&`__vccOpts`in e}var ko=(e,t)=>xn(e,t,_o);function Ao(e,t,n){try{Va(-1);let r=arguments.length;return r===2?O(t)&&!x(t)?Ga(t)?G(e,null,[t]):G(e,t):G(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ga(n)&&(n=[n]),G(e,t,n))}finally{Va(1)}}var jo=`3.5.38`,Mo=p;function No(e,t){return function(){return e.apply(t,arguments)}}var{toString:Po}=Object.prototype,{getPrototypeOf:Fo}=Object,{iterator:Io,toStringTag:Lo}=Symbol,Ro=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),zo=(e,t)=>{let n=e,r=[];for(;n!=null&&n!==Object.prototype;){if(r.indexOf(n)!==-1)return!1;if(r.push(n),Ro(n,t))return!0;n=Fo(n)}return!1},Bo=(e,t)=>e!=null&&zo(e,t)?e[t]:void 0,Vo=(e=>t=>{let n=Po.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),Ho=e=>(e=e.toLowerCase(),t=>Vo(t)===e),Uo=e=>t=>typeof t===e,{isArray:Wo}=Array,Go=Uo(`undefined`);function Ko(e){return e!==null&&!Go(e)&&e.constructor!==null&&!Go(e.constructor)&&q(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}var qo=Ho(`ArrayBuffer`);function Jo(e){let t;return t=typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&qo(e.buffer),t}var Yo=Uo(`string`),q=Uo(`function`),Xo=Uo(`number`),Zo=e=>typeof e==`object`&&!!e,Qo=e=>e===!0||e===!1,$o=e=>{if(!Zo(e))return!1;let t=Fo(e);return(t===null||t===Object.prototype||Fo(t)===null)&&!zo(e,Lo)&&!zo(e,Io)},es=e=>{if(!Zo(e)||Ko(e))return!1;try{return Object.keys(e).length===0&&Object.getPrototypeOf(e)===Object.prototype}catch{return!1}},ts=Ho(`Date`),ns=Ho(`File`),rs=e=>!!(e&&e.uri!==void 0),is=e=>e&&e.getParts!==void 0,as=Ho(`Blob`),os=Ho(`FileList`),ss=e=>Zo(e)&&q(e.pipe);function cs(){return typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{}}var ls=cs(),us=ls.FormData===void 0?void 0:ls.FormData,ds=e=>{if(!e)return!1;if(us&&e instanceof us)return!0;let t=Fo(e);if(!t||t===Object.prototype||!q(e.append))return!1;let n=Vo(e);return n===`formdata`||n===`object`&&q(e.toString)&&e.toString()===`[object FormData]`},fs=Ho(`URLSearchParams`),[ps,ms,hs,gs]=[`ReadableStream`,`Request`,`Response`,`Headers`].map(Ho),_s=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,``);function vs(e,t,{allOwnKeys:n=!1}={}){if(e==null)return;let r,i;if(typeof e!=`object`&&(e=[e]),Wo(e))for(r=0,i=e.length;r0;)if(i=n[r],t===i.toLowerCase())return i;return null}var bs=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:global,xs=e=>!Go(e)&&e!==bs;function Ss(...e){let{caseless:t,skipUndefined:n}=xs(this)&&this||{},r={},i=(e,i)=>{if(i===`__proto__`||i===`constructor`||i===`prototype`)return;let a=t&&typeof i==`string`&&ys(r,i)||i,o=Ro(r,a)?r[a]:void 0;$o(o)&&$o(e)?r[a]=Ss(o,e):$o(e)?r[a]=Ss({},e):Wo(e)?r[a]=e.slice():(!n||!Go(e))&&(r[a]=e)};for(let t=0,n=e.length;t(vs(t,(t,r)=>{n&&q(t)?Object.defineProperty(e,r,{__proto__:null,value:No(t,n),writable:!0,enumerable:!0,configurable:!0}):Object.defineProperty(e,r,{__proto__:null,value:t,writable:!0,enumerable:!0,configurable:!0})},{allOwnKeys:r}),e),ws=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),Ts=(e,t,n,r)=>{e.prototype=Object.create(t.prototype,r),Object.defineProperty(e.prototype,"constructor",{__proto__:null,value:e,writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(e,"super",{__proto__:null,value:t.prototype}),n&&Object.assign(e.prototype,n)},Es=(e,t,n,r)=>{let i,a,o,s={};if(t||={},e==null)return t;do{for(i=Object.getOwnPropertyNames(e),a=i.length;a-- >0;)o=i[a],(!r||r(o,e,t))&&!s[o]&&(t[o]=e[o],s[o]=!0);e=n!==!1&&Fo(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},Ds=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;let r=e.indexOf(t,n);return r!==-1&&r===n},Os=e=>{if(!e)return null;if(Wo(e))return e;let t=e.length;if(!Xo(t))return null;let n=Array(t);for(;t-- >0;)n[t]=e[t];return n},ks=(e=>t=>e&&t instanceof e)(typeof Uint8Array<`u`&&Fo(Uint8Array)),As=(e,t)=>{let n=(e&&e[Io]).call(e),r;for(;(r=n.next())&&!r.done;){let n=r.value;t.call(e,n[0],n[1])}},js=(e,t)=>{let n,r=[];for(;(n=e.exec(t))!==null;)r.push(n);return r},Ms=Ho(`HTMLFormElement`),Ns=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(e,t,n){return t.toUpperCase()+n}),{propertyIsEnumerable:Ps}=Object.prototype,Fs=Ho(`RegExp`),Is=(e,t)=>{let n=Object.getOwnPropertyDescriptors(e),r={};vs(n,(n,i)=>{let a;(a=t(n,i,e))!==!1&&(r[i]=a||n)}),Object.defineProperties(e,r)},Ls=e=>{Is(e,(t,n)=>{if(q(e)&&[`arguments`,`caller`,`callee`].includes(n))return!1;let r=e[n];if(q(r)){if(t.enumerable=!1,`writable`in t){t.writable=!1;return}t.set||=()=>{throw Error(`Can not rewrite read-only method '`+n+`'`)}}})},Rs=(e,t)=>{let n={},r=e=>{e.forEach(e=>{n[e]=!0})};return Wo(e)?r(e):r(String(e).split(t)),n},zs=()=>{},Bs=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t;function Vs(e){return!!(e&&q(e.append)&&e[Lo]===`FormData`&&e[Io])}var Hs=e=>{let t=new WeakSet,n=e=>{if(Zo(e)){if(t.has(e))return;if(Ko(e))return e;if(!(`toJSON`in e)){t.add(e);let r=Wo(e)?[]:{};return vs(e,(e,t)=>{let i=n(e);!Go(i)&&(r[t]=i)}),t.delete(e),r}}return e};return n(e)},Us=Ho(`AsyncFunction`),Ws=e=>e&&(Zo(e)||q(e))&&q(e.then)&&q(e.catch),Gs=((e,t)=>e?setImmediate:t?((e,t)=>(bs.addEventListener(`message`,({source:n,data:r})=>{n===bs&&r===e&&t.length&&t.shift()()},!1),n=>{t.push(n),bs.postMessage(e,`*`)}))(`axios@${Math.random()}`,[]):e=>setTimeout(e))(typeof setImmediate==`function`,q(bs.postMessage)),Ks=typeof queueMicrotask<`u`?queueMicrotask.bind(bs):typeof process<`u`&&process.nextTick||Gs,qs=e=>e!=null&&q(e[Io]),J={isArray:Wo,isArrayBuffer:qo,isBuffer:Ko,isFormData:ds,isArrayBufferView:Jo,isString:Yo,isNumber:Xo,isBoolean:Qo,isObject:Zo,isPlainObject:$o,isEmptyObject:es,isReadableStream:ps,isRequest:ms,isResponse:hs,isHeaders:gs,isUndefined:Go,isDate:ts,isFile:ns,isReactNativeBlob:rs,isReactNative:is,isBlob:as,isRegExp:Fs,isFunction:q,isStream:ss,isURLSearchParams:fs,isTypedArray:ks,isFileList:os,forEach:vs,merge:Ss,extend:Cs,trim:_s,stripBOM:ws,inherits:Ts,toFlatObject:Es,kindOf:Vo,kindOfTest:Ho,endsWith:Ds,toArray:Os,forEachEntry:As,matchAll:js,isHTMLForm:Ms,hasOwnProperty:Ro,hasOwnProp:Ro,hasOwnInPrototypeChain:zo,getSafeProp:Bo,reduceDescriptors:Is,freezeMethods:Ls,toObjectSet:Rs,toCamelCase:Ns,noop:zs,toFiniteNumber:Bs,findKey:ys,global:bs,isContextDefined:xs,isSpecCompliantForm:Vs,toJSONObject:Hs,isAsyncFn:Us,isThenable:Ws,setImmediate:Gs,asap:Ks,isIterable:qs,isSafeIterable:e=>e!=null&&zo(e,Io)&&qs(e)},Js=J.toObjectSet([`age`,`authorization`,`content-length`,`content-type`,`etag`,`expires`,`from`,`host`,`if-modified-since`,`if-unmodified-since`,`last-modified`,`location`,`max-forwards`,`proxy-authorization`,`referer`,`retry-after`,`user-agent`]),Ys=e=>{let t={},n,r,i;return e&&e.split(` +`).forEach(function(e){i=e.indexOf(`:`),n=e.substring(0,i).trim().toLowerCase(),r=e.substring(i+1).trim(),!(!n||t[n]&&Js[n])&&(n===`set-cookie`?t[n]?t[n].push(r):t[n]=[r]:t[n]=t[n]?t[n]+`, `+r:r)}),t};function Xs(e){let t=0,n=e.length;for(;tt;){let t=e.charCodeAt(n-1);if(t!==9&&t!==32)break;--n}return t===0&&n===e.length?e:e.slice(t,n)}var Zs=RegExp(`[\\u0000-\\u0008\\u000a-\\u001f\\u007f]+`,`g`),Qs=RegExp(`[^\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+`,`g`);function $s(e,t){return J.isArray(e)?e.map(e=>$s(e,t)):Xs(String(e).replace(t,``))}var ec=e=>$s(e,Zs),tc=e=>$s(e,Qs);function nc(e){let t=Object.create(null);return J.forEach(e.toJSON(),(e,n)=>{t[n]=tc(e)}),t}var rc=Symbol(`internals`);function ic(e){return e&&String(e).trim().toLowerCase()}function ac(e){return e===!1||e==null?e:J.isArray(e)?e.map(ac):ec(String(e))}function oc(e){let t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g,r;for(;r=n.exec(e);)t[r[1]]=r[2];return t}var sc=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function cc(e,t,n,r,i){if(J.isFunction(r))return r.call(this,t,n);if(i&&(t=n),J.isString(t)){if(J.isString(r))return t.indexOf(r)!==-1;if(J.isRegExp(r))return r.test(t)}}function lc(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(e,t,n)=>t.toUpperCase()+n)}function uc(e,t){let n=J.toCamelCase(` `+t);[`get`,`set`,`has`].forEach(r=>{Object.defineProperty(e,r+n,{__proto__:null,value:function(e,n,i){return this[r].call(this,t,e,n,i)},configurable:!0})})}var Y=class{constructor(e){e&&this.set(e)}set(e,t,n){let r=this;function i(e,t,n){let i=ic(t);if(!i)return;let a=J.findKey(r,i);(!a||r[a]===void 0||n===!0||n===void 0&&r[a]!==!1)&&(r[a||t]=ac(e))}let a=(e,t)=>J.forEach(e,(e,n)=>i(e,n,t));if(J.isPlainObject(e)||e instanceof this.constructor)a(e,t);else if(J.isString(e)&&(e=e.trim())&&!sc(e))a(Ys(e),t);else if(J.isObject(e)&&J.isSafeIterable(e)){let n=Object.create(null),r,i;for(let t of e){if(!J.isArray(t))throw TypeError(`Object iterator must return a key-value pair`);i=t[0],J.hasOwnProp(n,i)?(r=n[i],n[i]=J.isArray(r)?[...r,t[1]]:[r,t[1]]):n[i]=t[1]}a(n,t)}else e!=null&&i(t,e,n);return this}get(e,t){if(e=ic(e),e){let n=J.findKey(this,e);if(n){let e=this[n];if(!t)return e;if(t===!0)return oc(e);if(J.isFunction(t))return t.call(this,e,n);if(J.isRegExp(t))return t.exec(e);throw TypeError(`parser must be boolean|regexp|function`)}}}has(e,t){if(e=ic(e),e){let n=J.findKey(this,e);return!!(n&&this[n]!==void 0&&(!t||cc(this,this[n],n,t)))}return!1}delete(e,t){let n=this,r=!1;function i(e){if(e=ic(e),e){let i=J.findKey(n,e);i&&(!t||cc(n,n[i],i,t))&&(delete n[i],r=!0)}}return J.isArray(e)?e.forEach(i):i(e),r}clear(e){let t=Object.keys(this),n=t.length,r=!1;for(;n--;){let i=t[n];(!e||cc(this,this[i],i,e,!0))&&(delete this[i],r=!0)}return r}normalize(e){let t=this,n={};return J.forEach(this,(r,i)=>{let a=J.findKey(n,i);if(a){t[a]=ac(r),delete t[i];return}let o=e?lc(i):String(i).trim();o!==i&&delete t[i],t[o]=ac(r),n[o]=!0}),this}concat(...e){return this.constructor.concat(this,...e)}toJSON(e){let t=Object.create(null);return J.forEach(this,(n,r)=>{n!=null&&n!==!1&&(t[r]=e&&J.isArray(n)?n.join(`, `):n)}),t}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([e,t])=>e+`: `+t).join(` +`)}getSetCookie(){return this.get(`set-cookie`)||[]}get[Symbol.toStringTag](){return`AxiosHeaders`}static from(e){return e instanceof this?e:new this(e)}static concat(e,...t){let n=new this(e);return t.forEach(e=>n.set(e)),n}static accessor(e){let t=(this[rc]=this[rc]={accessors:{}}).accessors,n=this.prototype;function r(e){let r=ic(e);t[r]||(uc(n,e),t[r]=!0)}return J.isArray(e)?e.forEach(r):r(e),this}};Y.accessor([`Content-Type`,`Content-Length`,`Accept`,`Accept-Encoding`,`User-Agent`,`Authorization`]),J.reduceDescriptors(Y.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(e){this[n]=e}}}),J.freezeMethods(Y);var dc=`[REDACTED ****]`;function fc(e){if(J.hasOwnProp(e,`toJSON`))return!0;let t=Object.getPrototypeOf(e);for(;t&&t!==Object.prototype;){if(J.hasOwnProp(t,`toJSON`))return!0;t=Object.getPrototypeOf(t)}return!1}function pc(e,t){let n=new Set(t.map(e=>String(e).toLowerCase())),r=[],i=e=>{if(typeof e!=`object`||!e||J.isBuffer(e))return e;if(r.indexOf(e)!==-1)return;e instanceof Y&&(e=e.toJSON()),r.push(e);let t;if(J.isArray(e))t=[],e.forEach((e,n)=>{let r=i(e);J.isUndefined(r)||(t[n]=r)});else{if(!J.isPlainObject(e)&&fc(e))return r.pop(),e;t=Object.create(null);for(let[r,a]of Object.entries(e)){let e=n.has(r.toLowerCase())?dc:i(a);J.isUndefined(e)||(t[r]=e)}}return r.pop(),t};return i(e)}var X=class e extends Error{static from(t,n,r,i,a,o){let s=new e(t.message,n||t.code,r,i,a);return s.cause=t,s.name=t.name,t.status!=null&&s.status==null&&(s.status=t.status),o&&Object.assign(s,o),s}constructor(e,t,n,r,i){super(e),Object.defineProperty(this,"message",{__proto__:null,value:e,enumerable:!0,writable:!0,configurable:!0}),this.name=`AxiosError`,this.isAxiosError=!0,t&&(this.code=t),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i,this.status=i.status)}toJSON(){let e=this.config,t=e&&J.hasOwnProp(e,`redact`)?e.redact:void 0,n=J.isArray(t)&&t.length>0?pc(e,t):J.toJSONObject(e);return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:n,code:this.code,status:this.status}}};X.ERR_BAD_OPTION_VALUE=`ERR_BAD_OPTION_VALUE`,X.ERR_BAD_OPTION=`ERR_BAD_OPTION`,X.ECONNABORTED=`ECONNABORTED`,X.ETIMEDOUT=`ETIMEDOUT`,X.ECONNREFUSED=`ECONNREFUSED`,X.ERR_NETWORK=`ERR_NETWORK`,X.ERR_FR_TOO_MANY_REDIRECTS=`ERR_FR_TOO_MANY_REDIRECTS`,X.ERR_DEPRECATED=`ERR_DEPRECATED`,X.ERR_BAD_RESPONSE=`ERR_BAD_RESPONSE`,X.ERR_BAD_REQUEST=`ERR_BAD_REQUEST`,X.ERR_CANCELED=`ERR_CANCELED`,X.ERR_NOT_SUPPORT=`ERR_NOT_SUPPORT`,X.ERR_INVALID_URL=`ERR_INVALID_URL`,X.ERR_FORM_DATA_DEPTH_EXCEEDED=`ERR_FORM_DATA_DEPTH_EXCEEDED`;function mc(e){return J.isPlainObject(e)||J.isArray(e)}function hc(e){return J.endsWith(e,`[]`)?e.slice(0,-2):e}function gc(e,t,n){return e?e.concat(t).map(function(e,t){return e=hc(e),!n&&t?`[`+e+`]`:e}).join(n?`.`:``):t}function _c(e){return J.isArray(e)&&!e.some(mc)}var vc=J.toFlatObject(J,{},null,function(e){return/^is[A-Z]/.test(e)});function yc(e,t,n){if(!J.isObject(e))throw TypeError(`target must be an object`);t||=new FormData,n=J.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(e,t){return!J.isUndefined(t[e])});let r=n.metaTokens,i=n.visitor||m,a=n.dots,o=n.indexes,s=n.Blob||typeof Blob<`u`&&Blob,c=n.maxDepth===void 0?100:n.maxDepth,l=s&&J.isSpecCompliantForm(t),u=[];if(!J.isFunction(i))throw TypeError(`visitor must be a function`);function d(e){if(e===null)return``;if(J.isDate(e))return e.toISOString();if(J.isBoolean(e))return e.toString();if(!l&&J.isBlob(e))throw new X(`Blob is not supported. Use a Buffer instead.`);return J.isArrayBuffer(e)||J.isTypedArray(e)?l&&typeof Blob==`function`?new Blob([e]):Buffer.from(e):e}function f(e){if(e>c)throw new X(`Object is too deeply nested (`+e+` levels). Max depth: `+c,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function p(e,t){if(c===1/0)return JSON.stringify(e);let n=[];return JSON.stringify(e,function(e,r){if(!J.isObject(r))return r;for(;n.length&&n[n.length-1]!==this;)n.pop();return n.push(r),f(t+n.length-1),r})}function m(e,n,i){let s=e;if(J.isReactNative(t)&&J.isReactNativeBlob(e))return t.append(gc(i,n,a),d(e)),!1;if(e&&!i&&typeof e==`object`){if(J.endsWith(n,`{}`))n=r?n:n.slice(0,-2),e=p(e,1);else if(J.isArray(e)&&_c(e)||(J.isFileList(e)||J.endsWith(n,`[]`))&&(s=J.toArray(e)))return n=hc(n),s.forEach(function(e,r){!(J.isUndefined(e)||e===null)&&t.append(o===!0?gc([n],r,a):o===null?n:n+`[]`,d(e))}),!1}return mc(e)?!0:(t.append(gc(i,n,a),d(e)),!1)}let h=Object.assign(vc,{defaultVisitor:m,convertValue:d,isVisitable:mc});function g(e,n,r=0){if(!J.isUndefined(e)){if(f(r),u.indexOf(e)!==-1)throw Error(`Circular reference detected in `+n.join(`.`));u.push(e),J.forEach(e,function(e,a){(!(J.isUndefined(e)||e===null)&&i.call(t,e,J.isString(a)?a.trim():a,n,h))===!0&&g(e,n?n.concat(a):[a],r+1)}),u.pop()}}if(!J.isObject(e))throw TypeError(`data must be an object`);return g(e),t}function bc(e){let t={"!":`%21`,"'":`%27`,"(":`%28`,")":`%29`,"~":`%7E`,"%20":`+`};return encodeURIComponent(e).replace(/[!'()~]|%20/g,function(e){return t[e]})}function xc(e,t){this._pairs=[],e&&yc(e,this,t)}var Sc=xc.prototype;Sc.append=function(e,t){this._pairs.push([e,t])},Sc.toString=function(e){let t=e?function(t){return e.call(this,t,bc)}:bc;return this._pairs.map(function(e){return t(e[0])+`=`+t(e[1])},``).join(`&`)};function Cc(e){return encodeURIComponent(e).replace(/%3A/gi,`:`).replace(/%24/g,`$`).replace(/%2C/gi,`,`).replace(/%20/g,`+`)}function wc(e,t,n){if(!t)return e;let r=J.isFunction(n)?{serialize:n}:n,i=J.getSafeProp(r,`encode`)||Cc,a=J.getSafeProp(r,`serialize`),o;if(o=a?a(t,r):J.isURLSearchParams(t)?t.toString():new xc(t,r).toString(i),o){let t=e.indexOf(`#`);t!==-1&&(e=e.slice(0,t)),e+=(e.indexOf(`?`)===-1?`?`:`&`)+o}return e}var Tc=class{constructor(){this.handlers=[]}use(e,t,n){return this.handlers.push({fulfilled:e,rejected:t,synchronous:n?n.synchronous:!1,runWhen:n?n.runWhen:null}),this.handlers.length-1}eject(e){this.handlers[e]&&(this.handlers[e]=null)}clear(){this.handlers&&=[]}forEach(e){J.forEach(this.handlers,function(t){t!==null&&e(t)})}},Ec={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1,legacyInterceptorReqResOrdering:!0,advertiseZstdAcceptEncoding:!1,validateStatusUndefinedResolves:!0},Dc={isBrowser:!0,classes:{URLSearchParams:typeof URLSearchParams<`u`?URLSearchParams:xc,FormData:typeof FormData<`u`?FormData:null,Blob:typeof Blob<`u`?Blob:null},protocols:[`http`,`https`,`file`,`blob`,`url`,`data`]},Oc=s({hasBrowserEnv:()=>kc,hasStandardBrowserEnv:()=>jc,hasStandardBrowserWebWorkerEnv:()=>Mc,navigator:()=>Ac,origin:()=>Nc}),kc=typeof window<`u`&&typeof document<`u`,Ac=typeof navigator==`object`&&navigator||void 0,jc=kc&&(!Ac||[`ReactNative`,`NativeScript`,`NS`].indexOf(Ac.product)<0),Mc=typeof WorkerGlobalScope<`u`&&self instanceof WorkerGlobalScope&&typeof self.importScripts==`function`,Nc=kc&&window.location.href||`http://localhost`,Z={...Oc,...Dc};function Pc(e,t){return yc(e,new Z.classes.URLSearchParams,{visitor:function(e,t,n,r){return Z.isNode&&J.isBuffer(e)?(this.append(t,e.toString(`base64`)),!1):r.defaultVisitor.apply(this,arguments)},...t})}var Fc=100;function Ic(e){if(e>Fc)throw new X(`FormData field is too deeply nested (`+e+` levels). Max depth: `+Fc,X.ERR_FORM_DATA_DEPTH_EXCEEDED)}function Lc(e){let t=[],n=/\w+|\[(\w*)]/g,r;for(;(r=n.exec(e))!==null;)Ic(t.length),t.push(r[0]===`[]`?``:r[1]||r[0]);return t}function Rc(e){let t={},n=Object.keys(e),r,i=n.length,a;for(r=0;r=e.length;return a=!a&&J.isArray(r)?r.length:a,s?(J.hasOwnProp(r,a)?r[a]=J.isArray(r[a])?r[a].concat(n):[r[a],n]:r[a]=n,!o):((!J.hasOwnProp(r,a)||!J.isObject(r[a]))&&(r[a]=[]),t(e,n,r[a],i)&&J.isArray(r[a])&&(r[a]=Rc(r[a])),!o)}if(J.isFormData(e)&&J.isFunction(e.entries)){let n={};return J.forEachEntry(e,(e,r)=>{t(Lc(e),r,n,0)}),n}return null}var Bc=(e,t)=>e!=null&&J.hasOwnProp(e,t)?e[t]:void 0;function Vc(e,t,n){if(J.isString(e))try{return(t||JSON.parse)(e),J.trim(e)}catch(e){if(e.name!==`SyntaxError`)throw e}return(n||JSON.stringify)(e)}var Hc={transitional:Ec,adapter:[`xhr`,`http`,`fetch`],transformRequest:[function(e,t){let n=t.getContentType()||``,r=n.indexOf(`application/json`)>-1,i=J.isObject(e);if(i&&J.isHTMLForm(e)&&(e=new FormData(e)),J.isFormData(e))return r?JSON.stringify(zc(e)):e;if(J.isArrayBuffer(e)||J.isBuffer(e)||J.isStream(e)||J.isFile(e)||J.isBlob(e)||J.isReadableStream(e))return e;if(J.isArrayBufferView(e))return e.buffer;if(J.isURLSearchParams(e))return t.setContentType(`application/x-www-form-urlencoded;charset=utf-8`,!1),e.toString();let a;if(i){let t=Bc(this,`formSerializer`);if(n.indexOf(`application/x-www-form-urlencoded`)>-1)return Pc(e,t).toString();if((a=J.isFileList(e))||n.indexOf(`multipart/form-data`)>-1){let n=Bc(this,`env`),r=n&&n.FormData;return yc(a?{"files[]":e}:e,r&&new r,t)}}return i||r?(t.setContentType(`application/json`,!1),Vc(e)):e}],transformResponse:[function(e){let t=Bc(this,`transitional`)||Hc.transitional,n=t&&t.forcedJSONParsing,r=Bc(this,`responseType`),i=r===`json`;if(J.isResponse(e)||J.isReadableStream(e))return e;if(e&&J.isString(e)&&(n&&!r||i)){let n=!(t&&t.silentJSONParsing)&&i;try{return JSON.parse(e,Bc(this,`parseReviver`))}catch(e){if(n)throw e.name===`SyntaxError`?X.from(e,X.ERR_BAD_RESPONSE,this,null,Bc(this,`response`)):e}}return e}],timeout:0,xsrfCookieName:`XSRF-TOKEN`,xsrfHeaderName:`X-XSRF-TOKEN`,maxContentLength:-1,maxBodyLength:-1,env:{FormData:Z.classes.FormData,Blob:Z.classes.Blob},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:`application/json, text/plain, */*`,"Content-Type":void 0}}};J.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`],e=>{Hc.headers[e]={}});function Uc(e,t){let n=this||Hc,r=t||n,i=Y.from(r.headers),a=r.data;return J.forEach(e,function(e){a=e.call(n,a,i.normalize(),t?t.status:void 0)}),i.normalize(),a}function Wc(e){return!!(e&&e.__CANCEL__)}var Gc=class extends X{constructor(e,t,n){super(e??`canceled`,X.ERR_CANCELED,t,n),this.name=`CanceledError`,this.__CANCEL__=!0}};function Kc(e,t,n){let r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new X(`Request failed with status code `+n.status,n.status>=400&&n.status<500?X.ERR_BAD_REQUEST:X.ERR_BAD_RESPONSE,n.config,n.request,n))}function qc(e){let t=/^([-+\w]{1,25}):(?:\/\/)?/.exec(e);return t&&t[1]||``}function Jc(e,t){e||=10;let n=Array(e),r=Array(e),i=0,a=0,o;return t=t===void 0?1e3:t,function(s){let c=Date.now(),l=r[a];o||=c,n[i]=s,r[i]=c;let u=a,d=0;for(;u!==i;)d+=n[u++],u%=e;if(i=(i+1)%e,i===a&&(a=(a+1)%e),c-o{n=r,i=null,a&&=(clearTimeout(a),null),e(...t)};return[(...e)=>{let t=Date.now(),s=t-n;s>=r?o(e,t):(i=e,a||=setTimeout(()=>{a=null,o(i)},r-s))},()=>i&&o(i)]}var Xc=(e,t,n=3)=>{let r=0,i=Jc(50,250);return Yc(n=>{if(!n||typeof n.loaded!=`number`)return;let a=n.loaded,o=n.lengthComputable?n.total:void 0,s=o==null?a:Math.min(a,o),c=Math.max(0,s-r),l=i(c);r=Math.max(r,s),e({loaded:s,total:o,progress:o?s/o:void 0,bytes:c,rate:l||void 0,estimated:l&&o?(o-s)/l:void 0,event:n,lengthComputable:o!=null,[t?`download`:`upload`]:!0})},n)},Zc=(e,t)=>{let n=e!=null;return[r=>t[0]({lengthComputable:n,total:e,loaded:r}),t[1]]},Qc=e=>(...t)=>J.asap(()=>e(...t)),$c=Z.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Z.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Z.origin),Z.navigator&&/(msie|trident)/i.test(Z.navigator.userAgent)):()=>!0,el=Z.hasStandardBrowserEnv?{write(e,t,n,r,i,a,o){if(typeof document>`u`)return;let s=[`${e}=${encodeURIComponent(t)}`];J.isNumber(n)&&s.push(`expires=${new Date(n).toUTCString()}`),J.isString(r)&&s.push(`path=${r}`),J.isString(i)&&s.push(`domain=${i}`),a===!0&&s.push(`secure`),J.isString(o)&&s.push(`SameSite=${o}`),document.cookie=s.join(`; `)},read(e){if(typeof document>`u`)return null;let t=document.cookie.split(`;`);for(let n=0;ne instanceof Y?{...e}:e;function ul(e,t){t||={};let n=Object.create(null);Object.defineProperty(n,"hasOwnProperty",{__proto__:null,value:Object.prototype.hasOwnProperty,enumerable:!1,writable:!0,configurable:!0});function r(e,t,n,r){return J.isPlainObject(e)&&J.isPlainObject(t)?J.merge.call({caseless:r},e,t):J.isPlainObject(t)?J.merge({},t):J.isArray(t)?t.slice():t}function i(e,t,n,i){if(!J.isUndefined(t))return r(e,t,n,i);if(!J.isUndefined(e))return r(void 0,e,n,i)}function a(e,t){if(!J.isUndefined(t))return r(void 0,t)}function o(e,t){if(!J.isUndefined(t))return r(void 0,t);if(!J.isUndefined(e))return r(void 0,e)}function s(n){let r=J.hasOwnProp(t,`transitional`)?t.transitional:void 0;if(!J.isUndefined(r))if(J.isPlainObject(r)){if(J.hasOwnProp(r,n))return r[n]}else return;let i=J.hasOwnProp(e,`transitional`)?e.transitional:void 0;if(J.isPlainObject(i)&&J.hasOwnProp(i,n))return i[n]}function c(n,i,a){if(J.hasOwnProp(t,a))return r(n,i);if(J.hasOwnProp(e,a))return r(void 0,n)}let l={url:a,method:a,data:a,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,withXSRFToken:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,allowedSocketPaths:o,responseEncoding:o,validateStatus:c,headers:(e,t,n)=>i(ll(e),ll(t),n,!0)};return J.forEach(Object.keys({...e,...t}),function(r){if(r===`__proto__`||r===`constructor`||r===`prototype`)return;let a=J.hasOwnProp(l,r)?l[r]:i,o=a(J.hasOwnProp(e,r)?e[r]:void 0,J.hasOwnProp(t,r)?t[r]:void 0,r);J.isUndefined(o)&&a!==c||(n[r]=o)}),J.hasOwnProp(t,`validateStatus`)&&J.isUndefined(t.validateStatus)&&s(`validateStatusUndefinedResolves`)===!1&&(J.hasOwnProp(e,`validateStatus`)?n.validateStatus=r(void 0,e.validateStatus):delete n.validateStatus),n}var dl=[`content-type`,`content-length`];function fl(e,t,n){if(n!==`content-only`){e.set(t);return}Object.entries(t).forEach(([t,n])=>{dl.includes(t.toLowerCase())&&e.set(t,n)})}var pl=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16)));function ml(e){let t=ul({},e),n=e=>J.hasOwnProp(t,e)?t[e]:void 0,r=n(`data`),i=n(`withXSRFToken`),a=n(`xsrfHeaderName`),o=n(`xsrfCookieName`),s=n(`headers`),c=n(`auth`),l=n(`baseURL`),u=n(`allowAbsoluteUrls`),d=n(`url`);if(t.headers=s=Y.from(s),t.url=wc(cl(l,d,u,t),n(`params`),n(`paramsSerializer`)),c){let e=J.getSafeProp(c,`username`)||``,t=J.getSafeProp(c,`password`)||``;s.set(`Authorization`,`Basic `+btoa(e+`:`+(t?pl(t):``)))}if(J.isFormData(r)&&(Z.hasStandardBrowserEnv||Z.hasStandardBrowserWebWorkerEnv||J.isReactNative(r)?s.setContentType(void 0):J.isFunction(r.getHeaders)&&fl(s,r.getHeaders(),n(`formDataHeaderPolicy`))),Z.hasStandardBrowserEnv&&(J.isFunction(i)&&(i=i(t)),i===!0||i==null&&$c(t.url))){let e=a&&o&&el.read(o);e&&s.set(a,e)}return t}var hl=typeof XMLHttpRequest<`u`&&function(e){return new Promise(function(t,n){let r=ml(e),i=r.data,a=Y.from(r.headers).normalize(),{responseType:o,onUploadProgress:s,onDownloadProgress:c}=r,l,u,d,f,p;function m(){f&&f(),p&&p(),r.cancelToken&&r.cancelToken.unsubscribe(l),r.signal&&r.signal.removeEventListener(`abort`,l)}let h=new XMLHttpRequest;h.open(r.method.toUpperCase(),r.url,!0),h.timeout=r.timeout;function g(){if(!h)return;let r=Y.from(`getAllResponseHeaders`in h&&h.getAllResponseHeaders());Kc(function(e){t(e),m()},function(e){n(e),m()},{data:!o||o===`text`||o===`json`?h.responseText:h.response,status:h.status,statusText:h.statusText,headers:r,config:e,request:h}),h=null}`onloadend`in h?h.onloadend=g:h.onreadystatechange=function(){!h||h.readyState!==4||h.status===0&&!(h.responseURL&&h.responseURL.startsWith(`file:`))||setTimeout(g)},h.onabort=function(){h&&=(n(new X(`Request aborted`,X.ECONNABORTED,e,h)),m(),null)},h.onerror=function(t){let r=new X(t&&t.message?t.message:`Network Error`,X.ERR_NETWORK,e,h);r.event=t||null,n(r),m(),h=null},h.ontimeout=function(){let t=r.timeout?`timeout of `+r.timeout+`ms exceeded`:`timeout exceeded`,i=r.transitional||Ec;r.timeoutErrorMessage&&(t=r.timeoutErrorMessage),n(new X(t,i.clarifyTimeoutError?X.ETIMEDOUT:X.ECONNABORTED,e,h)),m(),h=null},i===void 0&&a.setContentType(null),`setRequestHeader`in h&&J.forEach(nc(a),function(e,t){h.setRequestHeader(t,e)}),J.isUndefined(r.withCredentials)||(h.withCredentials=!!r.withCredentials),o&&o!==`json`&&(h.responseType=r.responseType),c&&([d,p]=Xc(c,!0),h.addEventListener(`progress`,d)),s&&h.upload&&([u,f]=Xc(s),h.upload.addEventListener(`progress`,u),h.upload.addEventListener(`loadend`,f)),(r.cancelToken||r.signal)&&(l=t=>{h&&=(n(!t||t.type?new Gc(null,e,h):t),h.abort(),m(),null)},r.cancelToken&&r.cancelToken.subscribe(l),r.signal&&(r.signal.aborted?l():r.signal.addEventListener(`abort`,l)));let _=qc(r.url);if(_&&!Z.protocols.includes(_)){n(new X(`Unsupported protocol `+_+`:`,X.ERR_BAD_REQUEST,e));return}h.send(i||null)})},gl=(e,t)=>{if(e=e?e.filter(Boolean):[],!t&&!e.length)return;let n=new AbortController,r=!1,i=function(e){if(!r){r=!0,o();let t=e instanceof Error?e:this.reason;n.abort(t instanceof X?t:new Gc(t instanceof Error?t.message:t))}},a=t&&setTimeout(()=>{a=null,i(new X(`timeout of ${t}ms exceeded`,X.ETIMEDOUT))},t),o=()=>{e&&=(a&&clearTimeout(a),a=null,e.forEach(e=>{e.unsubscribe?e.unsubscribe(i):e.removeEventListener(`abort`,i)}),null)};e.forEach(e=>e.addEventListener(`abort`,i));let{signal:s}=n;return s.unsubscribe=()=>J.asap(o),s},_l=function*(e,t){let n=e.byteLength;if(!t||n{let i=vl(e,t),a=0,o,s=e=>{o||(o=!0,r&&r(e))};return new ReadableStream({async pull(e){try{let{done:t,value:r}=await i.next();if(t){s(),e.close();return}let o=r.byteLength;n&&n(a+=o),e.enqueue(new Uint8Array(r))}catch(e){throw s(e),e}},cancel(e){return s(e),i.return()}},{highWaterMark:2})},xl=e=>e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102,Sl=(e,t,n)=>t+2e>=2&&r.charCodeAt(e-2)===37&&r.charCodeAt(e-1)===51&&(r.charCodeAt(e)===68||r.charCodeAt(e)===100);i>=0&&(r.charCodeAt(i)===61?(n++,i--):a(i)&&(n++,i-=3)),n===1&&i>=0&&(r.charCodeAt(i)===61||a(i))&&n++;let o=Math.floor(e/4)*3-(n||0);return o>0?o:0}let i=0;for(let e=0,t=r.length;e=55296&&n<=56319&&e+1=56320&&t<=57343?(i+=4,e++):i+=3}else i+=3}return i}var wl=`1.18.0`,Tl=64*1024,{isFunction:El}=J,Dl=e=>encodeURIComponent(e).replace(/%([0-9A-F]{2})/gi,(e,t)=>String.fromCharCode(parseInt(t,16))),Ol=e=>{if(!J.isString(e))return e;try{return decodeURIComponent(e)}catch{return e}},kl=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Al=e=>{let t=e.indexOf(`://`),n=e;return t!==-1&&(n=n.slice(t+3)),n.includes(`@`)||n.includes(`:`)},jl=e=>{let t=J.global!==void 0&&J.global!==null?J.global:globalThis,{ReadableStream:n,TextEncoder:r}=t;e=J.merge.call({skipUndefined:!0},{Request:t.Request,Response:t.Response},e);let{fetch:i,Request:a,Response:o}=e,s=i?El(i):typeof fetch==`function`,c=El(a),l=El(o);if(!s)return!1;let u=s&&El(n),d=s&&(typeof r==`function`?(e=>t=>e.encode(t))(new r):async e=>new Uint8Array(await new a(e).arrayBuffer())),f=c&&u&&kl(()=>{let e=!1,t=new a(Z.origin,{body:new n,method:`POST`,get duplex(){return e=!0,`half`}}),r=t.headers.has(`Content-Type`);return t.body!=null&&t.body.cancel(),e&&!r}),p=l&&u&&kl(()=>J.isReadableStream(new o(``).body)),m={stream:p&&(e=>e.body)};s&&[`text`,`arrayBuffer`,`blob`,`formData`,`stream`].forEach(e=>{!m[e]&&(m[e]=(t,n)=>{let r=t&&t[e];if(r)return r.call(t);throw new X(`Response type '${e}' is not supported`,X.ERR_NOT_SUPPORT,n)})});let h=async e=>{if(e==null)return 0;if(J.isBlob(e))return e.size;if(J.isSpecCompliantForm(e))return(await new a(Z.origin,{method:`POST`,body:e}).arrayBuffer()).byteLength;if(J.isArrayBufferView(e)||J.isArrayBuffer(e))return e.byteLength;if(J.isURLSearchParams(e)&&(e+=``),J.isString(e))return(await d(e)).byteLength},g=async(e,t)=>J.toFiniteNumber(e.getContentLength())??h(t);return async e=>{let{url:t,method:n,data:s,signal:l,cancelToken:d,timeout:_,onDownloadProgress:v,onUploadProgress:y,responseType:b,headers:x,withCredentials:S=`same-origin`,fetchOptions:C,maxContentLength:w,maxBodyLength:T}=ml(e),E=J.isNumber(w)&&w>-1,D=J.isNumber(T)&&T>-1,O=t=>J.hasOwnProp(e,t)?e[t]:void 0,ee=i||fetch;b=b?(b+``).toLowerCase():`text`;let k=gl([l,d&&d.toAbortSignal()],_),A=null,te=k&&k.unsubscribe&&(()=>{k.unsubscribe()}),ne,re=null,j=()=>new X(`Request body larger than maxBodyLength limit`,X.ERR_BAD_REQUEST,e,A);try{let i,l=O(`auth`);if(l&&(i={username:J.getSafeProp(l,`username`)||``,password:J.getSafeProp(l,`password`)||``}),Al(t)){let e=new URL(t,Z.origin);!i&&(e.username||e.password)&&(i={username:Ol(e.username),password:Ol(e.password)}),(e.username||e.password)&&(e.username=``,e.password=``,t=e.href)}if(i&&(x.delete(`authorization`),x.set(`Authorization`,`Basic `+btoa(Dl((i.username||``)+`:`+(i.password||``))))),E&&typeof t==`string`&&t.startsWith(`data:`)&&Cl(t)>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,A);if(D&&n!==`get`&&n!==`head`){let e=await h(s);if(typeof e==`number`&&isFinite(e)&&(ne=e,e>T))throw j()}let d=D&&(J.isReadableStream(s)||J.isStream(s)),_=(e,t,n)=>bl(e,Tl,e=>{if(D&&e>T)throw re=j();t&&t(e)},n);if(f&&n!==`get`&&n!==`head`&&(y||d)){if(ne??=await g(x,s),ne!==0||d){let e=new a(t,{method:`POST`,body:s,duplex:`half`}),n;if(J.isFormData(s)&&(n=e.headers.get(`content-type`))&&x.setContentType(n),e.body){let[t,n]=y&&Zc(ne,Xc(Qc(y)))||[];s=_(e.body,t,n)}}}else if(d&&!c&&u&&n!==`get`&&n!==`head`)s=_(s);else if(d&&c&&!f&&n!==`get`&&n!==`head`)throw new X(`Stream request bodies are not supported by the current fetch implementation`,X.ERR_NOT_SUPPORT,e,A);J.isString(S)||(S=S?`include`:`omit`);let ie=c&&`credentials`in a.prototype;if(J.isFormData(s)){let e=x.getContentType();e&&/^multipart\/form-data/i.test(e)&&!/boundary=/i.test(e)&&x.delete(`content-type`)}x.set(`User-Agent`,`axios/`+wl,!1);let ae={...C,signal:k,method:n.toUpperCase(),headers:nc(x.normalize()),body:s,duplex:`half`,credentials:ie?S:void 0};A=c&&new a(t,ae);let M=await(c?ee(A,C):ee(t,ae)),oe=Y.from(M.headers);if(E){let t=J.toFiniteNumber(oe.getContentLength());if(t!=null&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,A)}let se=p&&(b===`stream`||b===`response`);if(p&&M.body&&(v||E||se&&te)){let t={};[`status`,`statusText`,`headers`].forEach(e=>{t[e]=M[e]});let n=J.toFiniteNumber(oe.getContentLength()),[r,i]=v&&Zc(n,Xc(Qc(v),!0))||[],a=0;M=new o(bl(M.body,Tl,t=>{if(E&&(a=t,a>w))throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,A);r&&r(t)},()=>{i&&i(),te&&te()}),t)}b||=`text`;let N=await m[J.findKey(m,b)||`text`](M,e);if(E&&!p&&!se){let t;if(N!=null&&(typeof N.byteLength==`number`?t=N.byteLength:typeof N.size==`number`?t=N.size:typeof N==`string`&&(t=typeof r==`function`?new r().encode(N).byteLength:N.length)),typeof t==`number`&&t>w)throw new X(`maxContentLength size of `+w+` exceeded`,X.ERR_BAD_RESPONSE,e,A)}return!se&&te&&te(),await new Promise((t,n)=>{Kc(t,n,{data:N,headers:Y.from(M.headers),status:M.status,statusText:M.statusText,config:e,request:A})})}catch(t){if(te&&te(),k&&k.aborted&&k.reason instanceof X){let n=k.reason;throw n.config=e,A&&(n.request=A),t!==n&&(n.cause=t),n}throw re?(A&&!re.request&&(re.request=A),re):t instanceof X?(A&&!t.request&&(t.request=A),t):t&&t.name===`TypeError`&&/Load failed|fetch/i.test(t.message)?Object.assign(new X(`Network Error`,X.ERR_NETWORK,e,A,t&&t.response),{cause:t.cause||t}):X.from(t,t&&t.code,e,A,t&&t.response)}}},Ml=new Map,Nl=e=>{let t=e&&e.env||{},{fetch:n,Request:r,Response:i}=t,a=[r,i,n],o=a.length,s,c,l=Ml;for(;o--;)s=a[o],c=l.get(s),c===void 0&&l.set(s,c=o?new Map:jl(t)),l=c;return c};Nl();var Pl={http:null,xhr:hl,fetch:{get:Nl}};J.forEach(Pl,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{__proto__:null,value:t})}catch{}Object.defineProperty(e,"adapterName",{__proto__:null,value:t})}});var Fl=e=>`- ${e}`,Il=e=>J.isFunction(e)||e===null||e===!1;function Ll(e,t){e=J.isArray(e)?e:[e];let{length:n}=e,r,i,a={};for(let o=0;o`adapter ${e} `+(t===!1?`is not supported by the environment`:`is not available in the build`));throw new X(`There is no suitable adapter to dispatch the request `+(n?e.length>1?`since : +`+e.map(Fl).join(` +`):` `+Fl(e[0]):`as no adapter specified`),`ERR_NOT_SUPPORT`)}return i}var Rl={getAdapter:Ll,adapters:Pl};function zl(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Gc(null,e)}function Bl(e){return zl(e),e.headers=Y.from(e.headers),e.data=Uc.call(e,e.transformRequest),[`post`,`put`,`patch`].indexOf(e.method)!==-1&&e.headers.setContentType(`application/x-www-form-urlencoded`,!1),Rl.getAdapter(e.adapter||Hc.adapter,e)(e).then(function(t){zl(e),e.response=t;try{t.data=Uc.call(e,e.transformResponse,t)}finally{delete e.response}return t.headers=Y.from(t.headers),t},function(t){if(!Wc(t)&&(zl(e),t&&t.response)){e.response=t.response;try{t.response.data=Uc.call(e,e.transformResponse,t.response)}finally{delete e.response}t.response.headers=Y.from(t.response.headers)}return Promise.reject(t)})}var Vl={};[`object`,`boolean`,`number`,`function`,`string`,`symbol`].forEach((e,t)=>{Vl[e]=function(n){return typeof n===e||`a`+(t<1?`n `:` `)+e}});var Hl={};Vl.transitional=function(e,t,n){function r(e,t){return`[Axios v`+wl+`] Transitional option '`+e+`'`+t+(n?`. `+n:``)}return(n,i,a)=>{if(e===!1)throw new X(r(i,` has been removed`+(t?` in `+t:``)),X.ERR_DEPRECATED);return t&&!Hl[i]&&(Hl[i]=!0,console.warn(r(i,` has been deprecated since v`+t+` and will be removed in the near future`))),e?e(n,i,a):!0}},Vl.spelling=function(e){return(t,n)=>(console.warn(`${n} is likely a misspelling of ${e}`),!0)};function Ul(e,t,n){if(typeof e!=`object`)throw new X(`options must be an object`,X.ERR_BAD_OPTION_VALUE);let r=Object.keys(e),i=r.length;for(;i-- >0;){let a=r[i],o=Object.prototype.hasOwnProperty.call(t,a)?t[a]:void 0;if(o){let t=e[a],n=t===void 0||o(t,a,e);if(n!==!0)throw new X(`option `+a+` must be `+n,X.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new X(`Unknown option `+a,X.ERR_BAD_OPTION)}}var Wl={assertOptions:Ul,validators:Vl},Q=Wl.validators,Gl=class{constructor(e){this.defaults=e||{},this.interceptors={request:new Tc,response:new Tc}}async request(e,t){try{return await this._request(e,t)}catch(e){if(e instanceof Error){let t={};Error.captureStackTrace?Error.captureStackTrace(t):t=Error();let n=(()=>{if(!t.stack)return``;let e=t.stack.indexOf(` +`);return e===-1?``:t.stack.slice(e+1)})();try{if(!e.stack)e.stack=n;else if(n){let t=n.indexOf(` +`),r=t===-1?-1:n.indexOf(` +`,t+1),i=r===-1?``:n.slice(r+1);String(e.stack).endsWith(i)||(e.stack+=` +`+n)}}catch{}}throw e}}_request(e,t){typeof e==`string`?(t||={},t.url=e):t=e||{},t=ul(this.defaults,t);let{transitional:n,paramsSerializer:r,headers:i}=t;n!==void 0&&Wl.assertOptions(n,{silentJSONParsing:Q.transitional(Q.boolean),forcedJSONParsing:Q.transitional(Q.boolean),clarifyTimeoutError:Q.transitional(Q.boolean),legacyInterceptorReqResOrdering:Q.transitional(Q.boolean),advertiseZstdAcceptEncoding:Q.transitional(Q.boolean),validateStatusUndefinedResolves:Q.transitional(Q.boolean)},!1),r!=null&&(J.isFunction(r)?t.paramsSerializer={serialize:r}:Wl.assertOptions(r,{encode:Q.function,serialize:Q.function},!0)),t.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls===void 0?t.allowAbsoluteUrls=!0:t.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls),Wl.assertOptions(t,{baseUrl:Q.spelling(`baseURL`),withXsrfToken:Q.spelling(`withXSRFToken`)},!0),t.method=(t.method||this.defaults.method||`get`).toLowerCase();let a=i&&J.merge(i.common,i[t.method]);i&&J.forEach([`delete`,`get`,`head`,`post`,`put`,`patch`,`query`,`common`],e=>{delete i[e]}),t.headers=Y.concat(a,i);let o=[],s=!0;this.interceptors.request.forEach(function(e){if(typeof e.runWhen==`function`&&e.runWhen(t)===!1)return;s&&=e.synchronous;let n=t.transitional||Ec;n&&n.legacyInterceptorReqResOrdering?o.unshift(e.fulfilled,e.rejected):o.push(e.fulfilled,e.rejected)});let c=[];this.interceptors.response.forEach(function(e){c.push(e.fulfilled,e.rejected)});let l,u=0,d;if(!s){let e=[Bl.bind(this),void 0];for(e.unshift(...o),e.push(...c),d=e.length,l=Promise.resolve(t);u{if(!n._listeners)return;let t=n._listeners.length;for(;t-- >0;)n._listeners[t](e);n._listeners=null}),this.promise.then=e=>{let t,r=new Promise(e=>{n.subscribe(e),t=e}).then(e);return r.cancel=function(){n.unsubscribe(t)},r},e(function(e,r,i){n.reason||(n.reason=new Gc(e,r,i),t(n.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(e){if(this.reason){e(this.reason);return}this._listeners?this._listeners.push(e):this._listeners=[e]}unsubscribe(e){if(!this._listeners)return;let t=this._listeners.indexOf(e);t!==-1&&this._listeners.splice(t,1)}toAbortSignal(){let e=new AbortController,t=t=>{e.abort(t)};return this.subscribe(t),e.signal.unsubscribe=()=>this.unsubscribe(t),e.signal}static source(){let t;return{token:new e(function(e){t=e}),cancel:t}}};function ql(e){return function(t){return e.apply(null,t)}}function Jl(e){return J.isObject(e)&&e.isAxiosError===!0}var Yl={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(Yl).forEach(([e,t])=>{Yl[t]=e});function Xl(e){let t=new Gl(e),n=No(Gl.prototype.request,t);return J.extend(n,Gl.prototype,t,{allOwnKeys:!0}),J.extend(n,t,null,{allOwnKeys:!0}),n.create=function(t){return Xl(ul(e,t))},n}var $=Xl(Hc);$.Axios=Gl,$.CanceledError=Gc,$.CancelToken=Kl,$.isCancel=Wc,$.VERSION=wl,$.toFormData=yc,$.AxiosError=X,$.Cancel=$.CanceledError,$.all=function(e){return Promise.all(e)},$.spread=ql,$.isAxiosError=Jl,$.mergeConfig=ul,$.AxiosHeaders=Y,$.formToJSON=e=>zc(J.isHTMLForm(e)?new FormData(e):e),$.getAdapter=Rl.getAdapter,$.HttpStatusCode=Yl,$.default=$;var Zl=$.create({baseURL:`/api/v1`,timeout:3e4});Zl.interceptors.request.use(e=>{let t=localStorage.getItem(`prism_token`);return t&&(e.headers.Authorization=`Bearer ${t}`),e});export{rr as $,Gr as A,T as At,hi as B,De as Bt,Za as C,_ as Ct,Ga as D,ue as Dt,$n as E,Te as Et,Qr as F,ee as Ft,Mr as G,ge as Gt,li as H,fe as Ht,ni as I,C as It,Ti as J,pe as Jt,Fr as K,Ae as Kt,ei as L,we as Lt,ti as M,O as Mt,$r as N,h as Nt,ao as O,x as Ot,Kr as P,ne as Pt,ir as Q,Ra as R,E as Rt,Ir as S,N as St,er as T,se as Tt,fi as U,xe as Ut,_i as V,Oe as Vt,di as W,Se as Wt,wr as X,s as Xt,wi as Y,o as Yt,Mo as Z,l as Zt,eo as _,fn as _t,U as a,R as at,Lr as b,p as bt,kn as c,qt as ct,Ya as d,Jt as dt,Yn as et,Wa as f,Xt as ft,gi as g,hn as gt,Sa as h,vn as ht,W as i,Qt as it,Zr as j,g as jt,Rn as k,w as kt,Qa as l,Yt as lt,Ua as m,L as mt,Ar as n,Pe as nt,yr as o,nn as ot,to as p,sn as pt,yi as q,ce as qt,Er as r,Fe as rt,Pa as s,Ie as st,Zl as t,Xn as tt,ko as u,on as ut,$a as v,un as vt,Ao as w,b as wt,uo as x,M as xt,G as y,dn as yt,Qn as z,D as zt}; \ No newline at end of file diff --git a/internal/api/static/assets/index-B4K9RppJ.js b/internal/api/static/assets/index-B4K9RppJ.js new file mode 100644 index 0000000..9d28621 --- /dev/null +++ b/internal/api/static/assets/index-B4K9RppJ.js @@ -0,0 +1,51 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/LoginView-CogloP1s.js","assets/client-CiT_nDm8.js","assets/DashboardView-BVv1KNO9.js","assets/AppCard-ClnBgZ-s.js","assets/SubscriptionsView-BwdRKwvh.js","assets/ProxiesView-CGCYPjQ-.js","assets/RulesView-4vpiUKI8.js","assets/LogsView-SE35ruFF.js","assets/SettingsView-D_MdXCJL.js"])))=>i.map(i=>d[i]); +import{$ as e,A as t,At as n,B as r,Bt as i,C as a,Ct as o,D as s,Dt as c,E as l,Et as u,F as d,Ft as f,G as p,Gt as m,H as h,Ht as g,I as _,It as v,J as y,Jt as b,K as x,Kt as S,L as C,Lt as w,M as T,Mt as E,N as D,Nt as O,O as k,Ot as A,P as ee,Pt as j,Q as M,R as N,Rt as P,S as te,St as ne,T as re,Tt as ie,U as ae,Ut as F,V as I,Vt as oe,W as L,Wt as se,X as ce,Y as le,Yt as ue,Z as de,Zt as fe,_ as pe,_t as me,a as R,at as he,b as z,bt as ge,c as _e,ct as ve,d as B,dt as ye,et as V,f as H,ft as be,g as xe,gt as Se,h as Ce,ht as we,i as Te,it as Ee,j as De,jt as Oe,k as U,kt as ke,l as Ae,lt as je,m as W,mt as Me,n as Ne,nt as Pe,o as Fe,ot as Ie,p as G,pt as Le,q as Re,qt as ze,r as Be,rt as Ve,s as He,st as Ue,t as We,tt as Ge,u as K,ut as q,v as Ke,vt as qe,w as Je,wt as Ye,x as Xe,xt as Ze,y as J,yt as Y,z as Qe,zt as $e}from"./client-CiT_nDm8.js";(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)}})();var et=void 0,tt=typeof window<`u`&&window.trustedTypes;if(tt)try{et=tt.createPolicy(`vue`,{createHTML:e=>e})}catch{}var nt=et?e=>et.createHTML(e):e=>e,rt=`http://www.w3.org/2000/svg`,it=`http://www.w3.org/1998/Math/MathML`,at=typeof document<`u`?document:null,ot=at&&at.createElement(`template`),st={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`?at.createElementNS(rt,e):t===`mathml`?at.createElementNS(it,e):n?at.createElement(e,{is:n}):at.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>at.createTextNode(e),createComment:e=>at.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>at.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{ot.innerHTML=nt(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=ot.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]}},ct=`transition`,lt=`animation`,ut=Symbol(`_vtc`),dt={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},ft=o({},Be,dt),pt=(e=>(e.displayName=`Transition`,e.props=ft,e))((e,{slots:t})=>Je(Ne,gt(e),t)),mt=(e,t=[])=>{A(e)?e.forEach(e=>e(...t)):e&&e(...t)},ht=e=>e?A(e)?e.some(e=>e.length>1):e.length>1:!1;function gt(e){let t={};for(let n in e)n in dt||(t[n]=e[n]);if(e.css===!1)return t;let{name:n=`v`,type:r,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:s=`${n}-enter-active`,enterToClass:c=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:u=s,appearToClass:d=c,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=_t(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,bt(e,t?d:c),bt(e,t?u:s),n&&n()},D=(e,t)=>{e._isLeaving=!1,bt(e,f),bt(e,m),bt(e,p),t&&t()},O=e=>(t,n)=>{let i=e?w:y,o=()=>E(t,e,n);mt(i,[t,o]),xt(()=>{bt(t,e?l:a),yt(t,e?d:c),ht(i)||Ct(t,r,g,o)})};return o(t,{onBeforeEnter(e){mt(v,[e]),yt(e,a),yt(e,s)},onBeforeAppear(e){mt(C,[e]),yt(e,l),yt(e,u)},onEnter:O(!1),onAppear:O(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>D(e,t);yt(e,f),e._enterCancelled?(yt(e,p),Dt(e)):(Dt(e),yt(e,p)),xt(()=>{e._isLeaving&&(bt(e,f),yt(e,m),ht(x)||Ct(e,r,_,n))}),mt(x,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),mt(b,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),mt(T,[e])},onLeaveCancelled(e){D(e),mt(S,[e])}})}function _t(e){if(e==null)return null;if(E(e))return[vt(e.enter),vt(e.leave)];{let t=vt(e);return[t,t]}}function vt(e){return b(e)}function yt(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[ut]||(e[ut]=new Set)).add(t)}function bt(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[ut];n&&(n.delete(t),n.size||(e[ut]=void 0))}function xt(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var St=0;function Ct(e,t,n,r){let i=e._endId=++St,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=wt(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(`${ct}Delay`),a=r(`${ct}Duration`),o=Tt(i,a),s=r(`${lt}Delay`),c=r(`${lt}Duration`),l=Tt(s,c),u=null,d=0,f=0;t===ct?o>0&&(u=ct,d=o,f=a.length):t===lt?l>0&&(u=lt,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?ct:lt:null,f=u?u===ct?a.length:c.length:0);let p=u===ct&&/\b(?:transform|all)(?:,|$)/.test(r(`${ct}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Tt(e,t){for(;e.lengthEt(t)+Et(e[n])))}function Et(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function Dt(e){return(e?e.ownerDocument:document).body.offsetHeight}function Ot(e,t,n){let r=e[ut];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var kt=Symbol(`_vod`),At=Symbol(`_vsh`),jt={name:`show`,beforeMount(e,{value:t},{transition:n}){e[kt]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):Mt(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),Mt(e,!0),r.enter(e)):r.leave(e,()=>{Mt(e,!1)}):Mt(e,t))},beforeUnmount(e,{value:t}){Mt(e,t)}};function Mt(e,t){e.style.display=t?e[kt]:`none`,e[At]=!t}var Nt=Symbol(``),Pt=/(?:^|;)\s*display\s*:/;function Ft(e,t,n){let r=e.style,i=P(n),a=!1;if(n&&!i){if(t)if(P(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??Lt(r,t,``)}else for(let e in t)n[e]??Lt(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?Lt(r,i,``):Vt(e,i,!P(t)&&t?t[i]:void 0,o)||Lt(r,i,o)}}else if(i){if(t!==n){let e=r[Nt];e&&(n+=`;`+e),r.cssText=n,a=Pt.test(n)}}else t&&e.removeAttribute(`style`);kt in e&&(e[kt]=a?r.display:``,e[At]&&(r.display=`none`))}var It=/\s*!important$/;function Lt(e,t,n){if(A(n))n.forEach(n=>Lt(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=Bt(e,t);It.test(n)?e.setProperty(ie(r),n.replace(It,``),`important`):e[r]=n}}var Rt=[`Webkit`,`Moz`,`ms`],zt={};function Bt(e,t){let n=zt[t];if(n)return n;let r=Ze(t);if(r!==`filter`&&r in e)return zt[t]=r;r=ne(r);for(let n=0;nZt||=(Qt.then(()=>Zt=0),Date.now());function en(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(A(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,nn=(e,t,n,r,i,a)=>{let o=i===`svg`;t===`class`?Ot(e,r,o):t===`style`?Ft(e,n,r):O(t)?Oe(t)||Jt(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):rn(e,t,r,o))?(Wt(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&Ut(e,t,r,o,a,t!==`value`)):e._isVueCE&&(an(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!P(r)))?Wt(e,Ze(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),Ut(e,t,r,o))};function rn(e,t,r,i){if(i)return!!(t===`innerHTML`||t===`textContent`||t in e&&tn(t)&&n(r));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 tn(t)&&P(r)?!1:t in e}function an(e,t){let n=e._def.props;if(!n)return!1;let r=Ze(t);return Array.isArray(n)?n.some(e=>Ze(e)===r):Object.keys(n).some(e=>Ze(e)===r)}var on=new WeakMap,sn=new WeakMap,cn=Symbol(`_moveCb`),ln=Symbol(`_enterCb`),un=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:o({},ft,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=Xe(),r=ce(),i,a;return C(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!hn(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(dn),i.forEach(fn);let r=i.filter(pn);Dt(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;yt(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[cn]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[cn]=null,bt(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=Me(e),s=gt(o),c=o.tag||R;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}=wt(r);return a.removeChild(r),o}var gn=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return A(t)?e=>c(t,e):t};function _n(e){e.target.composing=!0}function vn(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var yn=Symbol(`_assign`);function bn(e,t,n){return t&&(e=e.trim()),n&&(e=g(e)),e}var xn={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[yn]=gn(i);let a=r||i.props&&i.props.type===`number`;Gt(e,t?`change`:`input`,t=>{t.target.composing||e[yn](bn(e.value,n,a))}),(n||a)&&Gt(e,`change`,()=>{e.value=bn(e.value,n,a)}),t||(Gt(e,`compositionstart`,_n),Gt(e,`compositionend`,vn),Gt(e,`change`,vn))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[yn]=gn(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?g(e.value):e.value,c=t??``;if(s===c)return;let l=e.getRootNode();(l instanceof Document||l instanceof ShadowRoot)&&l.activeElement===e&&e.type!==`range`&&(r&&t===n||i&&e.value.trim()===c)||(e.value=c)}},Sn={deep:!0,created(e,t,n){e[yn]=gn(n),Gt(e,`change`,()=>{let t=e._modelValue,n=Tn(e),r=e.checked,i=e[yn];if(A(t)){let e=oe(t,n),a=e!==-1;if(r&&!a)i(t.concat(n));else if(!r&&a){let n=[...t];n.splice(e,1),i(n)}}else if(v(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(En(e,r))})},mounted:Cn,beforeUpdate(e,t,n){e[yn]=gn(n),Cn(e,t,n)}};function Cn(e,{value:t,oldValue:n},r){e._modelValue=t;let a;if(A(t))a=oe(t,r.props.value)>-1;else if(v(t))a=t.has(r.props.value);else{if(t===n)return;a=i(t,En(e,!0))}e.checked!==a&&(e.checked=a)}var wn={created(e,{value:t},n){e.checked=i(t,n.props.value),e[yn]=gn(n),Gt(e,`change`,()=>{e[yn](Tn(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[yn]=gn(r),t!==n&&(e.checked=i(t,r.props.value))}};function Tn(e){return`_value`in e?e._value:e.value}function En(e,t){let n=t?`_trueValue`:`_falseValue`;return n in e?e[n]:t}var Dn=[`ctrl`,`shift`,`alt`,`meta`],On={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>`button`in e&&e.button!==0,middle:e=>`button`in e&&e.button!==1,right:e=>`button`in e&&e.button!==2,exact:(e,t)=>Dn.some(n=>e[`${n}Key`]&&!t.includes(n))},kn=(e,t)=>{if(!e)return e;let n=e._withMods||={},r=t.join(`.`);return n[r]||(n[r]=((n,...r)=>{for(let e=0;e{let n=e._withKeys||={},r=t.join(`.`);return n[r]||(n[r]=(n=>{if(!(`key`in n))return;let r=ie(n.key);if(t.some(e=>e===r||An[e]===r))return e(n)}))},Mn=o({patchProp:nn},st),Nn;function Pn(){return Nn||=Ce(Mn)}var Fn=((...e)=>{Pn().render(...e)}),In=((...e)=>{let t=Pn().createApp(...e),{mount:r}=t;return t.mount=e=>{let i=Rn(e);if(!i)return;let a=t._component;!n(a)&&!a.render&&!a.template&&(a.template=i.innerHTML),i.nodeType===1&&(i.textContent=``);let o=r(i,!1,Ln(i));return i instanceof Element&&(i.removeAttribute(`v-cloak`),i.setAttribute(`data-v-app`,``)),o},t});function Ln(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function Rn(e){return P(e)?document.querySelector(e):e}var zn=typeof window<`u`,Bn,Vn=e=>Bn=e,Hn=Symbol();function Un(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Wn;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Wn||={});var Gn=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 Kn(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 qn(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Qn(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function Jn(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Yn(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 Xn=typeof navigator==`object`?navigator:{userAgent:``},Zn=/Macintosh/.test(Xn.userAgent)&&/AppleWebKit/.test(Xn.userAgent)&&!/Safari/.test(Xn.userAgent),Qn=zn?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Zn?$n:`msSaveOrOpenBlob`in Xn?er:tr:()=>{};function $n(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?Yn(r):Jn(r.href)?qn(e,t,n):(r.target=`_blank`,Yn(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Yn(r)},0))}function er(e,t=`download`,n){if(typeof e==`string`)if(Jn(e))qn(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Yn(t)})}else navigator.msSaveOrOpenBlob(Kn(e,n),t)}function tr(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return qn(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Gn.HTMLElement))||`safari`in Gn,o=/CriOS\/[\d]+/.test(navigator.userAgent);if((o||i&&a||Zn)&&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:nr}=Object;function rr(){let e=Pe(!0),t=e.run(()=>q({})),n=[],r=[],i=Ie({install(e){Vn(i),i._a=e,e.provide(Hn,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 ir=()=>{};function ar(e,t,n,r=ir){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&Ve()&&Ue(i),i}function or(e,...t){e.forEach(e=>{e(...t)})}var sr=e=>e(),cr=Symbol(),lr=Symbol();function ur(e,t){e instanceof Map&&t instanceof Map?t.forEach((t,n)=>e.set(n,t)):e instanceof Set&&t instanceof Set&&t.forEach(e.add,e);for(let n in t){if(!t.hasOwnProperty(n))continue;let r=t[n],i=e[n];Un(i)&&Un(r)&&e.hasOwnProperty(n)&&!he(r)&&!Ee(r)?e[n]=ur(i,r):e[n]=r}return e}var dr=Symbol();function fr(e){return!Un(e)||!Object.prototype.hasOwnProperty.call(e,dr)}var{assign:pr}=Object;function mr(e){return!!(he(e)&&e.effect)}function hr(e,t,n,r){let{state:i,actions:a,getters:o}=t,s=n.state.value[e],c;function l(){return s||(n.state.value[e]=i?i():{}),pr(Se(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Ie(K(()=>{Vn(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=gr(e,l,t,n,r,!0),c}function gr(e,t,n={},r,i,a){let o,s=pr({actions:{}},n),c={deep:!0},l,u,d=new Set,f=new Set,p=r.state.value[e];!a&&!p&&(r.state.value[e]={}),q({});let m;function h(t){let n;l=u=!1,typeof t==`function`?(t(r.state.value[e]),n={type:Wn.patchFunction,storeId:e,events:void 0}):(ur(r.state.value[e],t),n={type:Wn.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();U().then(()=>{m===i&&(l=!0)}),u=!0,or(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{pr(e,t)})}:ir;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(cr in t)return t[lr]=n,t;let i=function(){Vn(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}or(f,{args:n,name:i[lr],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw or(o,e),e}return l instanceof Promise?l.then(e=>(or(a,e),e)).catch(e=>(or(o,e),Promise.reject(e))):(or(a,l),l)};return i[cr]=!0,i[lr]=n,i},y=ve({_p:r,$id:e,$onAction:ar.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=ar(d,t,n.detached,()=>a()),a=o.run(()=>M(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Wn.direct,events:void 0},r)},pr({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||sr)(()=>r._e.run(()=>(o=Pe()).run(()=>t({action:v}))));for(let t in b){let n=b[t];he(n)&&!mr(n)||Ee(n)?a||(p&&fr(n)&&(he(n)?n.value=p[t]:ur(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return pr(y,b),pr(Me(y),b),Object.defineProperty(y,"$state",{get:()=>r.state.value[e],set:e=>{h(t=>{pr(t,e)})}}),r._p.forEach(e=>{pr(y,o.run(()=>e({store:y,app:r._a,pinia:r,options:s})))}),p&&a&&n.hydrate&&n.hydrate(y.$state,p),l=!0,u=!0,y}function _r(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=re();return n||=o?l(Hn,null):null,n&&Vn(n),n=Bn,n._s.has(e)||(i?gr(e,t,r,n):hr(e,r,n)),n._s.get(e)}return a.$id=e,a}var X={tab:`Tab`,enter:`Enter`,space:`Space`,left:`ArrowLeft`,up:`ArrowUp`,right:`ArrowRight`,down:`ArrowDown`,esc:`Escape`,delete:`Delete`,backspace:`Backspace`,numpadEnter:`NumpadEnter`,pageUp:`PageUp`,pageDown:`PageDown`,home:`Home`,end:`End`},vr=[`year`,`years`,`month`,`months`,`date`,`dates`,`week`,`datetime`,`datetimerange`,`daterange`,`monthrange`,`yearrange`],yr=[`sun`,`mon`,`tue`,`wed`,`thu`,`fri`,`sat`],br=`update:modelValue`,xr=`change`,Sr=`input`,Cr=Symbol(`INSTALLED_KEY`),wr=[``,`default`,`small`,`large`],Tr=[`left`,`center`,`right`],Er=typeof global==`object`&&global&&global.Object===Object&&global,Dr=typeof self==`object`&&self&&self.Object===Object&&self,Or=Er||Dr||Function(`return this`)(),kr=Or.Symbol,Ar=Object.prototype,jr=Ar.hasOwnProperty,Mr=Ar.toString,Nr=kr?kr.toStringTag:void 0;function Pr(e){var t=jr.call(e,Nr),n=e[Nr];try{e[Nr]=void 0;var r=!0}catch{}var i=Mr.call(e);return r&&(t?e[Nr]=n:delete e[Nr]),i}var Fr=Object.prototype.toString;function Ir(e){return Fr.call(e)}var Lr=`[object Null]`,Rr=`[object Undefined]`,zr=kr?kr.toStringTag:void 0;function Br(e){return e==null?e===void 0?Rr:Lr:zr&&zr in Object(e)?Pr(e):Ir(e)}function Vr(e){return typeof e==`object`&&!!e}var Hr=`[object Symbol]`;function Ur(e){return typeof e==`symbol`||Vr(e)&&Br(e)==Hr}function Wr(e,t){for(var n=-1,r=e==null?0:e.length,i=Array(r);++n0){if(++t>=Ri)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function Hi(e){return function(){return e}}var Ui=function(){try{var e=ji(Object,`defineProperty`);return e({},``,{}),e}catch{}}(),Wi=Vi(Ui?function(e,t){return Ui(e,`toString`,{configurable:!0,enumerable:!1,value:Hi(t),writable:!0})}:di);function Gi(e,t){for(var n=-1,r=e==null?0:e.length;++n-1}var Zi=9007199254740991,Qi=/^(?:0|[1-9]\d*)$/;function $i(e,t){var n=typeof e;return t??=Zi,!!t&&(n==`number`||n!=`symbol`&&Qi.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=ca}function ua(e){return e!=null&&la(e.length)&&!gi(e)}function da(e,t,n){if(!ei(n))return!1;var r=typeof t;return(r==`number`?ua(n)&&$i(t,n.length):r==`string`&&t in n)?ta(n[t],e):!1}function fa(e){return sa(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&&da(n[0],n[1],o)&&(a=i<3?void 0:a,i=1),t=Object(t);++r-1}function Ro(e,t){var n=this.__data__,r=No(n,e);return r<0?(++this.size,n.push([e,t])):n[r][1]=t,this}function zo(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(s)?t>1?ds(s,t-1,n,r,i):cs(i,s):r||(i[i.length]=s)}return i}function fs(e){return e!=null&&e.length?ds(e,1):[]}function ps(e){return Wi(oa(e,void 0,fs),e+``)}var ms=co(Object.getPrototypeOf,Object),hs=`[object Object]`,gs=Function.prototype,_s=Object.prototype,vs=gs.toString,ys=_s.hasOwnProperty,bs=vs.call(Object);function xs(e){if(!Vr(e)||Br(e)!=hs)return!1;var t=ms(e);if(t===null)return!0;var n=ys.call(t,`constructor`)&&t.constructor;return typeof n==`function`&&n instanceof n&&vs.call(n)==bs}function Ss(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=t?e:t)),e}function Ts(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=oi(n),n=n===n?n:0),t!==void 0&&(t=oi(t),t=t===t?t:0),ws(oi(e),t,n)}function Es(){this.__data__=new zo,this.size=0}function Ds(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function Os(e){return this.__data__.get(e)}function ks(e){return this.__data__.has(e)}var As=200;function js(e,t){var n=this.__data__;if(n instanceof zo){var r=n.__data__;if(!Bo||r.lengths))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&Bl?new Il:void 0;for(a.set(e,t),a.set(t,e);++d=t||n<0||d&&r>=a}function _(){var e=Ru();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(Ru())}function x(){var e=Ru(),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 Uu(e,t,n){(n!==void 0&&!ta(e[t],n)||n===void 0&&!(t in e))&&ea(e,t,n)}function Wu(e){return Vr(e)&&ua(e)}function Gu(e,t){if(!(t===`constructor`&&typeof e[t]==`function`)&&t!=`__proto__`)return e[t]}function Ku(e){return ia(e,_o(e))}function qu(e,t,n,r,i,a,o){var s=Gu(e,n),c=Gu(t,n),l=o.get(c);if(l){Uu(e,n,l);return}var u=a?a(s,c,n+``,e,t,o):void 0,d=u===void 0;if(d){var f=Gr(c),p=!f&&Ea(c),m=!f&&!p&&ao(c);u=c,f||p||m?Gr(s)?u=s:Wu(s)?u=Li(s):p?(d=!1,u=zs(c,!0)):m?(d=!1,u=Cc(c,!0)):u=[]:xs(c)||xa(c)?(u=s,xa(s)?u=Ku(s):(!ei(s)||gi(s))&&(u=Wc(c))):d=!1}d&&(o.set(c,u),i(u,c,r,a,o),o.delete(c)),Uu(e,n,u)}function Ju(e,t,n,r,i){e!==t&&Pu(t,function(a,o){if(i||=new Ms,ei(a))qu(e,t,o,n,Ju,r,i);else{var s=r?r(Gu(e,o),a,o+``,e,t,i):void 0;s===void 0&&(s=a),Uu(e,o,s)}},_o)}function Yu(e,t,n){for(var r=-1,i=e==null?0:e.length;++r1,t}),ia(e,Xs(e),n),r&&(n=kl(n,hd|gd|_d,md));for(var i=t.length;i--;)pd(n,t[i]);return n});function yd(e,t,n,r){if(!ei(e))return e;t=rs(t,e);for(var i=-1,a=t.length,o=a-1,s=e;s!=null&&++i=Dd){var l=t?null:Ed(e);if(l)return Ul(l);o=!1,i=Rl,c=new Il}else c=t?[]:s;outer:for(;++re===void 0,jd=e=>typeof e==`boolean`,Md=e=>typeof e==`number`,Nd=e=>!e&&e!==0||A(e)&&e.length===0||E(e)&&!Object.keys(e).length,Pd=e=>typeof Element>`u`?!1:e instanceof Element,Fd=e=>cd(e),Id=e=>P(e)?!Number.isNaN(Number(e)):!1,Ld=e=>e===window,Rd=e=>Object.keys(e),zd=e=>Object.entries(e),Bd=(e,t,n)=>({get value(){return ss(e,t,n)},set value(n){Cd(e,t,n)}}),Vd=`__epPropKey`,Z=e=>e,Hd=e=>E(e)&&!!e.__epPropKey,Ud=(e,t)=>{if(!E(e)||Hd(e))return e;let{values:n,required:r,default:i,type:a,validator:o}=e,s={type:a,required:!!r,validator:n||o?r=>{let a=!1,s=[];if(n&&(s=Array.from(n),Ye(e,`default`)&&s.push(i),a||=s.includes(r)),o&&(a||=o(r)),!a&&s.length>0){let e=[...new Set(s)].map(e=>JSON.stringify(e)).join(`, `);de(`Invalid prop: validation failed${t?` for prop "${t}"`:``}. Expected one of [${e}], got value ${JSON.stringify(r)}.`)}return a}:void 0,[Vd]:!0};return Ye(e,`default`)&&(s.default=i),s},Q=e=>ad(Object.entries(e).map(([e,t])=>[e,Ud(t,e)])),Wd=Q({zIndex:{type:Z([Number,String]),default:100},target:{type:String,default:``},offset:{type:Number,default:0},position:{type:String,values:[`top`,`bottom`],default:`top`},teleported:Boolean,appendTo:{type:Z([String,Object]),default:`body`}}),Gd={scroll:({scrollTop:e,fixed:t})=>Md(e)&&jd(t),[xr]:e=>jd(e)},Kd=class extends Error{constructor(e){super(e),this.name=`ElementPlusError`}};function qd(e,t){throw new Kd(`[${e}] ${t}`)}function Jd(e,t){{let n=P(e)?new Kd(`[${e}] ${t}`):e;console.warn(n)}}var Yd=[`class`,`style`],Xd=/^on[A-Z]/,Zd=(e={})=>{let{excludeListeners:t=!1,excludeKeys:n}=e,r=K(()=>(n?.value||[]).concat(Yd)),i=Xe();return i?K(()=>ad(Object.entries(i.proxy?.$attrs).filter(([e])=>!r.value.includes(e)&&!(t&&Xd.test(e))))):(Jd(`use-attrs`,`getCurrentInstance() returned null. useAttrs() must be called at the top of a setup function`),K(()=>({})))};function Qd(t,n){let r=Le();return e(()=>{r.value=t()},{...n,flush:n?.flush??`sync`}),je(r)}function $d(e,t){return Ve()?(Ue(e,t),!0):!1}var ef=new WeakMap,tf=(...e)=>{let t=e[0],n=Xe()?.proxy??Ve();if(n==null&&!re())throw Error(`injectLocal must be called in setup`);return n&&ef.has(n)&&t in ef.get(n)?ef.get(n)[t]:l(...e)},nf=typeof window<`u`&&typeof document<`u`;typeof WorkerGlobalScope<`u`&&globalThis instanceof WorkerGlobalScope;var rf=e=>e!==void 0,af=e=>e!=null,of=Object.prototype.toString,sf=e=>of.call(e)===`[object Object]`,cf=(e,t,n)=>Math.min(n,Math.max(t,e)),lf=()=>{},uf=df();function df(){var e,t;return nf&&!!(!((e=window)==null||(e=e.navigator)==null)&&e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window)==null||(t=t.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window?.navigator.userAgent))}function ff(e,t){function n(...n){return new Promise((r,i)=>{Promise.resolve(e(()=>t.apply(this,n),{fn:t,thisArg:this,args:n})).then(r).catch(i)})}return n}function pf(e,t={}){let n,r,i=lf,a=e=>{clearTimeout(e),i(),i=lf},o;return s=>{let c=me(e),l=me(t.maxWait);return n&&a(n),c<=0||l!==void 0&&l<=0?(r&&=(a(r),void 0),Promise.resolve(s())):new Promise((e,u)=>{i=t.rejectOnCancel?u:e,o=s,l&&!r&&(r=setTimeout(()=>{n&&a(n),r=void 0,e(o())},l)),n=setTimeout(()=>{r&&a(r),r=void 0,e(s())},c)})}}function mf(...e){let t=0,n,r=!0,i=lf,a,o,s,c,l;!he(e[0])&&typeof e[0]==`object`?{delay:o,trailing:s=!0,leading:c=!0,rejectOnCancel:l=!1}=e[0]:[o,s=!0,c=!0,l=!1]=e;let u=()=>{n&&(clearTimeout(n),n=void 0,i(),i=lf)};return e=>{let d=me(o),f=Date.now()-t,p=()=>a=e();return u(),d<=0?(t=Date.now(),p()):(f>d?(t=Date.now(),(c||!r)&&p()):s&&(a=new Promise((e,a)=>{i=l?a:e,n=setTimeout(()=>{t=Date.now(),r=!0,e(p()),u()},Math.max(0,d-f))})),!c&&!n&&(n=setTimeout(()=>r=!0,d)),r=!1,a)}}function hf(e){return e.endsWith(`rem`)?Number.parseFloat(e)*16:Number.parseFloat(e)}function gf(e){return Array.isArray(e)?e:[e]}function _f(e){return e||Xe()}function vf(e){return he(e)?ve(new Proxy({},{get(t,n,r){return Y(Reflect.get(e.value,n,r))},set(t,n,r){return he(e.value[n])&&!he(r)?e.value[n].value=r:e.value[n]=r,!0},deleteProperty(t,n){return Reflect.deleteProperty(e.value,n)},has(t,n){return Reflect.has(e.value,n)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}})):ve(e)}function yf(e){return vf(K(e))}function bf(e,t=200,n={}){return ff(pf(t,n),e)}function xf(e,t=200,n={}){let r=q(me(e)),i=bf(()=>{r.value=e.value},t,n);return M(e,()=>i()),be(r)}function Sf(e,t=200,n=!1,r=!0,i=!1){return ff(mf(t,n,r,i),e)}function Cf(e,t=!0,n){_f(n)?d(e,n):t?e():U(e)}function wf(e,t,n={}){let{immediate:r=!0,immediateCallback:i=!1}=n,a=Le(!1),o;function s(){o&&=(clearTimeout(o),void 0)}function c(){a.value=!1,s()}function l(...n){i&&e(),s(),a.value=!0,o=setTimeout(()=>{a.value=!1,o=void 0,e(...n)},me(t))}return r&&(a.value=!0,nf&&l()),$d(c),{isPending:be(a),start:l,stop:c}}function Tf(e,t,n){return M(e,t,{...n,immediate:!0})}var Ef=nf?window:void 0,Df=nf?window.document:void 0;nf&&window.navigator,nf&&window.location;function Of(e){let t=me(e);return t?.$el??t}function kf(...e){let t=(e,t,n,r)=>(e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r)),n=K(()=>{let t=gf(me(e[0])).filter(e=>e!=null);return t.every(e=>typeof e!=`string`)?t:void 0});return Tf(()=>[n.value?.map(e=>Of(e))??[Ef].filter(e=>e!=null),gf(me(n.value?e[1]:e[0])),gf(Y(n.value?e[2]:e[1])),me(n.value?e[3]:e[2])],([e,n,r,i],a,o)=>{if(!e?.length||!n?.length||!r?.length)return;let s=sf(i)?{...i}:i,c=e.flatMap(e=>n.flatMap(n=>r.map(r=>t(e,n,r,s))));o(()=>{c.forEach(e=>e())})},{flush:`post`})}var Af=!1;function jf(e,t,n={}){let{window:r=Ef,ignore:i=[],capture:a=!0,detectIframe:o=!1,controls:s=!1}=n;if(!r)return s?{stop:lf,cancel:lf,trigger:lf}:lf;if(uf&&!Af){Af=!0;let e={passive:!0};Array.from(r.document.body.children).forEach(t=>t.addEventListener(`click`,lf,e)),r.document.documentElement.addEventListener(`click`,lf,e)}let c=!0,l=e=>me(i).some(t=>{if(typeof t==`string`)return Array.from(r.document.querySelectorAll(t)).some(t=>t===e.target||e.composedPath().includes(t));{let n=Of(t);return n&&(e.target===n||e.composedPath().includes(n))}});function u(e){let t=me(e);return t&&t.$.subTree.shapeFlag===16}function d(e,t){let n=me(e),r=n.$.subTree&&n.$.subTree.children;return r==null||!Array.isArray(r)?!1:r.some(e=>e.el===t.target||t.composedPath().includes(e.el))}let f=n=>{let r=Of(e);if(n.target!=null&&!(!(r instanceof Element)&&u(e)&&d(e,n))&&!(!r||r===n.target||n.composedPath().includes(r))){if(`detail`in n&&n.detail===0&&(c=!l(n)),!c){c=!0;return}t(n)}},p=!1,m=[kf(r,`click`,e=>{p||(p=!0,setTimeout(()=>{p=!1},0),f(e))},{passive:!0,capture:a}),kf(r,`pointerdown`,t=>{let n=Of(e);c=!l(t)&&!!(n&&!t.composedPath().includes(n))},{passive:!0}),o&&kf(r,`blur`,n=>{setTimeout(()=>{let i=Of(e),a=r.document.activeElement;for(;a?.shadowRoot;)a=a.shadowRoot.activeElement;a?.tagName===`IFRAME`&&!i?.contains(r.document.activeElement)&&t(n)},0)},{passive:!0})].filter(Boolean),h=()=>m.forEach(e=>e());return s?{stop:h,cancel:()=>{c=!1},trigger:e=>{c=!0,f(e),c=!1}}:h}function Mf(){let e=Le(!1),t=Xe();return t&&d(()=>{e.value=!0},t),e}function Nf(e){let t=Mf();return K(()=>(t.value,!!e()))}function Pf(e,t,n={}){let{window:r=Ef,...i}=n,a,o=Nf(()=>r&&`MutationObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=M(K(()=>{let t=gf(me(e)).map(Of).filter(af);return new Set(t)}),e=>{s(),o.value&&e.size&&(a=new MutationObserver(t),e.forEach(e=>a.observe(e,i)))},{immediate:!0,flush:`post`}),l=()=>a?.takeRecords(),u=()=>{c(),s()};return $d(u),{isSupported:o,stop:u,takeRecords:l}}function Ff(t,n,r={}){let{window:i=Ef,document:a=i?.document,flush:o=`sync`}=r;if(!i||!a)return lf;let s,c=e=>{s?.(),s=e},l=e(()=>{let e=Of(t);if(e){let{stop:t}=Pf(a,t=>{t.map(e=>[...e.removedNodes]).flat().some(t=>t===e||t.contains(e))&&n(t)},{window:i,childList:!0,subtree:!0});c(t)}},{flush:o}),u=()=>{l(),c()};return $d(u),u}function If(e={}){let{window:t=Ef,deep:n=!0,triggerOnRemoval:r=!1}=e,i=e.document??t?.document,a=()=>{let e=i?.activeElement;if(n)for(var t;e?.shadowRoot;)e=e==null||(t=e.shadowRoot)==null?void 0:t.activeElement;return e},o=Le(),s=()=>{o.value=a()};if(t){let e={capture:!0,passive:!0};kf(t,`blur`,e=>{e.relatedTarget===null&&s()},e),kf(t,`focus`,s,e)}return r&&Ff(o,s,{document:i}),s(),o}var Lf=Symbol(`vueuse-ssr-width`);function Rf(){let e=re()?tf(Lf,null):null;return typeof e==`number`?e:void 0}function zf(t,n={}){let{window:r=Ef,ssrWidth:i=Rf()}=n,a=Nf(()=>r&&`matchMedia`in r&&typeof r.matchMedia==`function`),o=Le(typeof i==`number`),s=Le(),c=Le(!1);return e(()=>{if(o.value){o.value=!a.value,c.value=me(t).split(`,`).some(e=>{let t=e.includes(`not all`),n=e.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),r=e.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/),a=!!(n||r);return n&&a&&(a=i>=hf(n[1])),r&&a&&(a=i<=hf(r[1])),t?!a:a});return}a.value&&(s.value=r.matchMedia(me(t)),c.value=s.value.matches)}),kf(s,`change`,e=>{c.value=e.matches},{passive:!0}),K(()=>c.value)}function Bf(e){return JSON.parse(JSON.stringify(e))}function Vf(e,t,n={}){let{window:r=Ef,initialValue:i,observe:a=!1}=n,o=Le(i),s=K(()=>{var e;return Of(t)||(r==null||(e=r.document)==null?void 0:e.documentElement)});function c(){let t=me(e),n=me(s);n&&r&&t&&(o.value=r.getComputedStyle(n).getPropertyValue(t)?.trim()||o.value||i)}return a&&Pf(s,c,{attributeFilter:[`style`,`class`],window:r}),M([s,()=>me(e)],(e,t)=>{t[0]&&t[1]&&t[0].style.removeProperty(t[1]),c()},{immediate:!0}),M([o,s],([t,n])=>{let r=me(e);n?.style&&r&&(t==null?n.style.removeProperty(r):n.style.setProperty(r,t))},{immediate:!0}),o}function Hf(e={}){let{document:t=Df}=e;if(!t)return Le(`visible`);let n=Le(t.visibilityState);return kf(t,`visibilitychange`,()=>{n.value=t.visibilityState},{passive:!0}),n}function Uf(e,t,n={}){let{window:r=Ef,...i}=n,a,o=Nf(()=>r&&`ResizeObserver`in r),s=()=>{a&&=(a.disconnect(),void 0)},c=M(K(()=>{let t=me(e);return Array.isArray(t)?t.map(e=>Of(e)):[Of(t)]}),e=>{if(s(),o.value&&r){a=new ResizeObserver(t);for(let t of e)t&&a.observe(t,i)}},{immediate:!0,flush:`post`}),l=()=>{s(),c()};return $d(l),{isSupported:o,stop:l}}function Wf(e,t={}){let{reset:n=!0,windowResize:r=!0,windowScroll:i=!0,immediate:a=!0,updateTiming:o=`sync`}=t,s=Le(0),c=Le(0),l=Le(0),u=Le(0),d=Le(0),f=Le(0),p=Le(0),m=Le(0);function h(){let t=Of(e);if(!t){n&&(s.value=0,c.value=0,l.value=0,u.value=0,d.value=0,f.value=0,p.value=0,m.value=0);return}let r=t.getBoundingClientRect();s.value=r.height,c.value=r.bottom,l.value=r.left,u.value=r.right,d.value=r.top,f.value=r.width,p.value=r.x,m.value=r.y}function g(){o===`sync`?h():o===`next-frame`&&requestAnimationFrame(()=>h())}return Uf(e,g),M(()=>Of(e),e=>!e&&g()),Pf(e,g,{attributeFilter:[`style`,`class`]}),i&&kf(`scroll`,g,{capture:!0,passive:!0}),r&&kf(`resize`,g,{passive:!0}),Cf(()=>{a&&g()}),{height:s,bottom:c,left:l,right:u,top:d,width:f,x:p,y:m,update:g}}function Gf(e,t={width:0,height:0},n={}){let{window:r=Ef,box:i=`content-box`}=n,a=K(()=>{var t;return(t=Of(e))==null||(t=t.namespaceURI)==null?void 0:t.includes(`svg`)}),o=Le(t.width),s=Le(t.height),{stop:c}=Uf(e,([t])=>{let n=i===`border-box`?t.borderBoxSize:i===`content-box`?t.contentBoxSize:t.devicePixelContentBoxSize;if(r&&a.value){let t=Of(e);if(t){let e=t.getBoundingClientRect();o.value=e.width,s.value=e.height}}else if(n){let e=gf(n);o.value=e.reduce((e,{inlineSize:t})=>e+t,0),s.value=e.reduce((e,{blockSize:t})=>e+t,0)}else o.value=t.contentRect.width,s.value=t.contentRect.height},n);Cf(()=>{let n=Of(e);n&&(o.value=`offsetWidth`in n?n.offsetWidth:t.width,s.value=`offsetHeight`in n?n.offsetHeight:t.height)});let l=M(()=>Of(e),e=>{o.value=e?t.width:0,s.value=e?t.height:0});function u(){c(),l()}return{width:o,height:s,stop:u}}function Kf(e,t,n={}){let{root:r,rootMargin:i,threshold:a=0,window:o=Ef,immediate:s=!0}=n,c=Nf(()=>o&&`IntersectionObserver`in o),l=K(()=>gf(me(e)).map(Of).filter(af)),u=lf,d=Le(s),f=c.value?M(()=>[l.value,Of(r),me(i),d.value],([e,n,r])=>{if(u(),!d.value||!e.length)return;let i=new IntersectionObserver(t,{root:Of(n),rootMargin:r,threshold:a});e.forEach(e=>e&&i.observe(e)),u=()=>{i.disconnect(),u=lf}},{immediate:s,flush:`post`}):lf,p=()=>{u(),f(),d.value=!1};return $d(p),{isSupported:c,isActive:d,pause(){u(),d.value=!1},resume(){d.value=!0},stop:p}}function qf(e,t,n,r={}){var i,a;let{clone:o=!1,passive:s=!1,eventName:c,deep:l=!1,defaultValue:u,shouldEmit:d}=r,f=Xe(),p=n||f?.emit||(f==null||(i=f.$emit)==null?void 0:i.bind(f))||(f==null||(a=f.proxy)==null||(a=a.$emit)==null?void 0:a.bind(f?.proxy)),m=c;t||=`modelValue`,m||=`update:${t.toString()}`;let h=e=>o?typeof o==`function`?o(e):Bf(e):e,g=()=>rf(e[t])?h(e[t]):u,_=e=>{d?d(e)&&p(m,e):p(m,e)};if(s){let n=q(g()),r=!1;return M(()=>e[t],e=>{r||(r=!0,n.value=h(e),U(()=>r=!1))}),M(n,n=>{!r&&(n!==e[t]||l)&&_(n)},{deep:l}),n}else return K({get(){return g()},set(e){_(e)}})}function Jf(e={}){let{window:t=Ef}=e;if(!t)return Le(!1);let n=Le(t.document.hasFocus()),r={passive:!0};return kf(t,`blur`,()=>{n.value=!1},r),kf(t,`focus`,()=>{n.value=!0},r),n}function Yf(e={}){let{window:t=Ef,initialWidth:n=1/0,initialHeight:r=1/0,listenOrientation:i=!0,includeScrollbar:a=!0,type:o=`inner`}=e,s=Le(n),c=Le(r),l=()=>{if(t)if(o===`outer`)s.value=t.outerWidth,c.value=t.outerHeight;else if(o===`visual`&&t.visualViewport){let{width:e,height:n,scale:r}=t.visualViewport;s.value=Math.round(e*r),c.value=Math.round(n*r)}else a?(s.value=t.innerWidth,c.value=t.innerHeight):(s.value=t.document.documentElement.clientWidth,c.value=t.document.documentElement.clientHeight)};l(),Cf(l);let u={passive:!0};return kf(`resize`,l,u),t&&o===`visual`&&t.visualViewport&&kf(t.visualViewport,`resize`,l,u),i&&M(zf(`(orientation: portrait)`),()=>l()),{width:s,height:c}}function Xf(){let e=Le(),t=q(0),n=K(()=>({minWidth:`${Math.max(t.value,11)}px`}));return Uf(e,()=>{t.value=e.value?.getBoundingClientRect().width??0}),{calculatorRef:e,calculatorWidth:t,inputStyle:n}}var Zf=({from:e,replacement:t,scope:n,version:r,ref:i,type:a=`API`},o)=>{M(()=>Y(o),o=>{o&&Jd(n,`[${a}] ${e} is about to be deprecated in version ${r}, please use ${t} instead. +For more detail, please visit: ${i} +`)},{immediate:!0})},Qf=`a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])`,$f=e=>typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot,ep=e=>typeof Element>`u`?!1:e instanceof Element,tp=e=>getComputedStyle(e).position===`fixed`?!1:e.offsetParent!==null,np=e=>Array.from(e.querySelectorAll(Qf)).filter(e=>rp(e)&&tp(e)),rp=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute(`tabIndex`)!==null)return!0;if(e.tabIndex<0||e.hasAttribute(`disabled`)||e.getAttribute(`aria-disabled`)===`true`)return!1;switch(e.nodeName){case`A`:return!!e.href&&e.rel!==`ignore`;case`INPUT`:return!(e.type===`hidden`||e.type===`file`);case`BUTTON`:case`SELECT`:case`TEXTAREA`:return!0;default:return!1}},ip=function(e,t,...n){let r;r=t.includes(`mouse`)||t.includes(`click`)?`MouseEvents`:t.includes(`key`)?`KeyboardEvent`:`HTMLEvents`;let i=document.createEvent(r);return i.initEvent(t,...n),e.dispatchEvent(i),e},ap=e=>!e.getAttribute(`aria-owns`),op=(e,t,n)=>{let{parentNode:r}=e;if(!r)return null;let i=r.querySelectorAll(n);return i[Array.prototype.indexOf.call(i,e)+t]||null},sp=(e,t)=>{if(!e||!e.focus)return;let n=!1;ep(e)&&!rp(e)&&!e.getAttribute(`tabindex`)&&(e.setAttribute(`tabindex`,`-1`),n=!0),e.focus(t),ep(e)&&n&&e.removeAttribute(`tabindex`)},cp=e=>{e&&(sp(e),!ap(e)&&e.click())},lp=()=>nf&&/firefox/i.test(window.navigator.userAgent),up=()=>nf&&/android/i.test(window.navigator.userAgent),dp=(e=``)=>e.replace(/[|\\{}()[\]^$+*?.]/g,`\\$&`).replace(/-/g,`\\x2d`),fp=e=>ne(e),pp=`utils/dom/style`,mp=(e=``)=>e.split(` `).filter(e=>!!e.trim()),hp=(e,t)=>{if(!e||!t)return!1;if(t.includes(` `))throw Error(`className should not contain space.`);return e.classList.contains(t)},gp=(e,t)=>{!e||!t.trim()||e.classList.add(...mp(t))},_p=(e,t)=>{!e||!t.trim()||e.classList.remove(...mp(t))},vp=(e,t)=>{if(!nf||!e||!t||$f(e))return``;let n=Ze(t);n===`float`&&(n=`cssFloat`);try{let t=e.style[n];if(t)return t;let r=document.defaultView?.getComputedStyle(e,``);return r?r[n]:``}catch{return e.style[n]}},yp=(e,t,n)=>{if(!(!e||!t))if(E(t))zd(t).forEach(([t,n])=>yp(e,t,n));else{let r=Ze(t);e.style[r]=n}};function bp(e,t=`px`){if(!e&&e!==0)return``;if(Md(e)||Id(e))return`${e}${t}`;if(P(e))return e;Jd(pp,`binding value must be a string or number`)}var xp=(t,n,r,i)=>{let a={offsetX:0,offsetY:0},o=q(!1),s=(e,n)=>{if(t.value){let{offsetX:r,offsetY:o}=a,s=t.value.getBoundingClientRect(),c=Math.max(s.left,0),l=Math.max(s.top,0),u=s.width,d=s.height,f=document.documentElement.clientWidth,p=document.documentElement.clientHeight,m=-c+r,h=-l+o,g=f-c-u+r,_=p-l-(d{let t=e.clientX,n=e.clientY,{offsetX:r,offsetY:i}=a,c=e=>{o.value||=!0,s(r+e.clientX-t,i+e.clientY-n)},l=()=>{o.value=!1,document.removeEventListener(`mousemove`,c),document.removeEventListener(`mouseup`,l)};document.addEventListener(`mousemove`,c),document.addEventListener(`mouseup`,l)},l=()=>{n.value&&t.value&&(n.value.addEventListener(`mousedown`,c),window.addEventListener(`resize`,p))},u=()=>{n.value&&t.value&&(n.value.removeEventListener(`mousedown`,c),window.removeEventListener(`resize`,p))},f=()=>{a.offsetX=0,a.offsetY=0,t.value&&(t.value.style.transform=``)},p=()=>{let{offsetX:e,offsetY:t}=a;s(e,t)};return d(()=>{e(()=>{r.value?l():u()})}),T(()=>{u()}),{isDragging:o,resetPosition:f,updatePosition:p}},Sp={name:`en`,el:{breadcrumb:{label:`Breadcrumb`},colorpicker:{confirm:`OK`,clear:`Clear`,defaultLabel:`color picker`,description:`current color is {color}. press enter to select a new color.`,alphaLabel:`pick alpha value`,alphaDescription:`alpha {alpha}, current color is {color}`,hueLabel:`pick hue value`,hueDescription:`hue {hue}, current color is {color}`,svLabel:`pick saturation and brightness value`,svDescription:`saturation {saturation}, brightness {brightness}, current color is {color}`,predefineDescription:`select {value} as the color`},datepicker:{now:`Now`,today:`Today`,cancel:`Cancel`,clear:`Clear`,confirm:`OK`,dateTablePrompt:`Use the arrow keys and enter to select the day of the month`,monthTablePrompt:`Use the arrow keys and enter to select the month`,yearTablePrompt:`Use the arrow keys and enter to select the year`,selectedDate:`Selected date`,selectDate:`Select date`,selectTime:`Select time`,startDate:`Start Date`,startTime:`Start Time`,endDate:`End Date`,endTime:`End Time`,prevYear:`Previous Year`,nextYear:`Next Year`,prevMonth:`Previous Month`,nextMonth:`Next Month`,year:``,month1:`January`,month2:`February`,month3:`March`,month4:`April`,month5:`May`,month6:`June`,month7:`July`,month8:`August`,month9:`September`,month10:`October`,month11:`November`,month12:`December`,weeks:{sun:`Sun`,mon:`Mon`,tue:`Tue`,wed:`Wed`,thu:`Thu`,fri:`Fri`,sat:`Sat`},weeksFull:{sun:`Sunday`,mon:`Monday`,tue:`Tuesday`,wed:`Wednesday`,thu:`Thursday`,fri:`Friday`,sat:`Saturday`},months:{jan:`Jan`,feb:`Feb`,mar:`Mar`,apr:`Apr`,may:`May`,jun:`Jun`,jul:`Jul`,aug:`Aug`,sep:`Sep`,oct:`Oct`,nov:`Nov`,dec:`Dec`}},inputNumber:{decrease:`decrease number`,increase:`increase number`},select:{loading:`Loading`,noMatch:`No matching data`,noData:`No data`,placeholder:`Select`},mention:{loading:`Loading`},dropdown:{toggleDropdown:`Toggle Dropdown`},cascader:{noMatch:`No matching data`,loading:`Loading`,placeholder:`Select`,noData:`No data`},pagination:{goto:`Go to`,pagesize:`/page`,total:`Total {total}`,pageClassifier:``,page:`Page`,prev:`Go to previous page`,next:`Go to next page`,currentPage:`page {pager}`,prevPages:`Previous {pager} pages`,nextPages:`Next {pager} pages`,deprecationWarning:`Deprecated usages detected, please refer to the el-pagination documentation for more details`},dialog:{close:`Close this dialog`},drawer:{close:`Close this dialog`},messagebox:{title:`Message`,confirm:`OK`,cancel:`Cancel`,error:`Illegal input`,close:`Close this dialog`},upload:{deleteTip:`press delete to remove`,delete:`Delete`,preview:`Preview`,continue:`Continue`},slider:{defaultLabel:`slider between {min} and {max}`,defaultRangeStartLabel:`pick start value`,defaultRangeEndLabel:`pick end value`},table:{emptyText:`No Data`,confirmFilter:`Confirm`,resetFilter:`Reset`,clearFilter:`All`,sumText:`Sum`,selectAllLabel:`Select all rows`,selectRowLabel:`Select this row`,expandRowLabel:`Expand this row`,collapseRowLabel:`Collapse this row`,sortLabel:`Sort by {column}`,filterLabel:`Filter by {column}`},tag:{close:`Close this tag`},tour:{next:`Next`,previous:`Previous`,finish:`Finish`,close:`Close this dialog`},tree:{emptyText:`No Data`},transfer:{noMatch:`No matching data`,noData:`No data`,titles:[`List 1`,`List 2`],filterPlaceholder:`Enter keyword`,noCheckedFormat:`{total} items`,hasCheckedFormat:`{checked}/{total} checked`},image:{error:`FAILED`},pageHeader:{title:`Back`},popconfirm:{confirmButtonText:`Yes`,cancelButtonText:`No`},carousel:{leftArrow:`Carousel arrow left`,rightArrow:`Carousel arrow right`,indicator:`Carousel switch to index {index}`},inputOTP:{groupLabel:`OTP Input`,defaultLabel:`Please enter OTP character {index}`}}},Cp=e=>(t,n)=>wp(t,n,Y(e)),wp=(e,t,n)=>ss(n,e,e).replace(/\{(\w+)\}/g,(e,n)=>`${t?.[n]??`{${n}}`}`),Tp=e=>({lang:K(()=>Y(e).name),locale:he(e)?e:q(e),t:Cp(e)}),Ep=Symbol(`localeContextKey`),Dp=e=>{let t=e||l(Ep,q());return Tp(K(()=>t.value||Sp))},Op=`is-`,kp=(e,t,n,r,i)=>{let a=`${e}-${t}`;return n&&(a+=`-${n}`),r&&(a+=`__${r}`),i&&(a+=`--${i}`),a},Ap=Symbol(`namespaceContextKey`),jp=e=>{let t=e||(Xe()?l(Ap,q(`el`)):q(`el`));return K(()=>Y(t)||`el`)},$=(e,t)=>{let n=jp(t);return{namespace:n,b:(t=``)=>kp(n.value,e,t,``,``),e:t=>t?kp(n.value,e,``,t,``):``,m:t=>t?kp(n.value,e,``,``,t):``,be:(t,r)=>t&&r?kp(n.value,e,t,r,``):``,em:(t,r)=>t&&r?kp(n.value,e,``,t,r):``,bm:(t,r)=>t&&r?kp(n.value,e,t,``,r):``,bem:(t,r,i)=>t&&r&&i?kp(n.value,e,t,r,i):``,is:(e,...t)=>{let n=t.length>=1?t[0]:!0;return e&&n?`${Op}${e}`:``},cssVar:e=>{let t={};for(let r in e)e[r]&&(t[`--${n.value}-${r}`]=e[r]);return t},cssVarName:e=>`--${n.value}-${e}`,cssVarBlock:t=>{let r={};for(let i in t)t[i]&&(r[`--${n.value}-${e}-${i}`]=t[i]);return r},cssVarBlockName:t=>`--${n.value}-${e}-${t}`}};function Mp(e,t,n,r){let i=n-t;return e/=r/2,e<1?i/2*e*e*e+t:i/2*((e-=2)*e*e+2)+t}var Np=e=>nf?window.requestAnimationFrame(e):setTimeout(e,16),Pp=e=>nf?window.cancelAnimationFrame(e):clearTimeout(e),Fp=(e,t)=>{if(!nf)return!1;let n={undefined:`overflow`,true:`overflow-y`,false:`overflow-x`}[String(t)],r=vp(e,n);return[`scroll`,`auto`,`overlay`].some(e=>r.includes(e))},Ip=(e,t)=>{if(!nf)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if(Fp(n,t))return n;n=$f(n)?n.host:n.parentNode}return n},Lp,Rp=e=>{if(!nf)return 0;if(Lp!==void 0)return Lp;let t=document.createElement(`div`);t.className=`${e}-scrollbar__wrap`,t.style.visibility=`hidden`,t.style.width=`100px`,t.style.position=`absolute`,t.style.top=`-9999px`,document.body.appendChild(t);let n=t.offsetWidth;t.style.overflow=`scroll`;let r=document.createElement(`div`);r.style.width=`100%`,t.appendChild(r);let i=r.offsetWidth;return t.parentNode?.removeChild(t),Lp=n-i,Lp};function zp(e,t){if(!nf)return;if(!t){e.scrollTop=0;return}let n=[],r=t.offsetParent;for(;r!==null&&e!==r&&e.contains(r);)n.push(r),r=r.offsetParent;let i=t.offsetTop+n.reduce((e,t)=>e+t.offsetTop,0),a=i+t.offsetHeight,o=e.scrollTop,s=o+e.clientHeight;is&&(e.scrollTop=a-e.clientHeight)}function Bp(e,t,r,i,a){let o=Date.now(),s,c=()=>{let l=Date.now()-o,u=Mp(l>i?i:l,t,r,i);Ld(e)?e.scrollTo(window.pageXOffset,u):e.scrollTop=u,l{s&&Pp(s)}}var Vp=(e,t)=>Ld(t)?e.ownerDocument.documentElement:t,Hp=e=>Ld(e)?window.scrollY:e.scrollTop,Up=(e,t={})=>{he(e)||qd(`[useLockscreen]`,`You need to pass a ref param to this function`);let n=t.ns||$(`popup`),r=K(()=>n.bm(`parent`,`hidden`)),i=0,a=!1,o=`0`,s=!1,c=()=>{s||(s=!0,setTimeout(()=>{typeof document>`u`||a&&document&&(document.body.style.width=o,_p(document.body,r.value))},200))};M(e,e=>{if(!e){c();return}s=!1,a=!hp(document.body,r.value),a&&(o=document.body.style.width,gp(document.body,r.value)),i=Rp(n.namespace.value);let t=document.documentElement.clientHeight0&&(t||l===`scroll`)&&a&&(document.body.style.width=`calc(100% - ${i}px)`)}),Ue(()=>c())},Wp=(e,t,{checkForDefaultPrevented:n=!0}={})=>r=>{let i=e?.(r);if(n===!1||!i)return t?.(r)},Gp=e=>t=>t.pointerType===`mouse`?e(t):void 0,Kp=e=>{if(e.code&&e.code!==`Unidentified`)return e.code;let t=qp(e);if(t){if(Object.values(X).includes(t))return t;switch(t){case` `:return X.space;default:return``}}return``},qp=e=>{let t=e.key&&e.key!==`Unidentified`?e.key:``;if(!t&&e.type===`keyup`&&up()){let n=e.target;t=n.value.charAt(n.selectionStart-1)}return t},Jp=Ud({type:Z(Boolean),default:null}),Yp=Ud({type:Z(Function)}),Xp=e=>{let t=`update:${e}`,r=`onUpdate:${e}`,i=[t];return{useModelToggle:({indicator:i,toggleReason:a,shouldHideWhenRouteChanges:o,shouldProceed:s,onShow:c,onHide:l})=>{let u=Xe(),{emit:f}=u,p=u.props,m=K(()=>n(p[r])),h=K(()=>p[e]===null),g=e=>{i.value!==!0&&(i.value=!0,a&&(a.value=e),n(c)&&c(e))},_=e=>{i.value!==!1&&(i.value=!1,a&&(a.value=e),n(l)&&l(e))},v=e=>{if(p.disabled===!0||n(s)&&!s())return;let r=m.value&&nf;r&&f(t,!0),(h.value||!r)&&g(e)},y=e=>{if(p.disabled===!0||!nf)return;let n=m.value&&nf;n&&f(t,!1),(h.value||!n)&&_(e)},b=e=>{jd(e)&&(p.disabled&&e?m.value&&f(t,!1):i.value!==e&&(e?g():_()))};return M(()=>p[e],b),o&&u.appContext.config.globalProperties.$route!==void 0&&M(()=>({...u.proxy.$route}),()=>{o.value&&i.value&&y()}),d(()=>{b(p[e])}),{hide:y,show:v,toggle:()=>{i.value?y():v()},hasUpdateHandler:m}},useModelToggleProps:{[e]:Jp,[r]:Yp},useModelToggleEmits:i}},{useModelToggle:Zp,useModelToggleProps:Qp,useModelToggleEmits:$p}=Xp(`modelValue`),em=e=>{let t=Xe();return K(()=>t?.proxy?.$props?.[e])},tm=`bottom`,nm=`right`,rm=`left`,im=`auto`,am=[`top`,tm,nm,rm],om=`start`,sm=`clippingParents`,cm=`viewport`,lm=`popper`,um=`reference`,dm=am.reduce(function(e,t){return e.concat([t+`-`+om,t+`-end`])},[]),fm=[].concat(am,[im]).reduce(function(e,t){return e.concat([t,t+`-`+om,t+`-end`])},[]),pm=[`beforeRead`,`read`,`afterRead`,`beforeMain`,`main`,`afterMain`,`beforeWrite`,`write`,`afterWrite`];function mm(e){return e?(e.nodeName||``).toLowerCase():null}function hm(e){if(e==null)return window;if(e.toString()!==`[object Window]`){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gm(e){return e instanceof hm(e).Element||e instanceof Element}function _m(e){return e instanceof hm(e).HTMLElement||e instanceof HTMLElement}function vm(e){return typeof ShadowRoot>`u`?!1:e instanceof hm(e).ShadowRoot||e instanceof ShadowRoot}function ym(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];!_m(i)||!mm(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 bm(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},{});!_m(r)||!mm(r)||(Object.assign(r.style,a),Object.keys(i).forEach(function(e){r.removeAttribute(e)}))})}}var xm={name:`applyStyles`,enabled:!0,phase:`write`,fn:ym,effect:bm,requires:[`computeStyles`]};function Sm(e){return e.split(`-`)[0]}var Cm=Math.max,wm=Math.min,Tm=Math.round;function Em(){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 Dm(){return!/^((?!chrome|android).)*safari/i.test(Em())}function Om(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!1);var r=e.getBoundingClientRect(),i=1,a=1;t&&_m(e)&&(i=e.offsetWidth>0&&Tm(r.width)/e.offsetWidth||1,a=e.offsetHeight>0&&Tm(r.height)/e.offsetHeight||1);var o=(gm(e)?hm(e):window).visualViewport,s=!Dm()&&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 km(e){var t=Om(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 Am(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&vm(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function jm(e){return hm(e).getComputedStyle(e)}function Mm(e){return[`table`,`td`,`th`].indexOf(mm(e))>=0}function Nm(e){return((gm(e)?e.ownerDocument:e.document)||window.document).documentElement}function Pm(e){return mm(e)===`html`?e:e.assignedSlot||e.parentNode||(vm(e)?e.host:null)||Nm(e)}function Fm(e){return!_m(e)||jm(e).position===`fixed`?null:e.offsetParent}function Im(e){var t=/firefox/i.test(Em());if(/Trident/i.test(Em())&&_m(e)&&jm(e).position===`fixed`)return null;var n=Pm(e);for(vm(n)&&(n=n.host);_m(n)&&[`html`,`body`].indexOf(mm(n))<0;){var r=jm(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 Lm(e){for(var t=hm(e),n=Fm(e);n&&Mm(n)&&jm(n).position===`static`;)n=Fm(n);return n&&(mm(n)===`html`||mm(n)===`body`&&jm(n).position===`static`)?t:n||Im(e)||t}function Rm(e){return[`top`,`bottom`].indexOf(e)>=0?`x`:`y`}function zm(e,t,n){return Cm(e,wm(t,n))}function Bm(e,t,n){var r=zm(e,t,n);return r>n?n:r}function Vm(){return{top:0,right:0,bottom:0,left:0}}function Hm(e){return Object.assign({},Vm(),e)}function Um(e,t){return t.reduce(function(t,n){return t[n]=e,t},{})}var Wm=function(e,t){return e=typeof e==`function`?e(Object.assign({},t.rects,{placement:t.placement})):e,Hm(typeof e==`number`?Um(e,am):e)};function Gm(e){var t,n=e.state,r=e.name,i=e.options,a=n.elements.arrow,o=n.modifiersData.popperOffsets,s=Sm(n.placement),c=Rm(s),l=[`left`,`right`].indexOf(s)>=0?`height`:`width`;if(!(!a||!o)){var u=Wm(i.padding,n),d=km(a),f=c===`y`?`top`:rm,p=c===`y`?tm:nm,m=n.rects.reference[l]+n.rects.reference[c]-o[c]-n.rects.popper[l],h=o[c]-n.rects.reference[c],g=Lm(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=zm(y,x,b),C=c;n.modifiersData[r]=(t={},t[C]=S,t.centerOffset=S-x,t)}}function Km(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)||Am(t.elements.popper,r)&&(t.elements.arrow=r))}var qm={name:`arrow`,enabled:!0,phase:`main`,fn:Gm,effect:Km,requires:[`popperOffsets`],requiresIfExists:[`preventOverflow`]};function Jm(e){return e.split(`-`)[1]}var Ym={top:`auto`,right:`auto`,bottom:`auto`,left:`auto`};function Xm(e,t){var n=e.x,r=e.y,i=t.devicePixelRatio||1;return{x:Tm(n*i)/i||0,y:Tm(r*i)/i||0}}function Zm(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=rm,b=`top`,x=window;if(l){var S=Lm(n),C=`clientHeight`,w=`clientWidth`;if(S===hm(n)&&(S=Nm(n),jm(S).position!==`static`&&s===`absolute`&&(C=`scrollHeight`,w=`scrollWidth`)),S=S,i===`top`||(i===`left`||i===`right`)&&a===`end`){b=tm;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=nm;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&&Ym),O=u===!0?Xm({x:p,y:h},hm(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 Qm(e){var t=e.state,n=e.options,r=n.gpuAcceleration,i=r===void 0?!0:r,a=n.adaptive,o=a===void 0?!0:a,s=n.roundOffsets,c=s===void 0?!0:s,l={placement:Sm(t.placement),variation:Jm(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,Zm(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,Zm(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 $m={name:`computeStyles`,enabled:!0,phase:`beforeWrite`,fn:Qm,data:{}},eh={passive:!0};function th(e){var t=e.state,n=e.instance,r=e.options,i=r.scroll,a=i===void 0?!0:i,o=r.resize,s=o===void 0?!0:o,c=hm(t.elements.popper),l=[].concat(t.scrollParents.reference,t.scrollParents.popper);return a&&l.forEach(function(e){e.addEventListener(`scroll`,n.update,eh)}),s&&c.addEventListener(`resize`,n.update,eh),function(){a&&l.forEach(function(e){e.removeEventListener(`scroll`,n.update,eh)}),s&&c.removeEventListener(`resize`,n.update,eh)}}var nh={name:`eventListeners`,enabled:!0,phase:`write`,fn:function(){},effect:th,data:{}},rh={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function ih(e){return e.replace(/left|right|bottom|top/g,function(e){return rh[e]})}var ah={start:`end`,end:`start`};function oh(e){return e.replace(/start|end/g,function(e){return ah[e]})}function sh(e){var t=hm(e);return{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function ch(e){return Om(Nm(e)).left+sh(e).scrollLeft}function lh(e,t){var n=hm(e),r=Nm(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;var l=Dm();(l||!l&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s+ch(e),y:c}}function uh(e){var t=Nm(e),n=sh(e),r=e.ownerDocument?.body,i=Cm(t.scrollWidth,t.clientWidth,r?r.scrollWidth:0,r?r.clientWidth:0),a=Cm(t.scrollHeight,t.clientHeight,r?r.scrollHeight:0,r?r.clientHeight:0),o=-n.scrollLeft+ch(e),s=-n.scrollTop;return jm(r||t).direction===`rtl`&&(o+=Cm(t.clientWidth,r?r.clientWidth:0)-i),{width:i,height:a,x:o,y:s}}function dh(e){var t=jm(e),n=t.overflow,r=t.overflowX,i=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+i+r)}function fh(e){return[`html`,`body`,`#document`].indexOf(mm(e))>=0?e.ownerDocument.body:_m(e)&&dh(e)?e:fh(Pm(e))}function ph(e,t){t===void 0&&(t=[]);var n=fh(e),r=n===e.ownerDocument?.body,i=hm(n),a=r?[i].concat(i.visualViewport||[],dh(n)?n:[]):n,o=t.concat(a);return r?o:o.concat(ph(Pm(a)))}function mh(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function hh(e,t){var n=Om(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 gh(e,t,n){return t===`viewport`?mh(lh(e,n)):gm(t)?hh(t,n):mh(uh(Nm(e)))}function _h(e){var t=ph(Pm(e)),n=[`absolute`,`fixed`].indexOf(jm(e).position)>=0&&_m(e)?Lm(e):e;return gm(n)?t.filter(function(e){return gm(e)&&Am(e,n)&&mm(e)!==`body`}):[]}function vh(e,t,n,r){var i=t===`clippingParents`?_h(e):[].concat(t),a=[].concat(i,[n]),o=a[0],s=a.reduce(function(t,n){var i=gh(e,n,r);return t.top=Cm(i.top,t.top),t.right=wm(i.right,t.right),t.bottom=wm(i.bottom,t.bottom),t.left=Cm(i.left,t.left),t},gh(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 yh(e){var t=e.reference,n=e.element,r=e.placement,i=r?Sm(r):null,a=r?Jm(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 tm:c={x:o,y:t.y+t.height};break;case nm:c={x:t.x+t.width,y:s};break;case rm:c={x:t.x-n.width,y:s};break;default:c={x:t.x,y:t.y}}var l=i?Rm(i):null;if(l!=null){var u=l===`y`?`height`:`width`;switch(a){case om:c[l]=c[l]-(t[u]/2-n[u]/2);break;case`end`:c[l]=c[l]+(t[u]/2-n[u]/2);break}}return c}function bh(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?sm:s,l=n.rootBoundary,u=l===void 0?cm:l,d=n.elementContext,f=d===void 0?lm:d,p=n.altBoundary,m=p===void 0?!1:p,h=n.padding,g=h===void 0?0:h,_=Hm(typeof g==`number`?Um(g,am):g),v=f===`popper`?um:lm,y=e.rects.popper,b=e.elements[m?v:f],x=vh(gm(b)?b:b.contextElement||Nm(e.elements.popper),c,u,o),S=Om(e.elements.reference),C=yh({reference:S,element:y,placement:i}),w=mh(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 xh(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?fm:c,u=Jm(r),d=u?s?dm:dm.filter(function(e){return Jm(e)===u}):am,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]=bh(e,{placement:n,boundary:i,rootBoundary:a,padding:o})[Sm(n)],t},{});return Object.keys(p).sort(function(e,t){return p[e]-p[t]})}function Sh(e){if(Sm(e)===`auto`)return[];var t=ih(e);return[oh(e),t,oh(t)]}function Ch(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?!0:i,o=n.altAxis,s=o===void 0?!0:o,c=n.fallbackPlacements,l=n.padding,u=n.boundary,d=n.rootBoundary,f=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,_=Sm(g)===g,v=c||(_||!m?[ih(g)]:Sh(g)),y=[g].concat(v).reduce(function(e,n){return e.concat(Sm(n)===`auto`?xh(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`,ee=bh(t,{placement:E,boundary:u,rootBoundary:d,altBoundary:f,padding:l}),j=k?O?nm:rm:O?tm:`top`;b[A]>x[A]&&(j=ih(j));var M=ih(j),N=[];if(a&&N.push(ee[D]<=0),s&&N.push(ee[j]<=0,ee[M]<=0),N.every(function(e){return e})){w=E,C=!1;break}S.set(E,N)}if(C)for(var P=m?3:1,te=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`},ne=P;ne>0&&te(ne)!==`break`;ne--);t.placement!==w&&(t.modifiersData[r]._skip=!0,t.placement=w,t.reset=!0)}}var wh={name:`flip`,enabled:!0,phase:`main`,fn:Ch,requiresIfExists:[`offset`],data:{_skip:!1}};function Th(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 Eh(e){return[`top`,nm,tm,rm].some(function(t){return e[t]>=0})}function Dh(e){var t=e.state,n=e.name,r=t.rects.reference,i=t.rects.popper,a=t.modifiersData.preventOverflow,o=bh(t,{elementContext:`reference`}),s=bh(t,{altBoundary:!0}),c=Th(o,r),l=Th(s,i,a),u=Eh(c),d=Eh(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 Oh={name:`hide`,enabled:!0,phase:`main`,requiresIfExists:[`preventOverflow`],fn:Dh};function kh(e,t,n){var r=Sm(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 Ah(e){var t=e.state,n=e.options,r=e.name,i=n.offset,a=i===void 0?[0,0]:i,o=fm.reduce(function(e,n){return e[n]=kh(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 jh={name:`offset`,enabled:!0,phase:`main`,requires:[`popperOffsets`],fn:Ah};function Mh(e){var t=e.state,n=e.name;t.modifiersData[n]=yh({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var Nh={name:`popperOffsets`,enabled:!0,phase:`read`,fn:Mh,data:{}};function Ph(e){return e===`x`?`y`:`x`}function Fh(e){var t=e.state,n=e.options,r=e.name,i=n.mainAxis,a=i===void 0?!0:i,o=n.altAxis,s=o===void 0?!1:o,c=n.boundary,l=n.rootBoundary,u=n.altBoundary,d=n.padding,f=n.tether,p=f===void 0?!0:f,m=n.tetherOffset,h=m===void 0?0:m,g=bh(t,{boundary:c,rootBoundary:l,padding:d,altBoundary:u}),_=Sm(t.placement),v=Jm(t.placement),y=!v,b=Rm(_),x=Ph(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`:rm,A=b===`y`?tm:nm,ee=b===`y`?`height`:`width`,j=S[b],M=j+g[k],N=j-g[A],P=p?-w[ee]/2:0,te=v===`start`?C[ee]:w[ee],ne=v===`start`?-w[ee]:-C[ee],re=t.elements.arrow,ie=p&&re?km(re):{width:0,height:0},ae=t.modifiersData[`arrow#persistent`]?t.modifiersData[`arrow#persistent`].padding:Vm(),F=ae[k],I=ae[A],oe=zm(0,C[ee],ie[ee]),L=y?C[ee]/2-P-oe-F-E.mainAxis:te-oe-F-E.mainAxis,se=y?-C[ee]/2+P+oe+I+E.mainAxis:ne+oe+I+E.mainAxis,ce=t.elements.arrow&&Lm(t.elements.arrow),le=ce?b===`y`?ce.clientTop||0:ce.clientLeft||0:0,ue=D?.[b]??0,de=j+L-ue-le,fe=j+se-ue,pe=zm(p?wm(M,de):M,j,p?Cm(N,fe):N);S[b]=pe,O[b]=pe-j}if(s){var me=b===`x`?`top`:rm,R=b===`x`?tm:nm,he=S[x],z=x===`y`?`height`:`width`,ge=he+g[me],_e=he-g[R],ve=[`top`,rm].indexOf(_)!==-1,B=D?.[x]??0,ye=ve?ge:he-C[z]-w[z]-B+E.altAxis,V=ve?he+C[z]+w[z]-B-E.altAxis:_e,H=p&&ve?Bm(ye,he,V):zm(p?ye:ge,he,p?V:_e);S[x]=H,O[x]=H-he}t.modifiersData[r]=O}}var Ih={name:`preventOverflow`,enabled:!0,phase:`main`,fn:Fh,requiresIfExists:[`offset`]};function Lh(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function Rh(e){return e===hm(e)||!_m(e)?sh(e):Lh(e)}function zh(e){var t=e.getBoundingClientRect(),n=Tm(t.width)/e.offsetWidth||1,r=Tm(t.height)/e.offsetHeight||1;return n!==1||r!==1}function Bh(e,t,n){n===void 0&&(n=!1);var r=_m(t),i=_m(t)&&zh(t),a=Nm(t),o=Om(e,i,n),s={scrollLeft:0,scrollTop:0},c={x:0,y:0};return(r||!r&&!n)&&((mm(t)!==`body`||dh(a))&&(s=Rh(t)),_m(t)?(c=Om(t,!0),c.x+=t.clientLeft,c.y+=t.clientTop):a&&(c.x=ch(a))),{x:o.left+s.scrollLeft-c.x,y:o.top+s.scrollTop-c.y,width:o.width,height:o.height}}function Vh(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 Hh(e){var t=Vh(e);return pm.reduce(function(e,n){return e.concat(t.filter(function(e){return e.phase===n}))},[])}function Uh(e){var t;return function(){return t||=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})}),t}}function Wh(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 Gh={placement:`bottom`,modifiers:[],strategy:`absolute`};function Kh(){return![...arguments].some(function(e){return!(e&&typeof e.getBoundingClientRect==`function`)})}function qh(e){e===void 0&&(e={});var t=e,n=t.defaultModifiers,r=n===void 0?[]:n,i=t.defaultOptions,a=i===void 0?Gh:i;return function(e,t,n){n===void 0&&(n=a);var i={placement:`bottom`,orderedModifiers:[],options:Object.assign({},Gh,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:gm(e)?ph(e):e.contextElement?ph(e.contextElement):[],popper:ph(t)};var s=Hh(Wh([].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(Kh(t,n)){i.rects={reference:Bh(t,Lm(n),i.options.strategy===`fixed`),popper:km(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;r{let r={name:`updateState`,enabled:!0,phase:`write`,fn:({state:e})=>{let t=Xh(e);Object.assign(o.value,t)},requires:[`computeStyles`]},i=K(()=>{let{onFirstUpdate:e,placement:t,strategy:i,modifiers:a}=Y(n);return{onFirstUpdate:e,placement:t||`bottom`,strategy:i||`absolute`,modifiers:[...a||[],r,{name:`applyStyles`,enabled:!1}]}}),a=Le(),o=q({styles:{popper:{position:Y(i).strategy,left:`0`,top:`0`},arrow:{position:`absolute`}},attributes:{}}),s=()=>{a.value&&=(a.value.destroy(),void 0)};return M(i,e=>{let t=Y(a);t&&t.setOptions(e)},{deep:!0}),M([e,t],([e,t])=>{s(),!(!e||!t)&&(a.value=Jh(e,t,Y(i)))}),T(()=>{s()}),{state:K(()=>({...Y(a)?.state||{}})),styles:K(()=>Y(o).styles),attributes:K(()=>Y(o).attributes),update:()=>Y(a)?.update(),forceUpdate:()=>Y(a)?.forceUpdate(),instanceRef:K(()=>Y(a))}};function Xh(e){let t=Object.keys(e.elements);return{styles:ad(t.map(t=>[t,e.styles[t]||{}])),attributes:ad(t.map(t=>[t,e.attributes[t]]))}}var Zh=e=>{if(!e)return{onClick:ge,onMousedown:ge,onMouseup:ge};let t=!1,n=!1;return{onClick:r=>{t&&n&&e(r),t=n=!1},onMousedown:e=>{t=e.target===e.currentTarget},onMouseup:e=>{n=e.target===e.currentTarget}}},Qh=(e,t=0)=>{if(t===0)return e;let n=q(E(t)&&!!t.initVal),r=null,i=t=>{if(Ad(t)){n.value=e.value;return}r&&clearTimeout(r),r=setTimeout(()=>{n.value=e.value},t)},a=e=>{e===`leading`?Md(t)?i(t):i(t.leading):E(t)?i(t.trailing):n.value=!1};return d(()=>a(`leading`)),M(()=>e.value,e=>{a(e?`leading`:`trailing`)}),n};function $h(){let e,t=(t,r)=>{n(),e=globalThis.setTimeout(t,r)},n=()=>{e!==void 0&&(globalThis.clearTimeout(e),e=void 0)};return $d(()=>n()),{registerTimeout:t,cancelTimeout:n}}var eg={prefix:Math.floor(Math.random()*1e4),current:0},tg=Symbol(`elIdInjection`),ng=()=>Xe()?l(tg,eg):eg,rg=e=>{let t=ng();!nf&&t===eg&&Jd(`IdInjection`,`Looks like you are using server rendering, you must provide a id provider to ensure the hydration process to be succeed +usage: app.provide(ID_INJECTION_KEY, { + prefix: number, + current: number, +})`);let n=jp();return Qd(()=>Y(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},ig=[],ag=e=>{Kp(e)===X.esc&&ig.forEach(t=>t(e))},og=e=>{d(()=>{ig.length===0&&document.addEventListener(`keydown`,ag),nf&&ig.push(e)}),T(()=>{ig=ig.filter(t=>t!==e),ig.length===0&&nf&&document.removeEventListener(`keydown`,ag)})},sg=()=>{let e=jp(),t=ng(),n=K(()=>`${e.value}-popper-container-${t.prefix}`);return{id:n,selector:K(()=>`#${n.value}`)}},cg=e=>{let t=document.createElement(`div`);return t.id=e,document.body.appendChild(t),t},lg=()=>{let{id:e,selector:t}=sg();return De(()=>{nf&&(document.body.querySelector(t.value)||cg(e.value))}),{id:e,selector:t}},ug=Q({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),dg={showAfter:0,hideAfter:200,autoClose:0},fg=({showAfter:e,hideAfter:t,autoClose:n,open:r,close:i})=>{let{registerTimeout:a}=$h(),{registerTimeout:o,cancelTimeout:s}=$h();return{onOpen:(t,s=Y(e))=>{a(()=>{r(t);let e=Y(n);Md(e)&&e>0&&o(()=>{i(t)},e)},s)},onClose:(e,n=Y(t))=>{s(),a(()=>{i(e)},n)}}},pg=Symbol(`elForwardRef`),mg=e=>{Qe(pg,{setForwardRef:(t=>{e.value=t})})},hg=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),gg={current:0},_g=q(0),vg=2e3,yg=Symbol(`elZIndexContextKey`),bg=Symbol(`zIndexContextKey`),xg=e=>{let t=Xe()?l(yg,gg):gg,n=e||(Xe()?l(bg,void 0):void 0),r=K(()=>{let e=Y(n);return Md(e)?e:vg}),i=K(()=>r.value+_g.value);return!nf&&!l(yg)&&Jd(`ZIndexInjection`,`Looks like you are using server rendering, you must provide a z-index provider to ensure the hydration process to be succeed +usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`),{initialZIndex:r,currentZIndex:i,nextZIndex:()=>(t.current++,_g.value=t.current,i.value)}},Sg=Math.min,Cg=Math.max,wg=Math.round,Tg=Math.floor,Eg=e=>({x:e,y:e}),Dg={left:`right`,right:`left`,bottom:`top`,top:`bottom`};function Og(e,t,n){return Cg(e,Sg(t,n))}function kg(e,t){return typeof e==`function`?e(t):e}function Ag(e){return e.split(`-`)[0]}function jg(e){return e.split(`-`)[1]}function Mg(e){return e===`x`?`y`:`x`}function Ng(e){return e===`y`?`height`:`width`}function Pg(e){let t=e[0];return t===`t`||t===`b`?`y`:`x`}function Fg(e){return Mg(Pg(e))}function Ig(e,t,n){n===void 0&&(n=!1);let r=jg(e),i=Fg(e),a=Ng(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=Gg(o)),[o,Gg(o)]}function Lg(e){let t=Gg(e);return[Rg(e),t,Rg(t)]}function Rg(e){return e.includes(`start`)?e.replace(`start`,`end`):e.replace(`end`,`start`)}var zg=[`left`,`right`],Bg=[`right`,`left`],Vg=[`top`,`bottom`],Hg=[`bottom`,`top`];function Ug(e,t,n){switch(e){case`top`:case`bottom`:return n?t?Bg:zg:t?zg:Bg;case`left`:case`right`:return t?Vg:Hg;default:return[]}}function Wg(e,t,n,r){let i=jg(e),a=Ug(Ag(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(Rg)))),a}function Gg(e){let t=Ag(e);return Dg[t]+e.slice(t.length)}function Kg(e){return{top:0,right:0,bottom:0,left:0,...e}}function qg(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:Kg(e)}function Jg(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function Yg(e,t,n){let{reference:r,floating:i}=e,a=Pg(t),o=Fg(t),s=Ng(o),c=Ag(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(jg(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1);break}return p}async function Xg(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=kg(t,e),p=qg(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=Jg(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=Jg(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var Zg=50,Qg=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=o.detectOverflow?o:{...o,detectOverflow:Xg},c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=Yg(l,r,c),f=r,p=0,m={};for(let n=0;n({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=kg(e,t)||{};if(l==null)return{};let d=qg(u),f={x:n,y:r},p=Fg(i),m=Ng(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;(!C||!await(o.isElement==null?void 0:o.isElement(S)))&&(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=Sg(d[_],T),D=Sg(d[v],T),O=E,k=C-h[m]-D,A=C/2-h[m]/2+w,ee=Og(O,A,k),j=!c.arrow&&jg(i)!=null&&A!==ee&&a.reference[m]/2-(Ae<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t&&(!(u===`alignment`&&_!==Pg(t))||T.every(e=>Pg(e.placement)===_?e.overflows[0]>0:!0)))return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=Pg(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o;break}if(r!==n)return{reset:{placement:n}}}return{}}}},t_=new Set([`left`,`top`]);async function n_(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=Ag(n),s=jg(n),c=Pg(n)===`y`,l=t_.has(o)?-1:1,u=a&&c?-1:1,d=kg(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var r_=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await n_(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},i_=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i,platform:a}=t,{mainAxis:o=!0,crossAxis:s=!1,limiter:c={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...l}=kg(e,t),u={x:n,y:r},d=await a.detectOverflow(t,l),f=Pg(Ag(i)),p=Mg(f),m=u[p],h=u[f];if(o){let e=p===`y`?`top`:`left`,t=p===`y`?`bottom`:`right`,n=m+d[e],r=m-d[t];m=Og(n,m,r)}if(s){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=h+d[e],r=h-d[t];h=Og(n,h,r)}let g=c.fn({...t,[p]:m,[f]:h});return{...g,data:{x:g.x-n,y:g.y-r,enabled:{[p]:o,[f]:s}}}}}};function a_(){return typeof window<`u`}function o_(e){return l_(e)?(e.nodeName||``).toLowerCase():`#document`}function s_(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function c_(e){return((l_(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function l_(e){return a_()?e instanceof Node||e instanceof s_(e).Node:!1}function u_(e){return a_()?e instanceof Element||e instanceof s_(e).Element:!1}function d_(e){return a_()?e instanceof HTMLElement||e instanceof s_(e).HTMLElement:!1}function f_(e){return!a_()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof s_(e).ShadowRoot}function p_(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=w_(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function m_(e){return/^(table|td|th)$/.test(o_(e))}function h_(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var g_=/transform|translate|scale|rotate|perspective|filter/,__=/paint|layout|strict|content/,v_=e=>!!e&&e!==`none`,y_;function b_(e){let t=u_(e)?w_(e):e;return v_(t.transform)||v_(t.translate)||v_(t.scale)||v_(t.rotate)||v_(t.perspective)||!S_()&&(v_(t.backdropFilter)||v_(t.filter))||g_.test(t.willChange||``)||__.test(t.contain||``)}function x_(e){let t=E_(e);for(;d_(t)&&!C_(t);){if(b_(t))return t;if(h_(t))return null;t=E_(t)}return null}function S_(){return y_??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),y_}function C_(e){return/^(html|body|#document)$/.test(o_(e))}function w_(e){return s_(e).getComputedStyle(e)}function T_(e){return u_(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function E_(e){if(o_(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||f_(e)&&e.host||c_(e);return f_(t)?t.host:t}function D_(e){let t=E_(e);return C_(t)?e.ownerDocument?e.ownerDocument.body:e.body:d_(t)&&p_(t)?t:D_(t)}function O_(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=D_(e),i=r===e.ownerDocument?.body,a=s_(r);if(i){let e=k_(a);return t.concat(a,a.visualViewport||[],p_(r)?r:[],e&&n?O_(e):[])}else return t.concat(r,O_(r,[],n))}function k_(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function A_(e){let t=w_(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=d_(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=wg(n)!==a||wg(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function j_(e){return u_(e)?e:e.contextElement}function M_(e){let t=j_(e);if(!d_(t))return Eg(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=A_(t),o=(a?wg(n.width):n.width)/r,s=(a?wg(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!s||!Number.isFinite(s))&&(s=1),{x:o,y:s}}var N_=Eg(0);function P_(e){let t=s_(e);return!S_()||!t.visualViewport?N_:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function F_(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==s_(e)?!1:t}function I_(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=j_(e),o=Eg(1);t&&(r?u_(r)&&(o=M_(r)):o=M_(e));let s=F_(a,n,r)?P_(a):Eg(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=s_(a),t=r&&u_(r)?s_(r):r,n=e,i=k_(n);for(;i&&r&&t!==n;){let e=M_(i),t=i.getBoundingClientRect(),r=w_(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=s_(i),i=k_(n)}}return Jg({width:u,height:d,x:c,y:l})}function L_(e,t){let n=T_(e).scrollLeft;return t?t.left+n:I_(c_(e)).left+n}function R_(e,t){let n=e.getBoundingClientRect();return{x:n.left+t.scrollLeft-L_(e,n),y:n.top+t.scrollTop}}function z_(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=c_(r),s=t?h_(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=Eg(1),u=Eg(0),d=d_(r);if((d||!d&&!a)&&((o_(r)!==`body`||p_(o))&&(c=T_(r)),d)){let e=I_(r);l=M_(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?R_(o,c):Eg(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function B_(e){return Array.from(e.getClientRects())}function V_(e){let t=c_(e),n=T_(e),r=e.ownerDocument.body,i=Cg(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=Cg(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+L_(e),s=-n.scrollTop;return w_(r).direction===`rtl`&&(o+=Cg(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}var H_=25;function U_(e,t){let n=s_(e),r=c_(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=S_();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}let l=L_(r);if(l<=0){let e=r.ownerDocument,t=e.body,n=getComputedStyle(t),i=e.compatMode===`CSS1Compat`&&parseFloat(n.marginLeft)+parseFloat(n.marginRight)||0,o=Math.abs(r.clientWidth-t.clientWidth-i);o<=H_&&(a-=o)}else l<=H_&&(a+=l);return{width:a,height:o,x:s,y:c}}function W_(e,t){let n=I_(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=d_(e)?M_(e):Eg(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function G_(e,t,n){let r;if(t===`viewport`)r=U_(e,n);else if(t===`document`)r=V_(c_(e));else if(u_(t))r=W_(t,n);else{let n=P_(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return Jg(r)}function K_(e,t){let n=E_(e);return n===t||!u_(n)||C_(n)?!1:w_(n).position===`fixed`||K_(n,t)}function q_(e,t){let n=t.get(e);if(n)return n;let r=O_(e,[],!1).filter(e=>u_(e)&&o_(e)!==`body`),i=null,a=w_(e).position===`fixed`,o=a?E_(e):e;for(;u_(o)&&!C_(o);){let t=w_(o),n=b_(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&(i.position===`absolute`||i.position===`fixed`)||p_(o)&&!n&&K_(e,o))?r=r.filter(e=>e!==o):i=t,o=E_(o)}return t.set(e,r),r}function J_(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?h_(t)?[]:q_(t,this._c):[].concat(n),r],o=G_(t,a[0],i),s=o.top,c=o.right,l=o.bottom,u=o.left;for(let e=1;e{o(!1,1e-7)},1e3)}n===1&&!rv(l,e.getBoundingClientRect())&&o(),y=!1}try{n=new IntersectionObserver(b,{...v,root:i.ownerDocument})}catch{n=new IntersectionObserver(b,v)}n.observe(e)}return o(!0),a}function av(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=j_(e),u=i||a?[...l?O_(l):[],...t?O_(t):[]]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?iv(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&t&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),t&&p.observe(t));let m,h=c?I_(e):null;c&&g();function g(){let t=I_(e);h&&!rv(h,t)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var ov=Xg,sv=r_,cv=i_,lv=e_,uv=$g,dv=(e,t,n)=>{let r=new Map,i={platform:nv,...n},a={...i.platform,_c:r};return Qg(e,t,{...i,platform:a})};function fv(e){let t;function n(){if(e.value==null)return;let{selectionStart:n,selectionEnd:r,value:i}=e.value;n==null||r==null||(t={selectionStart:n,selectionEnd:r,value:i,beforeTxt:i.slice(0,Math.max(0,n)),afterTxt:i.slice(Math.max(0,r))})}function r(){if(e.value==null||t==null)return;let{value:n}=e.value,{beforeTxt:r,afterTxt:i,selectionStart:a}=t;if(r==null||i==null||a==null)return;let o=n.length;if(n.endsWith(i))o=n.length-i.length;else if(n.startsWith(r))o=r.length;else{let e=r[a-1],t=n.indexOf(e,a-1);t!==-1&&(o=t+1)}e.value.setSelectionRange(o,o)}return[n,r]}var pv=`utils/vue/vnode`;function mv(e){return s(e)&&e.type===R}function hv(e){return s(e)&&e.type===Te}function gv(e){return s(e)&&!mv(e)&&!hv(e)}var _v=e=>{if(!s(e))return Jd(pv,`[getNormalizedProps] must be a VNode`),{};let t=e.props||{},n=(s(e.type)?e.type.props:void 0)||{},r={};return Object.keys(n).forEach(e=>{Ye(n[e],`default`)&&(r[e]=n[e].default)}),Object.keys(t).forEach(e=>{r[Ze(e)]=t[e]}),r},vv=e=>{let t=A(e)?e:[e],n=[];return t.forEach(e=>{A(e)?n.push(...vv(e)):s(e)&&e.component?.subTree?n.push(e,...vv(e.component.subTree)):s(e)&&A(e.children)?n.push(...vv(e.children)):s(e)&&e.shapeFlag===2?n.push(...vv(e.type())):n.push(e)}),n},yv=(e,t,n)=>vv(e.subTree).filter(e=>s(e)&&e.type?.name===t&&!!e.component).map(e=>e.component.uid).map(e=>n[e]).filter(e=>!!e),bv=(e,t)=>{let n=Le({}),r=Le([]),i=new WeakMap,a=e=>{n.value[e.uid]=e,qe(n),d(()=>{let t=e.getVnode().el,r=t.parentNode;if(!i.has(r)){i.set(r,[]);let e=r.insertBefore.bind(r);r.insertBefore=(t,a)=>(i.get(r).some(e=>t===e||a===e)&&qe(n),e(t,a))}i.get(r).push(t)})},o=e=>{delete n.value[e.uid],qe(n);let t=e.getVnode().el,r=t.parentNode,a=i.get(r),o=a.indexOf(t);a.splice(o,1)},s=()=>{r.value=yv(e,t,n.value)},c=e=>e.render();return{children:r,addChild:a,removeChild:o,ChildrenSorter:z({setup(e,{slots:t}){return()=>(s(),t.default?Je(c,{render:t.default}):null)}})}},xv=Ud({type:String,values:wr,required:!1}),Sv=Symbol(`size`),Cv=()=>{let e=l(Sv,{});return K(()=>Y(e.size)||``)};function wv(e,{disabled:t,beforeFocus:r,afterFocus:i,beforeBlur:a,afterBlur:o}={}){let{emit:s}=Xe(),c=Le(),l=q(!1),u=e=>{let a=n(r)?r(e):!1;Y(t)||l.value||a||(l.value=!0,s(`focus`,e),i?.())},d=e=>{let r=n(a)?a(e):!1;Y(t)||e.relatedTarget&&c.value?.contains(e.relatedTarget)||r||(l.value=!1,s(`blur`,e),o?.())};return M([c,()=>Y(t)],([e,t])=>{e&&(t?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,`-1`))}),kf(c,`focus`,u,!0),kf(c,`blur`,d,!0),kf(c,`click`,n=>{Y(t)||rp(n.target)||c.value?.contains(document.activeElement)&&c.value!==document.activeElement||e.value?.focus()},!0),{isFocused:l,wrapperRef:c,handleFocus:u,handleBlur:d}}function Tv({afterComposition:e,emit:t}){let n=q(!1),r=e=>{t?.(`compositionstart`,e),n.value=!0},i=e=>{t?.(`compositionupdate`,e),n.value=!0},a=r=>{t?.(`compositionend`,r),n.value&&(n.value=!1,U(()=>e(r)))};return{isComposing:n,handleComposition:e=>{e.type===`compositionend`?a(e):i(e)},handleCompositionStart:r,handleCompositionUpdate:i,handleCompositionEnd:a}}var Ev=Symbol(`emptyValuesContextKey`),Dv=`use-empty-values`,Ov=[``,void 0,null],kv=Q({emptyValues:Array,valueOnClear:{type:Z([String,Number,Boolean,Function]),default:void 0,validator:e=>(e=n(e)?e():e,A(e)?e.every(e=>!e):!e)}}),Av=(e,t)=>{let r=Xe()?l(Ev,q({})):q({}),i=K(()=>e.emptyValues||r.value.emptyValues||Ov),a=K(()=>n(e.valueOnClear)?e.valueOnClear():e.valueOnClear===void 0?n(r.value.valueOnClear)?r.value.valueOnClear():r.value.valueOnClear===void 0?t===void 0?void 0:t:r.value.valueOnClear:e.valueOnClear),o=e=>{let t=!0;return t=A(e)?i.value.some(t=>sd(e,t)):i.value.includes(e),t};return o(a.value)||Jd(Dv,`value-on-clear should be a value of empty-values`),{emptyValues:i,valueOnClear:a,isEmptyValue:o}},jv=Q({ariaLabel:String,ariaOrientation:{type:String,values:[`horizontal`,`vertical`,`undefined`]},ariaControls:String}),Mv=e=>Sd(jv,e),Nv=e=>{let t=e.props,n=A(t)?ad(t.map(e=>[e,{}])):t;e.setPropsDefaults=t=>{if(n){for(let[e,r]of Object.entries(t)){let t=n[e];if(Ye(n,e)){if(xs(t)){n[e]={...t,default:r};continue}n[e]={type:t,default:r}}}e.props=n}}},Pv=(e,t)=>{if(e.install=n=>{for(let r of[e,...Object.values(t??{})])n.component(r.name,r)},t)for(let[n,r]of Object.entries(t))e[n]=r;return Nv(e),e},Fv=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),Iv=(e,t)=>(e.install=n=>{n.directive(t,e)},e),Lv=e=>(e.install=ge,Nv(e),e),Rv=`ElAffix`,zv=Pv(z({name:Rv,__name:`affix`,props:Wd,emits:Gd,setup(n,{expose:r,emit:i}){let a=n,o=i,s=$(`affix`),c=Le(),l=Le(),u=Le(),{height:f}=Yf(),{height:p,width:h,top:g,bottom:_,left:v,update:y}=Wf(l,{windowScroll:!1}),b=Wf(c),x=q(!1),S=q(0),C=q(0),w=K(()=>!a.teleported||!x.value),T=K(()=>({display:`flow-root`,height:x.value?`${p.value}px`:``,width:x.value?`${h.value}px`:``})),E=K(()=>{if(!x.value)return{};let e=bp(a.offset);return{height:`${p.value}px`,width:`${h.value}px`,top:a.position===`top`?e:``,bottom:a.position===`bottom`?e:``,left:a.teleported?`${v.value}px`:``,transform:C.value?`translateY(${C.value}px)`:``,zIndex:a.zIndex}}),D=()=>{if(!u.value)return;S.value=u.value instanceof Window?document.documentElement.scrollTop:u.value.scrollTop||0;let{position:e,target:t,offset:n}=a,r=n+p.value;if(e===`top`)if(t){let e=b.bottom.value-r;x.value=n>g.value&&b.bottom.value>0,C.value=e<0?e:0}else x.value=n>g.value;else if(t){let e=f.value-b.top.value-r;x.value=f.value-n<_.value&&f.value>b.top.value,C.value=e<0?-e:0}else x.value=f.value-n<_.value},O=async()=>{if(!x.value){y();return}x.value=!1,await U(),y(),x.value=!0};return M(x,e=>o(xr,e)),d(()=>{a.target?(c.value=document.querySelector(a.target)??void 0,c.value||qd(Rv,`Target does not exist: ${a.target}`)):c.value=document.documentElement,u.value=Ip(l.value,!0),y()}),t(()=>{U(O)}),ee(()=>{x.value=!1}),kf(u,`scroll`,async()=>{y(),await U(),o(`scroll`,{scrollTop:S.value,fixed:x.value})}),e(D),r({update:D,updateRoot:O}),(e,t)=>(N(),W(`div`,{ref_key:`root`,ref:l,class:F(Y(s).b()),style:m(T.value)},[(N(),H(Fe,{disabled:w.value,to:n.appendTo},[B(`div`,{class:F({[Y(s).m(`fixed`)]:x.value}),style:m(E.value)},[I(e.$slots,`default`)],6)],8,[`disabled`,`to`]))],6))}})),Bv=z({name:`ArrowDown`,__name:`arrow-down`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z`})]))}}),Vv=z({name:`ArrowLeft`,__name:`arrow-left`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0`})]))}}),Hv=z({name:`ArrowRight`,__name:`arrow-right`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z`})]))}}),Uv=z({name:`ArrowUp`,__name:`arrow-up`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0`})]))}}),Wv=z({name:`Back`,__name:`back`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64`}),B(`path`,{fill:`currentColor`,d:`m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z`})]))}}),Gv=z({name:`Calendar`,__name:`calendar`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64`})]))}}),Kv=z({name:`CaretRight`,__name:`caret-right`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M384 192v640l384-320.064z`})]))}}),qv=z({name:`CaretTop`,__name:`caret-top`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 320 192 704h639.936z`})]))}}),Jv=z({name:`Check`,__name:`check`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z`})]))}}),Yv=z({name:`CircleCheckFilled`,__name:`circle-check-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z`})]))}}),Xv=z({name:`CircleCheck`,__name:`circle-check`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896`}),B(`path`,{fill:`currentColor`,d:`M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z`})]))}}),Zv=z({name:`CircleCloseFilled`,__name:`circle-close-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z`})]))}}),Qv=z({name:`CircleClose`,__name:`circle-close`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z`}),B(`path`,{fill:`currentColor`,d:`M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896`})]))}}),$v=z({name:`Clock`,__name:`clock`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896`}),B(`path`,{fill:`currentColor`,d:`M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32`}),B(`path`,{fill:`currentColor`,d:`M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32`})]))}}),ey=z({name:`Close`,__name:`close`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z`})]))}}),ty=z({name:`Connection`,__name:`connection`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M640 384v64H448a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h320a128 128 0 0 0 128-128V576a128 128 0 0 0-64-110.848V394.88c74.56 26.368 128 97.472 128 181.056v128a192 192 0 0 1-192 192H448a192 192 0 0 1-192-192V576a192 192 0 0 1 192-192z`}),B(`path`,{fill:`currentColor`,d:`M384 640v-64h192a128 128 0 0 0 128-128V320a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128v128a128 128 0 0 0 64 110.848v70.272A192.06 192.06 0 0 1 64 448V320a192 192 0 0 1 192-192h320a192 192 0 0 1 192 192v128a192 192 0 0 1-192 192z`})]))}}),ny=z({name:`DArrowLeft`,__name:`d-arrow-left`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672zm256 0a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672z`})]))}}),ry=z({name:`DArrowRight`,__name:`d-arrow-right`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L764.736 512 452.864 192a30.59 30.59 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L508.736 512 196.864 192a30.59 30.59 0 0 1 0-42.688`})]))}}),iy=z({name:`Delete`,__name:`delete`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32`})]))}}),ay=z({name:`Document`,__name:`document`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z`})]))}}),oy=z({name:`FullScreen`,__name:`full-screen`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z`})]))}}),sy=z({name:`Hide`,__name:`hide`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176`}),B(`path`,{fill:`currentColor`,d:`M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48`})]))}}),cy=z({name:`InfoFilled`,__name:`info-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z`})]))}}),ly=z({name:`Link`,__name:`link`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M715.648 625.152 670.4 579.904l90.496-90.56c75.008-74.944 85.12-186.368 22.656-248.896-62.528-62.464-173.952-52.352-248.96 22.656L444.16 353.6l-45.248-45.248 90.496-90.496c100.032-99.968 251.968-110.08 339.456-22.656 87.488 87.488 77.312 239.424-22.656 339.456l-90.496 90.496zm-90.496 90.496-90.496 90.496C434.624 906.112 282.688 916.224 195.2 828.8c-87.488-87.488-77.312-239.424 22.656-339.456l90.496-90.496 45.248 45.248-90.496 90.56c-75.008 74.944-85.12 186.368-22.656 248.896 62.528 62.464 173.952 52.352 248.96-22.656l90.496-90.496zm0-362.048 45.248 45.248L398.848 670.4 353.6 625.152z`})]))}}),uy=z({name:`List`,__name:`list`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M704 192h160v736H160V192h160v64h384zM288 512h448v-64H288zm0 256h448v-64H288zm96-576V96h256v96z`})]))}}),dy=z({name:`Loading`,__name:`loading`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0`})]))}}),fy=z({name:`Minus`,__name:`minus`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64`})]))}}),py=z({name:`MoreFilled`,__name:`more-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224`})]))}}),my=z({name:`More`,__name:`more`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96`})]))}}),hy=z({name:`Odometer`,__name:`odometer`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896`}),B(`path`,{fill:`currentColor`,d:`M192 512a320 320 0 1 1 640 0 32 32 0 1 1-64 0 256 256 0 1 0-512 0 32 32 0 0 1-64 0`}),B(`path`,{fill:`currentColor`,d:`M570.432 627.84A96 96 0 1 1 509.568 608l60.992-187.776A32 32 0 1 1 631.424 440l-60.992 187.776zM502.08 734.464a32 32 0 1 0 19.84-60.928 32 32 0 0 0-19.84 60.928`})]))}}),gy=z({name:`PictureFilled`,__name:`picture-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112M256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384`})]))}}),_y=z({name:`Plus`,__name:`plus`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z`})]))}}),vy=z({name:`QuestionFilled`,__name:`question-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784`})]))}}),yy=z({name:`RefreshLeft`,__name:`refresh-left`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z`})]))}}),by=z({name:`RefreshRight`,__name:`refresh-right`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88`})]))}}),xy=z({name:`ScaleToOriginal`,__name:`scale-to-original`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118m-361.412 0a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118M512 361.412a30.12 30.12 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.12 30.12 0 0 0 512 361.412M512 512a30.12 30.12 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.12 30.12 0 0 0 512 512`})]))}}),Sy=z({name:`Search`,__name:`search`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704`})]))}}),Cy=z({name:`Setting`,__name:`setting`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256`})]))}}),wy=z({name:`SortDown`,__name:`sort-down`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0`})]))}}),Ty=z({name:`SortUp`,__name:`sort-up`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248`})]))}}),Ey=z({name:`StarFilled`,__name:`star-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M313.6 924.48a70.4 70.4 0 0 1-74.152-5.365 70.4 70.4 0 0 1-27.992-68.875l37.888-220.928L88.96 472.96a70.4 70.4 0 0 1 3.788-104.225A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 100.246-28.595 70.4 70.4 0 0 1 25.962 28.595l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z`})]))}}),Dy=z({name:`Star`,__name:`star`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z`})]))}}),Oy=z({name:`SuccessFilled`,__name:`success-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z`})]))}}),ky=z({name:`View`,__name:`view`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160`})]))}}),Ay=z({name:`WarningFilled`,__name:`warning-filled`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4`})]))}}),jy=z({name:`ZoomIn`,__name:`zoom-in`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z`})]))}}),My=z({name:`ZoomOut`,__name:`zoom-out`,setup(e){return(e,t)=>(N(),W(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 1024 1024`},[B(`path`,{fill:`currentColor`,d:`m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64`})]))}}),Ny=Z([String,Object,Function]),Py={Close:ey},Fy={Close:ey,SuccessFilled:Oy,InfoFilled:cy,WarningFilled:Ay,CircleCloseFilled:Zv},Iy={primary:cy,success:Oy,warning:Ay,error:Zv,info:cy},Ly={validating:dy,success:Xv,error:Qv},Ry=Q({title:{type:String,default:``},description:{type:String,default:``},type:{type:String,values:Rd(Iy),default:`info`},closable:{type:Boolean,default:!0},closeText:{type:String,default:``},showIcon:Boolean,center:Boolean,effect:{type:String,values:[`light`,`dark`],default:`light`}}),zy={close:e=>e instanceof MouseEvent},By=Pv(z({name:`ElIcon`,inheritAttrs:!1,__name:`icon`,props:Q({size:{type:Z([Number,String])},color:{type:String}}),setup(e){let t=e,n=$(`icon`),r=K(()=>{let{size:e,color:n}=t,r=bp(e);return!r&&!n?{}:{fontSize:r,"--color":n}});return(e,t)=>(N(),W(`i`,k({class:Y(n).b(),style:r.value},e.$attrs),[I(e.$slots,`default`)],16))}})),Vy=Pv(z({name:`ElAlert`,__name:`alert`,props:Ry,emits:zy,setup(e,{emit:t}){let{Close:n}=Fy,r=e,i=t,a=le(),o=$(`alert`),s=q(!0),c=K(()=>Iy[r.type]),l=K(()=>{if(r.description)return!0;let e=a.default?.();return e?vv(e).some(e=>!hv(e)):!1}),u=e=>{s.value=!1,i(`close`,e)};return(t,r)=>(N(),H(pt,{name:Y(o).b(`fade`),persisted:``},{default:V(()=>[Ge(B(`div`,{class:F([Y(o).b(),Y(o).m(e.type),Y(o).is(`center`,e.center),Y(o).is(e.effect)]),role:`alert`},[e.showIcon&&(t.$slots.icon||c.value)?(N(),H(Y(By),{key:0,class:F([Y(o).e(`icon`),Y(o).is(`big`,l.value)])},{default:V(()=>[I(t.$slots,`icon`,{},()=>[(N(),H(L(c.value)))])]),_:3},8,[`class`])):G(`v-if`,!0),B(`div`,{class:F(Y(o).e(`content`))},[e.title||t.$slots.title?(N(),W(`span`,{key:0,class:F([Y(o).e(`title`),{"with-description":l.value}])},[I(t.$slots,`title`,{},()=>[Ke(S(e.title),1)])],2)):G(`v-if`,!0),l.value?(N(),W(`p`,{key:1,class:F(Y(o).e(`description`))},[I(t.$slots,`default`,{},()=>[Ke(S(e.description),1)])],2)):G(`v-if`,!0),e.closable?(N(),W(R,{key:2},[e.closeText?(N(),W(`div`,{key:0,class:F([Y(o).e(`close-btn`),Y(o).is(`customed`)]),onClick:u},S(e.closeText),3)):(N(),H(Y(By),{key:1,class:F(Y(o).e(`close-btn`)),onClick:u},{default:V(()=>[J(Y(n))]),_:1},8,[`class`]))],64)):G(`v-if`,!0)],2)],2),[[jt,s.value]])]),_:3},8,[`name`]))}})),Hy=[`dialog`,`grid`,`group`,`listbox`,`menu`,`navigation`,`tooltip`,`tree`],Uy=Q({role:{type:String,values:Hy,default:`tooltip`}}),Wy=Symbol(`popper`),Gy=Symbol(`popperContent`),Ky=z({name:`ElPopperArrow`,inheritAttrs:!1,__name:`arrow`,setup(e,{expose:t}){let n=$(`popper`),{arrowRef:r,arrowStyle:i}=l(Gy,void 0);return T(()=>{r.value=void 0}),t({arrowRef:r}),(e,t)=>(N(),W(`span`,{ref_key:`arrowRef`,ref:r,class:F(Y(n).e(`arrow`)),style:m(Y(i)),"data-popper-arrow":``},null,6))}}),qy=Q({virtualRef:{type:Z(Object)},virtualTriggering:Boolean,onMouseenter:{type:Z(Function)},onMouseleave:{type:Z(Function)},onClick:{type:Z(Function)},onKeydown:{type:Z(Function)},onFocus:{type:Z(Function)},onBlur:{type:Z(Function)},onContextmenu:{type:Z(Function)},id:String,open:Boolean}),Jy=`ElOnlyChild`,Yy=z({name:Jy,setup(e,{slots:t,attrs:n}){let r=hg(l(pg)?.setForwardRef??ge);return()=>{let e=t.default?.(n);if(!e)return null;let[i,a]=Xy(e);return i?(a>1&&Jd(Jy,`requires exact only one valid child.`),Ge(Ae(i,n),[[r]])):(Jd(Jy,`no valid child node found`),null)}}});function Xy(e){if(!e)return[null,0];let t=e,n=t.filter(e=>e.type!==Te).length;for(let e of t){if(E(e))switch(e.type){case Te:continue;case He:case`svg`:return[Zy(e),n];case R:return Xy(e.children);default:return[e,n]}return[Zy(e),n]}return[null,0]}function Zy(e){return J(`span`,{class:$(`only-child`).e(`content`)},[e])}var Qy=z({name:`ElPopperTrigger`,inheritAttrs:!1,__name:`trigger`,props:qy,setup(e,{expose:t}){let n=e,{role:r,triggerRef:i}=l(Wy,void 0);mg(i);let a=K(()=>s.value?n.id:void 0),o=K(()=>{if(r&&r.value===`tooltip`)return n.open&&n.id?n.id:void 0}),s=K(()=>{if(r&&r.value!==`tooltip`)return r.value}),c=K(()=>s.value?`${n.open}`:void 0),u,f=[`onMouseenter`,`onMouseleave`,`onClick`,`onKeydown`,`onFocus`,`onBlur`,`onContextmenu`];return d(()=>{M(()=>n.virtualRef,e=>{e&&(i.value=Of(e))},{immediate:!0}),M(i,(e,t)=>{u?.(),u=void 0,Pd(t)&&f.forEach(e=>{let r=n[e];r&&t.removeEventListener(e.slice(2).toLowerCase(),r,[`onFocus`,`onBlur`].includes(e))}),Pd(e)&&(f.forEach(t=>{let r=n[t];r&&e.addEventListener(t.slice(2).toLowerCase(),r,[`onFocus`,`onBlur`].includes(t))}),rp(e)&&(u=M([a,o,s,c],t=>{[`aria-controls`,`aria-describedby`,`aria-haspopup`,`aria-expanded`].forEach((n,r)=>{cd(t[r])?e.removeAttribute(n):e.setAttribute(n,t[r])})},{immediate:!0}))),Pd(t)&&rp(t)&&[`aria-controls`,`aria-describedby`,`aria-haspopup`,`aria-expanded`].forEach(e=>t.removeAttribute(e))},{immediate:!0})}),T(()=>{if(u?.(),u=void 0,i.value&&Pd(i.value)){let e=i.value;f.forEach(t=>{let r=n[t];r&&e.removeEventListener(t.slice(2).toLowerCase(),r,[`onFocus`,`onBlur`].includes(t))}),i.value=void 0}}),t({triggerRef:i}),(t,n)=>e.virtualTriggering?G(`v-if`,!0):(N(),H(Y(Yy),k({key:0},t.$attrs,{"aria-controls":a.value,"aria-describedby":o.value,"aria-expanded":c.value,"aria-haspopup":s.value}),{default:V(()=>[I(t.$slots,`default`)]),_:3},16,[`aria-controls`,`aria-describedby`,`aria-expanded`,`aria-haspopup`]))}}),$y=Q({arrowOffset:{type:Number,default:5}}),eb={arrowOffset:5},tb=Q({...Q({boundariesPadding:{type:Number,default:0},fallbackPlacements:{type:Z(Array),default:void 0},gpuAcceleration:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:String,values:fm,default:`bottom`},popperOptions:{type:Z(Object),default:()=>({})},strategy:{type:String,values:[`fixed`,`absolute`],default:`absolute`}}),...$y,id:String,style:{type:Z([String,Array,Object,Boolean]),default:void 0},className:{type:Z([String,Array,Object])},effect:{type:Z(String),default:`dark`},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:Z([String,Array,Object])},popperStyle:{type:Z([String,Array,Object,Boolean]),default:void 0},referenceEl:{type:Z(Object)},triggerTargetEl:{type:Z(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Mv([`ariaLabel`]),loop:Boolean}),nb={boundariesPadding:0,gpuAcceleration:!0,offset:12,placement:`bottom`,popperOptions:()=>({}),strategy:`absolute`,...eb,effect:`dark`,enterable:!0,stopPopperMouseEvent:!0,visible:!1,pure:!1,focusOnShow:!1,trapping:!1,virtualTriggering:!1,loop:!1,style:void 0,popperStyle:void 0},rb={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},ib=Q({...Q({size:{type:String,values:wr},disabled:Boolean}),model:Object,rules:{type:Z(Object)},labelPosition:{type:String,values:[`left`,`right`,`top`],default:`right`},requireAsteriskPosition:{type:String,values:[`left`,`right`],default:`left`},labelWidth:{type:[String,Number],default:``},labelSuffix:{type:String,default:``},inline:Boolean,inlineMessage:Boolean,statusIcon:Boolean,showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:Boolean,scrollToError:Boolean,scrollIntoViewOptions:{type:Z([Object,Boolean]),default:!0}}),ab={validate:(e,t,n)=>(A(e)||P(e))&&jd(t)&&P(n)},ob=Symbol(`formContextKey`),sb=Symbol(`formItemContextKey`),cb=(e,t={})=>{let n=q(void 0),r=t.prop?n:em(`size`),i=t.global?n:Cv(),a=t.form?{size:void 0}:l(ob,void 0),o=t.formItem?{size:void 0}:l(sb,void 0);return K(()=>r.value||Y(e)||o?.size||a?.size||i.value||``)},lb=e=>{let t=em(`disabled`),n=l(ob,void 0);return K(()=>t.value??Y(e)??n?.disabled??!1)},ub=()=>({form:l(ob,void 0),formItem:l(sb,void 0)}),db=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:r})=>{n||=q(!1),r||=q(!1);let i=Xe(),a=()=>{let e=i?.parent;for(;e;){if(e.type.name===`ElFormItem`)return!1;if(e.type.name===`ElLabelWrap`)return!0;e=e.parent}return!1},o=q(),s,c=K(()=>!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&t.inputIds?.length<=1));return d(()=>{s=M([we(e,`id`),n],([e,n])=>{let i=e??(n?void 0:rg().value);i!==o.value&&(t?.removeInputId&&!a()&&(o.value&&t.removeInputId(o.value),!r?.value&&!n&&i&&t.addInputId(i)),o.value=i)},{immediate:!0})}),_(()=>{s&&s(),t?.removeInputId&&o.value&&t.removeInputId(o.value)}),{isLabeledByFormItem:c,inputId:o}},fb=Q({label:String,labelWidth:{type:[String,Number]},labelPosition:{type:String,values:[`left`,`right`,`top`,``],default:``},prop:{type:Z([String,Array])},required:{type:Boolean,default:void 0},rules:{type:Z([Object,Array])},error:String,validateStatus:{type:String,values:[``,`error`,`validating`,`success`]},for:String,inlineMessage:{type:Boolean,default:void 0},showMessage:{type:Boolean,default:!0},size:{type:String,values:wr}}),pb=e=>[...new Set(e)],mb=e=>A(e)?e[0]:e,hb=e=>!e&&e!==0?[]:A(e)?e:[e],gb=`ElForm`;function _b(){let e=q([]),t=K(()=>{if(!e.value.length)return`0`;let t=Math.max(...e.value);return t?`${t}px`:``});function n(n){let r=e.value.indexOf(n);return r===-1&&t.value===`0`&&Jd(gb,`unexpected width ${n}`),r}function r(t,r){if(t&&r){let i=n(r);e.value.splice(i,1,t)}else t&&e.value.push(t)}function i(t){let r=n(t);r>-1&&e.value.splice(r,1)}return{autoLabelWidth:t,registerLabelWidth:r,deregisterLabelWidth:i}}var vb=(e,t)=>{let n=Cs(t).map(e=>A(e)?e.join(`.`):e);return n.length>0?e.filter(e=>e.propString&&n.includes(e.propString)):e},yb=`ElForm`,bb=z({name:yb,__name:`form`,props:ib,emits:ab,setup(e,{expose:t,emit:r}){let i=e,a=r,o=q(),s=ve([]),c=new Map,l=cb(),u=$(`form`),d=K(()=>{let{labelPosition:e,inline:t}=i;return[u.b(),u.m(l.value||`default`),{[u.m(`label-${e}`)]:e,[u.m(`inline`)]:t}]}),f=e=>vb(s,[e])[0],p=e=>{s.includes(e)||s.push(e),e.propString&&(c.has(e.propString)?e.setInitialValue(c.get(e.propString)):c.set(e.propString,Ml(e.fieldValue)))},m=(e,t)=>{if(t){c.delete(t);return}let n=s.indexOf(e);n>-1&&(s.splice(n,1),e.propString&&c.set(e.propString,Ml(e.getInitialValue())))},h=e=>{if(!i.model){Jd(yb,`model is required for setInitialValues to work.`);return}if(!e){Jd(yb,`initModel is required for setInitialValues to work.`);return}for(let t of c.keys())c.set(t,Ml(Bd(e,t).value));s.forEach(t=>{t.prop&&t.setInitialValue(Bd(e,t.prop).value)})},g=(e=[])=>{if(!i.model){Jd(yb,`model is required for resetFields to work.`);return}vb(s,e).forEach(e=>e.resetField());let t=new Set(s.map(e=>e.propString).filter(Boolean)),n=e.length>0?Cs(e).map(e=>A(e)?e.join(`.`):e):[...c.keys()];for(let e of n)!t.has(e)&&c.has(e)&&(Bd(i.model,e).value=Ml(c.get(e)))},_=(e=[])=>{vb(s,e).forEach(e=>e.clearValidate())},v=K(()=>{let e=!!i.model;return e||Jd(yb,`model is required for validate to work.`),e}),y=e=>{if(s.length===0)return[];let t=vb(s,e);return t.length?t:(Jd(yb,`please pass correct props!`),[])},b=async e=>S(void 0,e),x=async(e=[])=>{if(!v.value)return!1;let t=y(e);if(t.length===0)return!0;let n={};for(let e of t)try{await e.validate(``),e.validateState===`error`&&!e.error&&e.resetField()}catch(e){n={...n,...e}}return Object.keys(n).length===0?!0:Promise.reject(n)},S=async(e=[],t)=>{let r=!1,a=!n(t);try{return r=await x(e),r===!0&&await t?.(r),r}catch(e){if(e instanceof Error)throw e;let n=e;return i.scrollToError&&o.value&&o.value.querySelector(`.${u.b()}-item.is-error`)?.scrollIntoView(i.scrollIntoViewOptions),!r&&await t?.(!1,n),a&&Promise.reject(n)}},C=e=>{let t=f(e);t&&t.$el?.scrollIntoView(i.scrollIntoViewOptions)};return M(()=>i.rules,()=>{i.validateOnRuleChange&&b().catch(ge)},{deep:!0,flush:`post`}),Qe(ob,ve({...Se(i),emit:a,resetFields:g,clearValidate:_,validateField:S,getField:f,addField:p,removeField:m,setInitialValues:h,..._b()})),t({validate:b,validateField:S,resetFields:g,clearValidate:_,scrollToField:C,getField:f,fields:s,setInitialValues:h}),(e,t)=>(N(),W(`form`,{ref_key:`formRef`,ref:o,class:F(d.value)},[I(e.$slots,`default`)],2))}}),xb=`ElLabelWrap`,Sb=z({name:xb,props:{isAutoWidth:Boolean,updateAll:Boolean},setup(e,{slots:t}){let n=l(ob,void 0),r=l(sb);r||qd(xb,`usage: `);let i=$(`form`),a=q(),o=q(0),s=()=>{if(a.value?.firstElementChild){let e=window.getComputedStyle(a.value.firstElementChild).width;return Math.ceil(Number.parseFloat(e))}else return 0},c=(r=`update`)=>{U(()=>{t.default&&e.isAutoWidth&&(r===`update`?o.value=s():r===`remove`&&n?.deregisterLabelWidth(o.value))})},u=()=>c(`update`);return d(()=>{u()}),T(()=>{c(`remove`)}),C(()=>u()),M(o,(t,r)=>{e.updateAll&&n?.registerLabelWidth(t,r)}),Uf(K(()=>a.value?.firstElementChild??null),u),()=>{if(!t)return null;let{isAutoWidth:s}=e;if(s){let e=n?.autoLabelWidth,s=r?.hasLabel,c={};if(s&&e&&e!==`auto`){let t=Math.max(0,Number.parseInt(e,10)-o.value),i=(r.labelPosition||n.labelPosition)===`left`?`marginRight`:`marginLeft`;t&&(c[i]=`${t}px`)}return J(`div`,{ref:a,class:[i.be(`item`,`label-wrap`)],style:c},[t.default?.()])}else return J(R,{ref:a},[t.default?.()])}}});function Cb(){return Cb=Object.assign?Object.assign.bind():function(e){for(var t=1;t`u`||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy==`function`)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ob(e,t,n){return Ob=Db()?Reflect.construct.bind():function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&Eb(i,n.prototype),i},Ob.apply(null,arguments)}function kb(e){return Function.toString.call(e).indexOf(`[native code]`)!==-1}function Ab(e){var t=typeof Map==`function`?new Map:void 0;return Ab=function(e){if(e===null||!kb(e))return e;if(typeof e!=`function`)throw TypeError(`Super expression must either be null or a function`);if(t!==void 0){if(t.has(e))return t.get(e);t.set(e,n)}function n(){return Ob(e,arguments,Tb(this).constructor)}return n.prototype=Object.create(e.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),Eb(n,e)},Ab(e)}var jb=/%[sdj%]/g,Mb=function(){};function Nb(e){if(!e||!e.length)return null;var t={};return e.forEach(function(e){var n=e.field;t[n]=t[n]||[],t[n].push(e)}),t}function Pb(e){var t=[...arguments].slice(1),n=0,r=t.length;return typeof e==`function`?e.apply(null,t):typeof e==`string`?e.replace(jb,function(e){if(e===`%%`)return`%`;if(n>=r)return e;switch(e){case`%s`:return String(t[n++]);case`%d`:return Number(t[n++]);case`%j`:try{return JSON.stringify(t[n++])}catch{return`[Circular]`}break;default:return e}}):e}function Fb(e){return e===`string`||e===`url`||e===`hex`||e===`email`||e===`date`||e===`pattern`}function Ib(e,t){return!!(e==null||t===`array`&&Array.isArray(e)&&!e.length||Fb(t)&&typeof e==`string`&&!e)}function Lb(e,t,n){var r=[],i=0,a=e.length;function o(e){r.push.apply(r,e||[]),i++,i===a&&n(r)}e.forEach(function(e){t(e,o)})}function Rb(e,t,n){var r=0,i=e.length;function a(o){if(o&&o.length){n(o);return}var s=r;r+=1,s()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+\.)+[a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}))$/,hex:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/i},Zb={integer:function(e){return Zb.number(e)&&parseInt(e,10)===e},float:function(e){return Zb.number(e)&&!Zb.integer(e)},array:function(e){return Array.isArray(e)},regexp:function(e){if(e instanceof RegExp)return!0;try{return!!new RegExp(e)}catch{return!1}},date:function(e){return typeof e.getTime==`function`&&typeof e.getMonth==`function`&&typeof e.getYear==`function`&&!isNaN(e.getTime())},number:function(e){return isNaN(e)?!1:typeof e==`number`},object:function(e){return typeof e==`object`&&!Zb.array(e)},method:function(e){return typeof e==`function`},email:function(e){return typeof e==`string`&&e.length<=320&&!!e.match(Xb.email)},url:function(e){return typeof e==`string`&&e.length<=2048&&!!e.match(Yb())},hex:function(e){return typeof e==`string`&&!!e.match(Xb.hex)}},Qb=function(e,t,n,r,i){if(e.required&&t===void 0){Kb(e,t,n,r,i);return}var a=[`integer`,`float`,`array`,`regexp`,`object`,`method`,`email`,`number`,`date`,`url`,`hex`],o=e.type;a.indexOf(o)>-1?Zb[o](t)||r.push(Pb(i.messages.types[o],e.fullField,e.type)):o&&typeof t!==e.type&&r.push(Pb(i.messages.types[o],e.fullField,e.type))},$b=function(e,t,n,r,i){var a=typeof e.len==`number`,o=typeof e.min==`number`,s=typeof e.max==`number`,c=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,l=t,u=null,d=typeof t==`number`,f=typeof t==`string`,p=Array.isArray(t);if(d?u=`number`:f?u=`string`:p&&(u=`array`),!u)return!1;p&&(l=t.length),f&&(l=t.replace(c,`_`).length),a?l!==e.len&&r.push(Pb(i.messages[u].len,e.fullField,e.len)):o&&!s&&le.max?r.push(Pb(i.messages[u].max,e.fullField,e.max)):o&&s&&(le.max)&&r.push(Pb(i.messages[u].range,e.fullField,e.min,e.max))},ex=`enum`,tx={required:Kb,whitespace:qb,type:Qb,range:$b,enum:function(e,t,n,r,i){e[ex]=Array.isArray(e[ex])?e[ex]:[],e[ex].indexOf(t)===-1&&r.push(Pb(i.messages[ex],e.fullField,e[ex].join(`, `)))},pattern:function(e,t,n,r,i){e.pattern&&(e.pattern instanceof RegExp?(e.pattern.lastIndex=0,e.pattern.test(t)||r.push(Pb(i.messages.pattern.mismatch,e.fullField,t,e.pattern))):typeof e.pattern==`string`&&(new RegExp(e.pattern).test(t)||r.push(Pb(i.messages.pattern.mismatch,e.fullField,t,e.pattern))))}},nx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t,`string`)&&!e.required)return n();tx.required(e,t,r,a,i,`string`),Ib(t,`string`)||(tx.type(e,t,r,a,i),tx.range(e,t,r,a,i),tx.pattern(e,t,r,a,i),e.whitespace===!0&&tx.whitespace(e,t,r,a,i))}n(a)},rx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&tx.type(e,t,r,a,i)}n(a)},ix=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t===``&&(t=void 0),Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&(tx.type(e,t,r,a,i),tx.range(e,t,r,a,i))}n(a)},ax=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&tx.type(e,t,r,a,i)}n(a)},ox=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),Ib(t)||tx.type(e,t,r,a,i)}n(a)},sx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&(tx.type(e,t,r,a,i),tx.range(e,t,r,a,i))}n(a)},cx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&(tx.type(e,t,r,a,i),tx.range(e,t,r,a,i))}n(a)},lx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(t==null&&!e.required)return n();tx.required(e,t,r,a,i,`array`),t!=null&&(tx.type(e,t,r,a,i),tx.range(e,t,r,a,i))}n(a)},ux=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&tx.type(e,t,r,a,i)}n(a)},dx=`enum`,fx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i),t!==void 0&&tx[dx](e,t,r,a,i)}n(a)},px=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t,`string`)&&!e.required)return n();tx.required(e,t,r,a,i),Ib(t,`string`)||tx.pattern(e,t,r,a,i)}n(a)},mx=function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t,`date`)&&!e.required)return n();if(tx.required(e,t,r,a,i),!Ib(t,`date`)){var o=t instanceof Date?t:new Date(t);tx.type(e,o,r,a,i),o&&tx.range(e,o.getTime(),r,a,i)}}n(a)},hx=function(e,t,n,r,i){var a=[],o=Array.isArray(t)?`array`:typeof t;tx.required(e,t,r,a,i,o),n(a)},gx=function(e,t,n,r,i){var a=e.type,o=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t,a)&&!e.required)return n();tx.required(e,t,r,o,i,a),Ib(t,a)||tx.type(e,t,r,o,i)}n(o)},_x={string:nx,method:rx,number:ix,boolean:ax,regexp:ox,integer:sx,float:cx,array:lx,object:ux,enum:fx,pattern:px,date:mx,url:gx,hex:gx,email:gx,required:hx,any:function(e,t,n,r,i){var a=[];if(e.required||!e.required&&r.hasOwnProperty(e.field)){if(Ib(t)&&!e.required)return n();tx.required(e,t,r,a,i)}n(a)}};function vx(){return{default:`Validation error on field %s`,required:`%s is required`,enum:`%s must be one of %s`,whitespace:`%s cannot be empty`,date:{format:`%s date %s is invalid for format %s`,parse:`%s date could not be parsed, %s is invalid `,invalid:`%s date %s is invalid`},types:{string:`%s is not a %s`,method:`%s is not a %s (function)`,array:`%s is not an %s`,object:`%s is not an %s`,number:`%s is not a %s`,date:`%s is not a %s`,boolean:`%s is not a %s`,integer:`%s is not an %s`,float:`%s is not a %s`,regexp:`%s is not a valid %s`,email:`%s is not a valid %s`,url:`%s is not a valid %s`,hex:`%s is not a valid %s`},string:{len:`%s must be exactly %s characters`,min:`%s must be at least %s characters`,max:`%s cannot be longer than %s characters`,range:`%s must be between %s and %s characters`},number:{len:`%s must equal %s`,min:`%s cannot be less than %s`,max:`%s cannot be greater than %s`,range:`%s must be between %s and %s`},array:{len:`%s must be exactly %s in length`,min:`%s cannot be less than %s in length`,max:`%s cannot be greater than %s in length`,range:`%s must be between %s and %s in length`},pattern:{mismatch:`%s value %s does not match pattern %s`},clone:function(){var e=JSON.parse(JSON.stringify(this));return e.clone=this.clone,e}}}var yx=vx(),bx=function(){function e(e){this.rules=null,this._messages=yx,this.define(e)}var t=e.prototype;return t.define=function(e){var t=this;if(!e)throw Error(`Cannot configure a schema with no rules`);if(typeof e!=`object`||Array.isArray(e))throw Error(`Rules must be an object`);this.rules={},Object.keys(e).forEach(function(n){var r=e[n];t.rules[n]=Array.isArray(r)?r:[r]})},t.messages=function(e){return e&&(this._messages=Gb(vx(),e)),this._messages},t.validate=function(t,n,r){var i=this;n===void 0&&(n={}),r===void 0&&(r=function(){});var a=t,o=n,s=r;if(typeof o==`function`&&(s=o,o={}),!this.rules||Object.keys(this.rules).length===0)return s&&s(null,a),Promise.resolve(a);function c(e){var t=[],n={};function r(e){if(Array.isArray(e)){var n;t=(n=t).concat.apply(n,e)}else t.push(e)}for(var i=0;ir.labelPosition||a?.labelPosition),x=K(()=>b.value===`top`?{}:{width:bp(r.labelWidth??a?.labelWidth)}),C=K(()=>{if(b.value===`top`||a?.inline||!r.label&&!r.labelWidth&&P)return{};let e=bp(r.labelWidth??a?.labelWidth);return!r.label&&!i.label?{marginLeft:e}:{}}),w=K(()=>[c.b(),c.m(s.value),c.is(`error`,p.value===`error`),c.is(`validating`,p.value===`validating`),c.is(`success`,p.value===`success`),c.is(`required`,ae.value||r.required),c.is(`no-asterisk`,a?.hideRequiredAsterisk),a?.requireAsteriskPosition===`right`?`asterisk-right`:`asterisk-left`,{[c.m(`feedback`)]:a?.statusIcon,[c.m(`label-${b.value}`)]:b.value}]),E=K(()=>jd(r.inlineMessage)?r.inlineMessage:a?.inlineMessage||!1),D=K(()=>[c.e(`error`),{[c.em(`error`,`inline`)]:E.value}]),O=K(()=>r.prop?A(r.prop)?r.prop.join(`.`):r.prop:``),k=K(()=>!!(r.label||i.label)),ee=K(()=>r.for??(f.value.length===1?f.value[0]:void 0)),j=K(()=>!ee.value&&k.value),P=!!o,te=K(()=>{let e=a?.model;if(!(!e||!r.prop))return Bd(e,r.prop).value}),ne=K(()=>{let{required:e}=r,t=[];r.rules&&t.push(...Cs(r.rules));let n=a?.rules;if(n&&r.prop){let e=Bd(n,r.prop).value;e&&t.push(...Cs(e))}if(e!==void 0){let n=t.map((e,t)=>[e,t]).filter(([e])=>`required`in e);if(n.length>0)for(let[r,i]of n)r.required!==e&&(t[i]={...r,required:e});else t.push({required:e})}return t}),re=K(()=>ne.value.length>0),ie=e=>ne.value.filter(t=>!t.trigger||!e?!0:A(t.trigger)?t.trigger.includes(e):t.trigger===e).map(({trigger:e,...t})=>t),ae=K(()=>ne.value.some(e=>e.required)),oe=K(()=>h.value===`error`&&r.showMessage&&(a?.showMessage??!0)),se=K(()=>`${r.label||``}${a?.labelSuffix||``}`),ce=e=>{p.value=e},ue=e=>{let{errors:t,fields:n}=e;(!t||!n)&&console.error(e),ce(`error`),g.value=t?t?.[0]?.message??`${r.prop} is required`:``,a?.emit(`validate`,r.prop,!1,g.value)},de=()=>{ce(`success`),a?.emit(`validate`,r.prop,!0,``)},fe=async e=>{let t=O.value;return new bx({[t]:e}).validate({[t]:te.value},{firstFields:!0}).then(()=>(de(),!0)).catch(e=>(ue(e),Promise.reject(e)))},pe=async(e,t)=>{if(y||!r.prop)return!1;let i=n(t);if(!re.value)return t?.(!1),!1;let a=ie(e);return a.length===0?(t?.(!0),!0):(ce(`validating`),fe(a).then(()=>(t?.(!0),!0)).catch(e=>{let{fields:n}=e;return t?.(!1,n),i?!1:Promise.reject(n)}))},me=()=>{ce(``),g.value=``,y=!1},R=async()=>{let e=a?.model;if(!e||!r.prop)return;let t=Bd(e,r.prop);y=!0,t.value=Ml(v),await U(),me(),y=!1},he=e=>{f.value.includes(e)||f.value.push(e)},z=e=>{f.value=f.value.filter(t=>t!==e)},ge=e=>{v=Ml(e)},_e=()=>v;M(()=>r.error,e=>{g.value=e||``,ce(e?`error`:``)},{immediate:!0}),M(()=>r.validateStatus,e=>ce(e||``));let ye=ve({...Se(r),$el:_,size:s,validateMessage:g,validateState:p,labelId:u,inputIds:f,isGroup:j,hasLabel:k,fieldValue:te,addInputId:he,removeInputId:z,resetField:R,clearValidate:me,validate:pe,propString:O,setInitialValue:ge,getInitialValue:_e});return Qe(sb,ye),M(O,(e,t)=>{!a||!t||(a.removeField(ye,t),e&&(ge(te.value),a.addField(ye)))}),d(()=>{r.prop&&(ge(te.value),a?.addField(ye))}),T(()=>{a?.removeField(ye)}),t({size:s,validateMessage:g,validateState:p,validate:pe,clearValidate:me,resetField:R,setInitialValue:ge}),(t,n)=>(N(),W(`div`,{ref_key:`formItemRef`,ref:_,class:F(w.value),role:j.value?`group`:void 0,"aria-labelledby":j.value?Y(u):void 0},[J(Y(Sb),{"is-auto-width":x.value.width===`auto`,"update-all":Y(a)?.labelWidth===`auto`},{default:V(()=>[e.label||t.$slots.label?(N(),H(L(ee.value?`label`:`div`),{key:0,id:Y(u),for:ee.value,class:F(Y(c).e(`label`)),style:m(x.value)},{default:V(()=>[I(t.$slots,`label`,{label:se.value},()=>[Ke(S(se.value),1)])]),_:3},8,[`id`,`for`,`class`,`style`])):G(`v-if`,!0)]),_:3},8,[`is-auto-width`,`update-all`]),B(`div`,{class:F(Y(c).e(`content`)),style:m(C.value)},[I(t.$slots,`default`),J(un,{name:`${Y(c).namespace.value}-zoom-in-top`},{default:V(()=>[oe.value?I(t.$slots,`error`,{key:0,error:g.value},()=>[B(`div`,{class:F(D.value)},S(g.value),3)]):G(`v-if`,!0)]),_:3},8,[`name`])],6)],10,xx))}}),Cx=Pv(bb,{FormItem:Sx}),wx=Lv(Sx),Tx=`focus-trap.focus-after-trapped`,Ex=`focus-trap.focus-after-released`,Dx=`focus-trap.focusout-prevented`,Ox={cancelable:!0,bubbles:!1},kx={cancelable:!0,bubbles:!1},Ax=`focusAfterTrapped`,jx=`focusAfterReleased`,Mx=Symbol(`elFocusTrap`),Nx=q(),Px=q(0),Fx=q(0),Ix=0,Lx=e=>{let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0||e===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},Rx=(e,t)=>{for(let n of e)if(!zx(n,t))return n},zx=(e,t)=>{if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1},Bx=e=>{let t=Lx(e);return[Rx(t,e),Rx(t.reverse(),e)]},Vx=e=>e instanceof HTMLInputElement&&`select`in e,Hx=(e,t)=>{if(e){let n=document.activeElement;sp(e,{preventScroll:!0}),Fx.value=window.performance.now(),e!==n&&Vx(e)&&t&&e.select()}};function Ux(e,t){let n=[...e],r=e.indexOf(t);return r!==-1&&n.splice(r,1),n}var Wx=()=>{let e=[];return{push:t=>{let n=e[0];n&&t!==n&&n.pause(),e=Ux(e,t),e.unshift(t)},remove:t=>{e=Ux(e,t),e[0]?.resume?.()}}},Gx=(e,t=!1)=>{let n=document.activeElement;for(let r of e)if(Hx(r,t),document.activeElement!==n)return},Kx=Wx(),qx=()=>Px.value>Fx.value,Jx=()=>{Nx.value=`pointer`,Px.value=window.performance.now()},Yx=()=>{Nx.value=`keyboard`,Px.value=window.performance.now()},Xx=()=>(d(()=>{Ix===0&&(document.addEventListener(`mousedown`,Jx),document.addEventListener(`touchstart`,Jx),document.addEventListener(`keydown`,Yx)),Ix++}),T(()=>{Ix--,Ix<=0&&(document.removeEventListener(`mousedown`,Jx),document.removeEventListener(`touchstart`,Jx),document.removeEventListener(`keydown`,Yx))}),{focusReason:Nx,lastUserFocusTimestamp:Px,lastAutomatedFocusTimestamp:Fx}),Zx=e=>new CustomEvent(Dx,{...kx,detail:e}),Qx=z({name:`ElFocusTrap`,inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:`first`}},emits:[Ax,jx,`focusin`,`focusout`,`focusout-prevented`,`release-requested`],setup(e,{emit:t}){let n=q(),r,i,{focusReason:a}=Xx();og(n=>{e.trapped&&!o.paused&&t(`release-requested`,n)});let o={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},s=n=>{if(!e.loop&&!e.trapped||o.paused)return;let{altKey:r,ctrlKey:i,metaKey:s,currentTarget:c,shiftKey:l}=n,{loop:u}=e,d=Kp(n)===X.tab&&!r&&!i&&!s,f=document.activeElement;if(d&&f){let e=c,[r,i]=Bx(e);if(!(r&&i)){if(f===e){let e=Zx({focusReason:a.value});t(`focusout-prevented`,e),e.defaultPrevented||n.preventDefault()}}else if(!l&&f===i){let e=Zx({focusReason:a.value});t(`focusout-prevented`,e),e.defaultPrevented||(n.preventDefault(),u&&Hx(r,!0))}else if(l&&[r,e].includes(f)){let e=Zx({focusReason:a.value});t(`focusout-prevented`,e),e.defaultPrevented||(n.preventDefault(),u&&Hx(i,!0))}}};Qe(Mx,{focusTrapRef:n,onKeydown:s}),M(()=>e.focusTrapEl,e=>{e&&(n.value=e)},{immediate:!0}),M([n],([e],[t])=>{e&&(e.addEventListener(`keydown`,s),e.addEventListener(`focusin`,u),e.addEventListener(`focusout`,f)),t&&(t.removeEventListener(`keydown`,s),t.removeEventListener(`focusin`,u),t.removeEventListener(`focusout`,f))});let c=e=>{t(Ax,e)},l=e=>t(jx,e),u=a=>{let s=Y(n);if(!s)return;let c=a.target,l=a.relatedTarget,u=c&&s.contains(c);e.trapped||l&&s.contains(l)||(r=l),u&&t(`focusin`,a),!o.paused&&e.trapped&&(u?i=c:Hx(i,!0))},f=r=>{let s=Y(n);if(!(o.paused||!s))if(e.trapped){let n=r.relatedTarget;!cd(n)&&!s.contains(n)&&setTimeout(()=>{if(!o.paused&&e.trapped){let e=Zx({focusReason:a.value});t(`focusout-prevented`,e),e.defaultPrevented||Hx(i,!0)}},0)}else{let e=r.target;e&&s.contains(e)||t(`focusout`,r)}};async function p(){await U();let t=Y(n);if(t){Kx.push(o);let n=t.contains(document.activeElement)?r:document.activeElement;if(r=n,!t.contains(n)){let r=new Event(Tx,Ox);t.addEventListener(Tx,c),t.dispatchEvent(r),r.defaultPrevented||U(()=>{let r=e.focusStartEl;P(r)||(Hx(r),document.activeElement!==r&&(r=`first`)),r===`first`&&Gx(Lx(t),!0),(document.activeElement===n||r===`container`)&&Hx(t)})}}}function m(){let e=Y(n);if(e){e.removeEventListener(Tx,c);let t=new CustomEvent(Ex,{...Ox,detail:{focusReason:a.value}});e.addEventListener(Ex,l),e.dispatchEvent(t),!t.defaultPrevented&&(a.value==`keyboard`||!qx()||e.contains(document.activeElement))&&Hx(r??document.body),e.removeEventListener(Ex,l),Kx.remove(o),r=null,i=null}}return d(()=>{e.trapped&&p(),M(()=>e.trapped,e=>{e?p():m()})}),T(()=>{e.trapped&&m(),n.value&&=(n.value.removeEventListener(`keydown`,s),n.value.removeEventListener(`focusin`,u),n.value.removeEventListener(`focusout`,f),void 0),r=null,i=null}),{onKeydown:s}}}),$x=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n};function eS(e,t,n,r,i,a){return I(e.$slots,`default`,{handleKeydown:e.onKeydown})}var tS=$x(Qx,[[`render`,eS]]),nS=(e,t=[])=>{let{placement:n,strategy:r,popperOptions:i}=e,a={placement:n,strategy:r,...i,modifiers:[...iS(e),...t]};return aS(a,i?.modifiers),a},rS=e=>{if(nf)return Of(e)};function iS(e){let{offset:t,gpuAcceleration:n,fallbackPlacements:r}=e;return[{name:`offset`,options:{offset:[0,t??12]}},{name:`preventOverflow`,options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:`flip`,options:{padding:5,fallbackPlacements:r}},{name:`computeStyles`,options:{gpuAcceleration:n}}]}function aS(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}var oS=0,sS=e=>{let{popperInstanceRef:t,contentRef:n,triggerRef:r,role:i}=l(Wy,void 0),a=q(),o=K(()=>e.arrowOffset),s=K(()=>({name:`eventListeners`,enabled:!!e.visible})),c=K(()=>{let e=Y(a),t=Y(o)??oS;return{name:`arrow`,enabled:!ud(e),options:{element:e,padding:t}}}),u=K(()=>({onFirstUpdate:()=>{g()},...nS(e,[Y(c),Y(s)])})),f=K(()=>rS(e.referenceEl)||Y(r)),{attributes:p,state:m,styles:h,update:g,forceUpdate:_,instanceRef:v}=Yh(f,n,u);M(v,e=>t.value=e,{flush:`sync`}),d(()=>{M(()=>Y(f)?.getBoundingClientRect?.(),()=>{g()})});let y;return M(()=>e.visible,e=>{y?.(),y=void 0,e&&(y=Uf(n,g).stop)}),T(()=>{t.value=void 0,y?.(),y=void 0}),{attributes:p,arrowRef:a,contentRef:n,instanceRef:v,state:m,styles:h,role:i,forceUpdate:_,update:g}},cS=(e,{attributes:t,styles:n,role:r})=>{let{nextZIndex:i}=xg(),a=$(`popper`),o=K(()=>Y(t).popper),s=q(Md(e.zIndex)?e.zIndex:i()),c=K(()=>[a.b(),a.is(`pure`,e.pure),a.is(e.effect),e.popperClass]),l=K(()=>[{zIndex:Y(s)},Y(n).popper,e.popperStyle||{}]);return{ariaModal:K(()=>r.value===`dialog`?`false`:void 0),arrowStyle:K(()=>Y(n).arrow||{}),contentAttrs:o,contentClass:c,contentStyle:l,contentZIndex:s,updateZIndex:()=>{s.value=Md(e.zIndex)?e.zIndex:i()}}},lS=(e,t)=>{let n=q(!1),r=q();return T(()=>{r.value=void 0}),{focusStartRef:r,trapped:n,onFocusAfterReleased:e=>{e.detail?.focusReason!==`pointer`&&(r.value=`first`,t(`blur`))},onFocusAfterTrapped:()=>{t(`focus`)},onFocusInTrap:t=>{e.visible&&!n.value&&(t.target&&(r.value=t.target),n.value=!0)},onFocusoutPrevented:t=>{e.trapping||(t.detail.focusReason===`pointer`&&t.preventDefault(),n.value=!1)},onReleaseRequested:()=>{n.value=!1,t(`close`)}}},uS=z({name:`ElPopperContent`,__name:`content`,props:tb,emits:rb,setup(e,{expose:t,emit:n}){let r=n,i=e,{focusStartRef:a,trapped:o,onFocusAfterReleased:s,onFocusAfterTrapped:c,onFocusInTrap:u,onFocusoutPrevented:f,onReleaseRequested:p}=lS(i,r),{attributes:m,arrowRef:h,contentRef:g,styles:_,instanceRef:v,role:y,update:b}=sS(i),{ariaModal:x,arrowStyle:S,contentAttrs:C,contentClass:w,contentStyle:E,updateZIndex:D}=cS(i,{styles:_,attributes:m,role:y}),O=l(sb,void 0);Qe(Gy,{arrowStyle:S,arrowRef:h}),O&&Qe(sb,{...O,addInputId:ge,removeInputId:ge});let A,ee=(e=!0)=>{b(),e&&D()},j=()=>{ee(!1),i.visible&&i.focusOnShow?o.value=!0:i.visible===!1&&(o.value=!1)};return d(()=>{M(()=>i.triggerTargetEl,(e,t)=>{A?.(),A=void 0;let n=Y(e||g.value),r=Y(t||g.value);Pd(n)&&(A=M([y,()=>i.ariaLabel,x,()=>i.id],e=>{[`role`,`aria-label`,`aria-modal`,`id`].forEach((t,r)=>{cd(e[r])?n.removeAttribute(t):n.setAttribute(t,e[r])})},{immediate:!0})),r!==n&&Pd(r)&&[`role`,`aria-label`,`aria-modal`,`id`].forEach(e=>{r.removeAttribute(e)})},{immediate:!0}),M(()=>i.visible,j,{immediate:!0})}),T(()=>{A?.(),A=void 0,g.value=void 0}),t({popperContentRef:g,popperInstanceRef:v,updatePopper:ee,contentStyle:E}),(t,n)=>(N(),W(`div`,k({ref_key:`contentRef`,ref:g},Y(C),{style:Y(E),class:Y(w),tabindex:`-1`,onMouseenter:n[0]||=e=>t.$emit(`mouseenter`,e),onMouseleave:n[1]||=e=>t.$emit(`mouseleave`,e)}),[J(Y(tS),{loop:e.loop,trapped:Y(o),"trap-on-focus-in":!0,"focus-trap-el":Y(g),"focus-start-el":Y(a),onFocusAfterTrapped:Y(c),onFocusAfterReleased:Y(s),onFocusin:Y(u),onFocusoutPrevented:Y(f),onReleaseRequested:Y(p)},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`loop`,`trapped`,`focus-trap-el`,`focus-start-el`,`onFocusAfterTrapped`,`onFocusAfterReleased`,`onFocusin`,`onFocusoutPrevented`,`onReleaseRequested`])],16))}}),dS=Pv(z({name:`ElPopper`,inheritAttrs:!1,__name:`popper`,props:Uy,setup(e,{expose:t}){let n=e,r={triggerRef:q(),popperInstanceRef:q(),contentRef:q(),referenceRef:q(),role:K(()=>n.role)};return t(r),Qe(Wy,r),(e,t)=>I(e.$slots,`default`)}}));({...dg,...nb});var fS=Q({...ug,...tb,appendTo:{type:Z([String,Object])},content:{type:String,default:``},rawContent:Boolean,persistent:Boolean,visible:{type:Z(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Mv([`ariaLabel`])}),pS=Q({...qy,disabled:Boolean,trigger:{type:Z([String,Array]),default:`hover`},triggerKeys:{type:Z(Array),default:()=>[X.enter,X.numpadEnter,X.space]},focusOnTarget:Boolean}),{useModelToggleProps:mS,useModelToggleEmits:hS,useModelToggle:gS}=Xp(`visible`),_S=Q({...Uy,...mS,...fS,...pS,...$y,showArrow:{type:Boolean,default:!0}}),vS=[...hS,`before-show`,`before-hide`,`show`,`hide`,`open`,`close`],yS=Symbol(`elTooltip`),bS=(e,t)=>A(e)?e.includes(t):e===t,xS=(e,t,n)=>r=>{bS(Y(e),t)&&n(r)},SS=z({name:`ElTooltipTrigger`,__name:`trigger`,props:pS,setup(e,{expose:t}){let n=e,r=$(`tooltip`),{controlled:i,id:a,open:o,onOpen:s,onClose:c,onToggle:u}=l(yS,void 0),d=q(null),f=()=>{if(Y(i)||n.disabled)return!0},p=we(n,`trigger`),m=Wp(f,xS(p,`hover`,e=>{s(e),n.focusOnTarget&&e.target&&U(()=>{sp(e.target,{preventScroll:!0})})})),h=Wp(f,xS(p,`hover`,c)),g=Wp(f,xS(p,`click`,e=>{e.button===0&&u(e)})),_=Wp(f,xS(p,`focus`,s)),v=Wp(f,xS(p,`focus`,c)),y=Wp(f,xS(p,`contextmenu`,e=>{e.preventDefault(),u(e)})),b=Wp(f,e=>{let t=Kp(e);n.triggerKeys.includes(t)&&(e.preventDefault(),u(e))});return t({triggerRef:d}),(t,n)=>(N(),H(Y(Qy),{id:Y(a),"virtual-ref":e.virtualRef,open:Y(o),"virtual-triggering":e.virtualTriggering,class:F(Y(r).e(`trigger`)),onBlur:Y(v),onClick:Y(g),onContextmenu:Y(y),onFocus:Y(_),onMouseenter:Y(m),onMouseleave:Y(h),onKeydown:Y(b)},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`id`,`virtual-ref`,`open`,`virtual-triggering`,`class`,`onBlur`,`onClick`,`onContextmenu`,`onFocus`,`onMouseenter`,`onMouseleave`,`onKeydown`]))}}),CS=z({name:`ElTooltipContent`,inheritAttrs:!1,__name:`content`,props:fS,setup(e,{expose:t}){let n=e,{selector:r}=sg(),i=$(`tooltip`),a=q(),o=Qd(()=>a.value?.popperContentRef),s,{controlled:c,id:u,open:d,trigger:f,onClose:p,onOpen:m,onShow:h,onHide:g,onBeforeShow:_,onBeforeHide:v}=l(yS,void 0),y=K(()=>n.transition||`${i.namespace.value}-fade-in-linear`),b=K(()=>n.persistent);T(()=>{s?.()});let x=K(()=>Y(b)?!0:Y(d)),S=K(()=>n.disabled?!1:Y(d)),C=K(()=>n.appendTo||r.value),w=K(()=>n.style??{}),E=q(!0),D=()=>{g(),re()&&sp(document.body,{preventScroll:!0}),E.value=!0},O=()=>{if(Y(c))return!0},A=Wp(O,()=>{n.enterable&&bS(Y(f),`hover`)&&m()}),ee=Wp(O,()=>{bS(Y(f),`hover`)&&p()}),j=()=>{a.value?.updatePopper?.(),_?.()},P=()=>{v?.()},te=()=>{h()},ne=()=>{n.virtualTriggering||p()},re=e=>{let t=a.value?.popperContentRef,n=e?.relatedTarget||document.activeElement;return t?.contains(n)};return M(()=>Y(d),e=>{e?(E.value=!1,s=jf(o,()=>{Y(c)||hb(Y(f)).every(e=>e!==`hover`&&e!==`focus`)&&p()},{detectIframe:!0})):s?.()},{flush:`post`}),t({contentRef:a,isFocusInsideContent:re}),(t,n)=>(N(),H(Fe,{disabled:!e.teleported,to:C.value},[x.value||!E.value?(N(),H(pt,{key:0,name:y.value,appear:!b.value,onAfterLeave:D,onBeforeEnter:j,onAfterEnter:te,onBeforeLeave:P,persisted:``},{default:V(()=>[Ge(J(Y(uS),k({id:Y(u),ref_key:`contentRef`,ref:a},t.$attrs,{"aria-label":e.ariaLabel,"aria-hidden":E.value,"boundaries-padding":e.boundariesPadding,"fallback-placements":e.fallbackPlacements,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,strategy:e.strategy,effect:e.effect,enterable:e.enterable,pure:e.pure,"popper-class":e.popperClass,"popper-style":[e.popperStyle,w.value],"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,visible:S.value,"z-index":e.zIndex,loop:e.loop,onMouseenter:Y(A),onMouseleave:Y(ee),onBlur:ne,onClose:Y(p)}),{default:V(()=>[I(t.$slots,`default`)]),_:3},16,[`id`,`aria-label`,`aria-hidden`,`boundaries-padding`,`fallback-placements`,`gpu-acceleration`,`offset`,`placement`,`popper-options`,`arrow-offset`,`strategy`,`effect`,`enterable`,`pure`,`popper-class`,`popper-style`,`reference-el`,`trigger-target-el`,`visible`,`z-index`,`loop`,`onMouseenter`,`onMouseleave`,`onClose`]),[[jt,S.value]])]),_:3},8,[`name`,`appear`])):G(`v-if`,!0)],8,[`disabled`,`to`]))}}),wS=[`innerHTML`],TS={key:1},ES=Pv(z({name:`ElTooltip`,__name:`tooltip`,props:_S,emits:vS,setup(e,{expose:t,emit:n}){let r=e,i=n;lg();let a=$(`tooltip`),o=rg(),s=q(),c=q(),l=()=>{let e=Y(s);e&&e.popperInstanceRef?.update()},u=q(!1),d=q(),{show:f,hide:p,hasUpdateHandler:m}=gS({indicator:u,toggleReason:d}),{onOpen:h,onClose:g}=fg({showAfter:we(r,`showAfter`),hideAfter:we(r,`hideAfter`),autoClose:we(r,`autoClose`),open:f,close:p}),_=K(()=>jd(r.visible)&&!m.value),v=K(()=>[a.b(),r.popperClass]);return Qe(yS,{controlled:_,id:o,open:je(u),trigger:we(r,`trigger`),onOpen:h,onClose:g,onToggle:e=>{Y(u)?g(e):h(e)},onShow:()=>{i(`show`,d.value)},onHide:()=>{i(`hide`,d.value)},onBeforeShow:()=>{i(`before-show`,d.value)},onBeforeHide:()=>{i(`before-hide`,d.value)},updatePopper:l}),M(()=>r.disabled,e=>{e&&u.value&&(u.value=!1),!e&&jd(r.visible)&&(u.value=r.visible)}),ee(()=>u.value&&p()),T(()=>{d.value=void 0}),t({popperRef:s,contentRef:c,isFocusInsideContent:e=>c.value?.isFocusInsideContent(e),updatePopper:l,onOpen:h,onClose:g,hide:p}),(t,n)=>(N(),H(Y(dS),{ref_key:`popperRef`,ref:s,role:e.role},{default:V(()=>[J(SS,{disabled:e.disabled,trigger:e.trigger,"trigger-keys":e.triggerKeys,"virtual-ref":e.virtualRef,"virtual-triggering":e.virtualTriggering,"focus-on-target":e.focusOnTarget},{default:V(()=>[t.$slots.default?I(t.$slots,`default`,{key:0}):G(`v-if`,!0)]),_:3},8,[`disabled`,`trigger`,`trigger-keys`,`virtual-ref`,`virtual-triggering`,`focus-on-target`]),J(CS,{ref_key:`contentRef`,ref:c,"aria-label":e.ariaLabel,"boundaries-padding":e.boundariesPadding,content:e.content,disabled:e.disabled,effect:e.effect,enterable:e.enterable,"fallback-placements":e.fallbackPlacements,"hide-after":e.hideAfter,"gpu-acceleration":e.gpuAcceleration,offset:e.offset,persistent:e.persistent,"popper-class":v.value,"popper-style":e.popperStyle,placement:e.placement,"popper-options":e.popperOptions,"arrow-offset":e.arrowOffset,pure:e.pure,"raw-content":e.rawContent,"reference-el":e.referenceEl,"trigger-target-el":e.triggerTargetEl,"show-after":e.showAfter,strategy:e.strategy,teleported:e.teleported,transition:e.transition,"virtual-triggering":e.virtualTriggering,"z-index":e.zIndex,"append-to":e.appendTo,loop:e.loop},{default:V(()=>[I(t.$slots,`content`,{},()=>[e.rawContent?(N(),W(`span`,{key:0,innerHTML:e.content},null,8,wS)):(N(),W(`span`,TS,S(e.content),1))]),e.showArrow?(N(),H(Y(Ky),{key:0})):G(`v-if`,!0)]),_:3},8,`aria-label.boundaries-padding.content.disabled.effect.enterable.fallback-placements.hide-after.gpu-acceleration.offset.persistent.popper-class.popper-style.placement.popper-options.arrow-offset.pure.raw-content.reference-el.trigger-target-el.show-after.strategy.teleported.transition.virtual-triggering.z-index.append-to.loop`.split(`.`))]),_:3},8,[`role`]))}})),DS=e=>e,OS=Q({id:{type:String,default:void 0},size:xv,disabled:{type:Boolean,default:void 0},modelValue:{type:Z([String,Number,Object]),default:``},modelModifiers:{type:Z(Object),default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:Z(String),default:`text`},resize:{type:String,values:[`none`,`both`,`horizontal`,`vertical`]},autosize:{type:Z([Boolean,Object]),default:!1},autocomplete:{type:Z(String),default:`off`},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Ny,default:Qv},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:[`inside`,`outside`],default:`inside`},suffixIcon:{type:Ny},prefixIcon:{type:Ny},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:Z([Object,Array,String,Boolean]),default:()=>DS({})},countGraphemes:{type:Z(Function)},autofocus:Boolean,rows:{type:Number,default:2},...Mv([`ariaLabel`]),inputmode:{type:Z(String),default:void 0},name:String}),kS={[br]:e=>P(e),input:e=>P(e),change:(e,t)=>P(e)&&(t instanceof Event||t===void 0),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:e=>e===void 0||e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent};Ie(Qv);var AS=void 0,jS={height:`0`,visibility:`hidden`,overflow:lp()?``:`hidden`,position:`absolute`,"z-index":`-1000`,top:`0`,right:`0`},MS=[`letter-spacing`,`line-height`,`padding-top`,`padding-bottom`,`font-family`,`font-weight`,`font-size`,`text-rendering`,`text-transform`,`width`,`text-indent`,`padding-left`,`padding-right`,`border-width`,`box-sizing`,`word-break`],NS=e=>{let t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function PS(e){let t=window.getComputedStyle(e),n=t.getPropertyValue(`box-sizing`),r=Number.parseFloat(t.getPropertyValue(`padding-bottom`))+Number.parseFloat(t.getPropertyValue(`padding-top`)),i=Number.parseFloat(t.getPropertyValue(`border-bottom-width`))+Number.parseFloat(t.getPropertyValue(`border-top-width`));return{contextStyle:MS.map(e=>[e,t.getPropertyValue(e)]),paddingSize:r,borderSize:i,boxSizing:n}}function FS(e,t=1,n){if(!AS){AS=document.createElement(`textarea`);let t=document.body;!lp()&&e.parentNode&&(t=e.parentNode),t.appendChild(AS)}let{paddingSize:r,borderSize:i,boxSizing:a,contextStyle:o}=PS(e);o.forEach(([e,t])=>AS?.style.setProperty(e,t)),Object.entries(jS).forEach(([e,t])=>AS?.style.setProperty(e,t,`important`)),AS.value=e.value||e.placeholder||``;let s=AS.scrollHeight,c={};a===`border-box`?s+=i:a===`content-box`&&(s-=r),AS.value=``;let l=AS.scrollHeight-r;if(Md(t)){let e=l*t;a===`border-box`&&(e=e+r+i),s=Math.max(e,s),c.minHeight=`${e}px`}if(Md(n)){let e=l*n;a===`border-box`&&(e=e+r+i),s=Math.min(e,s)}return c.height=`${s}px`,AS.parentNode?.removeChild(AS),AS=void 0,c}var IS=[`id`,`name`,`minlength`,`maxlength`,`type`,`disabled`,`readonly`,`autocomplete`,`tabindex`,`aria-label`,`placeholder`,`form`,`autofocus`,`role`,`inputmode`],LS=[`id`,`name`,`minlength`,`maxlength`,`tabindex`,`disabled`,`readonly`,`autocomplete`,`aria-label`,`placeholder`,`form`,`autofocus`,`rows`,`role`,`inputmode`],RS=`ElInput`,zS=Pv(z({name:RS,inheritAttrs:!1,__name:`input`,props:OS,emits:kS,setup(e,{expose:t,emit:n}){let r=e,i=n,a=y(),o=le(),s=K(()=>[r.type===`textarea`?b.b():v.b(),v.m(g.value),v.is(`disabled`,_.value),v.is(`exceed`,ye.value),{[v.b(`group`)]:o.prepend||o.append,[v.m(`prefix`)]:o.prefix||r.prefixIcon,[v.m(`suffix`)]:o.suffix||r.suffixIcon||r.clearable||r.showPassword,[v.bm(`suffix`,`password-clear`)]:he.value&&z.value,[v.b(`hidden`)]:r.type===`hidden`},a.class]),c=K(()=>[v.e(`wrapper`),v.is(`focus`,re.value)]),l=Zd(),u=K(()=>r.maxlength?.toString()),{form:f,formItem:p}=ub(),{inputId:h}=db(r,{formItemContext:p}),g=cb(),_=lb(),v=$(`input`),b=$(`textarea`),x=Le(),C=Le(),w=q(!1),D=q(!1),O=q(),A=q(),ee=Le(r.inputStyle),j=q(``),P=q(),te=K(()=>x.value||C.value),{wrapperRef:ne,isFocused:re,handleFocus:ie,handleBlur:ae}=wv(te,{disabled:_,afterBlur(){r.validateEvent&&p?.validate?.(`blur`).catch(ge)}}),oe=K(()=>f?.statusIcon??!1),se=K(()=>p?.validateState||``),ce=K(()=>se.value&&Ly[se.value]),ue=K(()=>D.value?ky:sy),de=K(()=>[a.style]),fe=K(()=>[r.inputStyle,ee.value,{resize:r.resize},P.value?{height:P.value}:void 0]),pe=K(()=>cd(r.modelValue)?``:String(r.modelValue)),me=K(()=>r.clearable&&!_.value&&!r.readonly),he=K(()=>me.value&&!!pe.value&&(re.value||w.value)),z=K(()=>r.showPassword&&!_.value&&!!pe.value),_e=K(()=>r.showWordLimit&&!!u.value&&(r.type===`text`||r.type===`textarea`)&&!_.value&&!r.readonly&&!r.showPassword),ve=K(()=>r.countGraphemes&&r.showWordLimit?r.countGraphemes(pe.value):pe.value.length),ye=K(()=>!!_e.value&&ve.value>Number(u.value)),be=K(()=>!!o.suffix||!!r.suffixIcon||r.clearable||r.showPassword||_e.value||!!se.value&&oe.value),xe=K(()=>!!Object.keys(r.modelModifiers).length),[Se,Ce]=fv(x),Te;Uf(C,e=>{if(De(),!_e.value&&!me.value||r.resize!==`both`&&r.resize!==`horizontal`)return;let{width:t}=e[0].target.getBoundingClientRect();Te&&Pp(Te),Te=Np(()=>{Te=void 0,O.value={right:`calc(100% - ${t-10}px)`},A.value={right:`calc(100% - ${t-11}px)`}})});let Ee=()=>{let{type:e,autosize:t}=r;if(!(!nf||e!==`textarea`||!C.value))if(t){let e=E(t)?t.minRows:void 0,n=E(t)?t.maxRows:void 0,r=FS(C.value,e,n);ee.value={overflowY:`hidden`,...r},U(()=>{C.value.offsetHeight,ee.value=r})}else ee.value={minHeight:FS(C.value).minHeight}},De=(e=>{let t=!1;return()=>{if(t||!r.autosize){r.resize!==`none`&&setTimeout(()=>{P.value=C.value?.style.height});return}C.value?.offsetParent!==null&&(setTimeout(e),t=!0)}})(Ee),Oe=()=>{let e=te.value,t=r.formatter?r.formatter(pe.value):pe.value;!e||e.value===t||r.type===`file`||(e.value=t)},ke=e=>{let{trim:t,number:n}=r.modelModifiers;return t&&(e=e.trim()),n&&(e=`${NS(e)}`),r.formatter&&r.parser&&(e=r.parser(e)),e},Ae=async e=>{if(Me.value)return;let{lazy:t}=r.modelModifiers,{value:n}=e.target,a=!1;if(t){i(Sr,n);return}if(n=ke(n),r.countGraphemes&&u.value!=null){let e=Number(u.value),t=r.countGraphemes(n),i=r.countGraphemes(j.value);if(t>e&&t>i)if(i>e)n=j.value,a=!0;else{let t=j.value,o=n,s=0;for(;ss&&l>s&&t[c-1]===o[l-1];)c--,l--;let u=o.slice(0,s),d=t.slice(s,c),f=o.slice(s,l),p=o.slice(l),m=i-r.countGraphemes(d),h=Math.max(0,e-m),g=``;if(h>0)if(typeof Intl<`u`&&`Segmenter`in Intl){let e=new Intl.Segmenter(void 0,{granularity:`grapheme`});for(let{segment:t}of e.segment(f)){let e=g+t;if(r.countGraphemes(e)>h)break;g=e}}else for(let e of Array.from(f)){let t=g+e;if(r.countGraphemes(t)>h)break;g=t}n=u+g+p,a=!0}}if(String(n)===pe.value){if(r.formatter||a){let t=e.target,n=t.value,r=t.selectionStart,i=t.selectionEnd;if(Oe(),a&&te.value&&r!=null&&i!=null){let e=te.value.value,t=n.slice(Math.max(0,i)),a=Math.min(r,e.length);t&&e.endsWith(t)&&(a=e.length-t.length),te.value.setSelectionRange(a,a)}}return}j.value=n,Se(),i(br,n),i(Sr,n),await U(),(r.formatter&&r.parser||!xe.value)&&Oe(),Ce()},je=async e=>{let{value:t}=e.target;t=ke(t),r.modelModifiers.lazy&&i(br,t),i(xr,t,e),await U(),Oe()},{isComposing:Me,handleCompositionStart:Ne,handleCompositionUpdate:Pe,handleCompositionEnd:Fe}=Tv({emit:i,afterComposition:Ae}),Ie=()=>{D.value=!D.value},Re=()=>te.value?.focus(),ze=()=>te.value?.blur(),Be=e=>{w.value=!1,i(`mouseleave`,e)},Ve=e=>{w.value=!0,i(`mouseenter`,e)},He=e=>{i(`keydown`,e)},Ue=()=>{te.value?.select()},We=e=>{i(br,``),i(xr,``),i(`clear`,e),i(Sr,``)};return M(()=>r.modelValue,()=>{U(()=>{Ee(),r.autosize&&(P.value=void 0)}),r.validateEvent&&p?.validate?.(`change`).catch(ge)}),M(()=>pe.value,e=>{j.value=e},{immediate:!0}),M(pe,e=>{if(!te.value)return;let{trim:t,number:n}=r.modelModifiers,i=te.value.value,a=(n||r.type===`number`)&&!/^0\d/.test(i)?`${NS(i)}`:i;a!==e&&(document.activeElement===te.value&&te.value.type!==`range`&&t&&a.trim()===e||Oe())}),M(()=>r.type,async()=>{await U(),Oe(),Ee()}),d(()=>{!r.formatter&&r.parser&&Jd(RS,`If you set the parser, you also need to set the formatter.`),Oe(),U(Ee)}),T(()=>{Te&&Pp(Te)}),t({input:x,textarea:C,ref:te,textareaStyle:fe,autosize:we(r,`autosize`),isComposing:Me,passwordVisible:D,focus:Re,blur:ze,select:Ue,clear:We,resizeTextarea:Ee}),(t,n)=>(N(),W(`div`,{class:F([s.value,{[Y(v).bm(`group`,`append`)]:t.$slots.append,[Y(v).bm(`group`,`prepend`)]:t.$slots.prepend}]),style:m(de.value),onMouseenter:Ve,onMouseleave:Be},[G(` input `),e.type===`textarea`?(N(),W(R,{key:1},[G(` textarea `),B(`textarea`,k({id:Y(h),ref_key:`textarea`,ref:C,class:[Y(b).e(`inner`),Y(v).is(`focus`,Y(re)),Y(b).is(`clearable`,e.clearable)]},Y(l),{name:e.name,minlength:e.countGraphemes?void 0:e.minlength,maxlength:e.countGraphemes?void 0:u.value,tabindex:e.tabindex,disabled:Y(_),readonly:e.readonly,autocomplete:e.autocomplete,style:fe.value,"aria-label":e.ariaLabel,placeholder:e.placeholder,form:e.form,autofocus:e.autofocus,rows:e.rows,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:n[3]||=(...e)=>Y(Ne)&&Y(Ne)(...e),onCompositionupdate:n[4]||=(...e)=>Y(Pe)&&Y(Pe)(...e),onCompositionend:n[5]||=(...e)=>Y(Fe)&&Y(Fe)(...e),onInput:Ae,onFocus:n[6]||=(...e)=>Y(ie)&&Y(ie)(...e),onBlur:n[7]||=(...e)=>Y(ae)&&Y(ae)(...e),onChange:je,onKeydown:He}),null,16,LS),he.value?(N(),H(Y(By),{key:0,class:F([Y(b).e(`icon`),Y(b).e(`clear`)]),style:m(A.value),onMousedown:kn(Y(ge),[`prevent`]),onClick:We},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`style`,`onMousedown`])):G(`v-if`,!0),_e.value?(N(),W(`span`,{key:1,style:m(O.value),class:F([Y(v).e(`count`),Y(v).is(`outside`,e.wordLimitPosition===`outside`)])},S(ve.value)+` / `+S(u.value),7)):G(`v-if`,!0)],64)):(N(),W(R,{key:0},[G(` prepend slot `),t.$slots.prepend?(N(),W(`div`,{key:0,class:F(Y(v).be(`group`,`prepend`))},[I(t.$slots,`prepend`)],2)):G(`v-if`,!0),B(`div`,{ref_key:`wrapperRef`,ref:ne,class:F(c.value)},[G(` prefix slot `),t.$slots.prefix||e.prefixIcon?(N(),W(`span`,{key:0,class:F(Y(v).e(`prefix`))},[B(`span`,{class:F(Y(v).e(`prefix-inner`))},[I(t.$slots,`prefix`),e.prefixIcon?(N(),H(Y(By),{key:0,class:F(Y(v).e(`icon`))},{default:V(()=>[(N(),H(L(e.prefixIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)],2)):G(`v-if`,!0),B(`input`,k({id:Y(h),ref_key:`input`,ref:x,class:Y(v).e(`inner`)},Y(l),{name:e.name,minlength:e.countGraphemes?void 0:e.minlength,maxlength:e.countGraphemes?void 0:u.value,type:e.showPassword?D.value?`text`:`password`:e.type,disabled:Y(_),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-label":e.ariaLabel,placeholder:e.placeholder,style:e.inputStyle,form:e.form,autofocus:e.autofocus,role:e.containerRole,inputmode:e.inputmode,onCompositionstart:n[0]||=(...e)=>Y(Ne)&&Y(Ne)(...e),onCompositionupdate:n[1]||=(...e)=>Y(Pe)&&Y(Pe)(...e),onCompositionend:n[2]||=(...e)=>Y(Fe)&&Y(Fe)(...e),onInput:Ae,onChange:je,onKeydown:He}),null,16,IS),G(` suffix slot `),be.value?(N(),W(`span`,{key:1,class:F(Y(v).e(`suffix`))},[B(`span`,{class:F(Y(v).e(`suffix-inner`))},[me.value?(N(),H(Y(By),{key:0,class:F([Y(v).e(`icon`),Y(v).e(`clear`)]),style:m({visibility:he.value?`visible`:`hidden`}),onMousedown:kn(Y(ge),[`prevent`]),onClick:We},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`style`,`onMousedown`])):G(`v-if`,!0),!he.value||!z.value||!_e.value?(N(),W(R,{key:1},[I(t.$slots,`suffix`),e.suffixIcon?(N(),H(Y(By),{key:0,class:F(Y(v).e(`icon`))},{default:V(()=>[(N(),H(L(e.suffixIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)],64)):G(`v-if`,!0),z.value?(N(),H(Y(By),{key:2,class:F([Y(v).e(`icon`),Y(v).e(`password`)]),onClick:Ie,onMousedown:kn(Y(ge),[`prevent`]),onMouseup:kn(Y(ge),[`prevent`])},{default:V(()=>[I(t.$slots,`password-icon`,{visible:D.value},()=>[(N(),H(L(ue.value)))])]),_:3},8,[`class`,`onMousedown`,`onMouseup`])):G(`v-if`,!0),_e.value?(N(),W(`span`,{key:3,class:F([Y(v).e(`count`),Y(v).is(`outside`,e.wordLimitPosition===`outside`)])},[B(`span`,{class:F(Y(v).e(`count-inner`))},S(ve.value)+` / `+S(u.value),3)],2)):G(`v-if`,!0),se.value&&ce.value&&oe.value?(N(),H(Y(By),{key:4,class:F([Y(v).e(`icon`),Y(v).e(`validateIcon`),Y(v).is(`loading`,se.value===`validating`)])},{default:V(()=>[(N(),H(L(ce.value)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)],2)):G(`v-if`,!0)],2),G(` append slot `),t.$slots.append?(N(),W(`div`,{key:1,class:F(Y(v).be(`group`,`append`))},[I(t.$slots,`append`)],2)):G(`v-if`,!0)],64))],38))}})),BS=Q({...OS,valueKey:{type:String,default:`value`},modelValue:{type:[String,Number],default:``},debounce:{type:Number,default:300},placement:{type:Z(String),values:[`top`,`top-start`,`top-end`,`bottom`,`bottom-start`,`bottom-end`],default:`bottom-start`},fetchSuggestions:{type:Z([Function,Array]),default:ge},popperClass:fS.popperClass,popperStyle:fS.popperStyle,popperOptions:fS.popperOptions,showArrow:{type:Boolean,default:!0},triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:Boolean,hideLoading:Boolean,teleported:fS.teleported,appendTo:fS.appendTo,highlightFirstItem:Boolean,fitInputWidth:Boolean,loopNavigation:{type:Boolean,default:!0}}),VS={[br]:e=>P(e)||Md(e),[Sr]:e=>P(e)||Md(e),[xr]:e=>P(e)||Md(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,select:e=>E(e)},HS=Q({distance:{type:Number,default:0},height:{type:[String,Number],default:``},maxHeight:{type:[String,Number],default:``},native:Boolean,wrapStyle:{type:Z([String,Object,Array,Boolean]),default:``},wrapClass:{type:[String,Array],default:``},viewClass:{type:[String,Array],default:``},viewStyle:{type:Z([String,Object,Array,Boolean]),default:``},noresize:Boolean,tag:{type:String,default:`div`},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Mv([`ariaLabel`,`ariaOrientation`])}),US={"end-reached":e=>[`left`,`right`,`top`,`bottom`].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Md)},WS={vertical:{offset:`offsetHeight`,scroll:`scrollTop`,scrollSize:`scrollHeight`,size:`height`,key:`vertical`,axis:`Y`,client:`clientY`,direction:`top`},horizontal:{offset:`offsetWidth`,scroll:`scrollLeft`,scrollSize:`scrollWidth`,size:`width`,key:`horizontal`,axis:`X`,client:`clientX`,direction:`left`}},GS=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),KS=Q({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),qS=Symbol(`scrollbarContextKey`);function JS(e,t,n=.03){return e-t>n}var YS=Q({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),XS=`Thumb`,ZS=z({__name:`thumb`,props:KS,setup(e){let t=e,n=l(qS),r=$(`scrollbar`);n||qd(XS,`can not inject scrollbar context`);let i=q(),a=q(),o=q({}),s=q(!1),c=!1,u=!1,d=0,f=0,p=nf?document.onselectstart:null,h=K(()=>WS[t.vertical?`vertical`:`horizontal`]),g=K(()=>GS({size:t.size,move:t.move,bar:h.value})),_=K(()=>i.value[h.value.offset]**2/n.wrapElement[h.value.scrollSize]/t.ratio/a.value[h.value.offset]),v=e=>{if(e.stopPropagation(),e.ctrlKey||[1,2].includes(e.button))return;window.getSelection()?.removeAllRanges(),b(e);let t=e.currentTarget;t&&(o.value[h.value.axis]=t[h.value.offset]-(e[h.value.client]-t.getBoundingClientRect()[h.value.direction]))},y=e=>{if(!a.value||!i.value||!n.wrapElement)return;let t=(Math.abs(e.target.getBoundingClientRect()[h.value.direction]-e[h.value.client])-a.value[h.value.offset]/2)*100*_.value/i.value[h.value.offset];n.wrapElement[h.value.scroll]=t*n.wrapElement[h.value.scrollSize]/100},b=e=>{e.stopImmediatePropagation(),c=!0,d=n.wrapElement.scrollHeight,f=n.wrapElement.scrollWidth,document.addEventListener(`mousemove`,x),document.addEventListener(`mouseup`,S),p=document.onselectstart,document.onselectstart=()=>!1},x=e=>{if(!i.value||!a.value||c===!1)return;let t=o.value[h.value.axis];if(!t)return;let r=((i.value.getBoundingClientRect()[h.value.direction]-e[h.value.client])*-1-(a.value[h.value.offset]-t))*100*_.value/i.value[h.value.offset];h.value.scroll===`scrollLeft`?n.wrapElement[h.value.scroll]=r*f/100:n.wrapElement[h.value.scroll]=r*d/100},S=()=>{c=!1,o.value[h.value.axis]=0,document.removeEventListener(`mousemove`,x),document.removeEventListener(`mouseup`,S),E(),u&&(s.value=!1)},C=()=>{u=!1,s.value=!!t.size},w=()=>{u=!0,s.value=c};T(()=>{E(),document.removeEventListener(`mouseup`,S)});let E=()=>{document.onselectstart!==p&&(document.onselectstart=p)};return kf(we(n,`scrollbarElement`),`mousemove`,C),kf(we(n,`scrollbarElement`),`mouseleave`,w),(t,n)=>(N(),H(pt,{name:Y(r).b(`fade`),persisted:``},{default:V(()=>[Ge(B(`div`,{ref_key:`instance`,ref:i,class:F([Y(r).e(`bar`),Y(r).is(h.value.key)]),onMousedown:y,onClick:n[0]||=kn(()=>{},[`stop`])},[B(`div`,{ref_key:`thumb`,ref:a,class:F(Y(r).e(`thumb`)),style:m(g.value),onMousedown:v},null,38)],34),[[jt,e.always||s.value]])]),_:1},8,[`name`]))}}),QS=z({__name:`bar`,props:YS,setup(e,{expose:t}){let n=e,r=l(qS),i=q(0),a=q(0),o=q(``),s=q(``),c=q(1),u=q(1);return t({handleScroll:e=>{if(e){let t=e.offsetHeight-4,n=e.offsetWidth-4;a.value=e.scrollTop*100/t*c.value,i.value=e.scrollLeft*100/n*u.value}},update:()=>{let e=r?.wrapElement;if(!e)return;let t=e.offsetHeight-4,i=e.offsetWidth-4,a=t**2/e.scrollHeight,l=i**2/e.scrollWidth,d=Math.max(a,n.minSize),f=Math.max(l,n.minSize);c.value=a/(t-a)/(d/(t-d)),u.value=l/(i-l)/(f/(i-f)),s.value=d+4(N(),W(R,null,[J(ZS,{move:i.value,ratio:u.value,size:o.value,always:e.always},null,8,[`move`,`ratio`,`size`,`always`]),J(ZS,{move:a.value,ratio:c.value,size:s.value,vertical:``,always:e.always},null,8,[`move`,`ratio`,`size`,`always`])],64))}}),$S=[`tabindex`],eC=`ElScrollbar`,tC=Pv(z({name:eC,__name:`scrollbar`,props:HS,emits:US,setup(e,{expose:n,emit:r}){let i=e,a=r,o=$(`scrollbar`),s,c,l,u=0,f=0,p=``,h={bottom:!1,top:!1,right:!1,left:!1},g=q(),_=q(),v=q(),y=q(),b=K(()=>{let e={},t=bp(i.height),n=bp(i.maxHeight);return t&&(e.height=t),n&&(e.maxHeight=n),[i.wrapStyle,e]}),x=K(()=>[i.wrapClass,o.e(`wrap`),{[o.em(`wrap`,`hidden-default`)]:!i.native}]),S=K(()=>[o.e(`view`),i.viewClass]),w=e=>h[e]??!1,T={top:`bottom`,bottom:`top`,left:`right`,right:`left`},D=e=>{let t=T[p];if(!t)return;let n=e[p],r=e[t];n&&!h[p]&&(h[p]=!0),!r&&h[t]&&(h[t]=!1)},O=()=>{if(_.value){y.value?.handleScroll(_.value);let e=u,t=f;u=_.value.scrollTop,f=_.value.scrollLeft;let n={bottom:!JS(_.value.scrollHeight-i.distance,_.value.clientHeight+u),top:u<=i.distance&&e!==0,right:!JS(_.value.scrollWidth-i.distance,_.value.clientWidth+f)&&t!==f,left:f<=i.distance&&t!==0};if(a(`scroll`,{scrollTop:u,scrollLeft:f}),e!==u&&(p=u>e?`bottom`:`top`),t!==f&&(p=f>t?`right`:`left`),i.distance>0){if(w(p))return;D(n)}n[p]&&a(`end-reached`,p)}};function k(e,t){E(e)?_.value.scrollTo(e):Md(e)&&Md(t)&&_.value.scrollTo(e,t)}let A=e=>{if(!Md(e)){Jd(eC,`value must be a number`);return}_.value.scrollTop=e},ee=e=>{if(!Md(e)){Jd(eC,`value must be a number`);return}_.value.scrollLeft=e},j=()=>{y.value?.update(),h[p]=!1,_.value&&y.value?.handleScroll(_.value)};return M(()=>i.noresize,e=>{e?(s?.(),c?.(),l?.()):({stop:s}=Uf(v,j),{stop:c}=Uf(_,j),l=kf(`resize`,j))},{immediate:!0}),M(()=>[i.maxHeight,i.height],()=>{i.native||U(()=>{j()})}),Qe(qS,ve({scrollbarElement:g,wrapElement:_})),t(()=>{_.value&&(_.value.scrollTop=u,_.value.scrollLeft=f)}),d(()=>{i.native||U(()=>{j()})}),C(()=>j()),n({wrapRef:_,update:j,scrollTo:k,setScrollTop:A,setScrollLeft:ee,handleScroll:O}),(t,n)=>(N(),W(`div`,{ref_key:`scrollbarRef`,ref:g,class:F(Y(o).b())},[B(`div`,{ref_key:`wrapRef`,ref:_,class:F(x.value),style:m(b.value),tabindex:e.tabindex,onScroll:O},[(N(),H(L(e.tag),{id:e.id,ref_key:`resizeRef`,ref:v,class:F(S.value),style:m(e.viewStyle),role:e.role,"aria-label":e.ariaLabel,"aria-orientation":e.ariaOrientation},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`id`,`class`,`style`,`role`,`aria-label`,`aria-orientation`]))],46,$S),e.native?G(`v-if`,!0):(N(),H(QS,{key:0,ref_key:`barRef`,ref:y,always:e.always,"min-size":e.minSize},null,8,[`always`,`min-size`]))],2))}})),nC=[`aria-expanded`,`aria-owns`],rC={key:0},iC=[`id`,`aria-selected`,`onClick`],aC=`ElAutocomplete`,oC=Pv(z({name:aC,inheritAttrs:!1,__name:`autocomplete`,props:BS,emits:VS,setup(e,{expose:t,emit:n}){let i=e,a=n,o=K(()=>{let e=zS.props??[];return Sd(i,A(e)?e:Object.keys(e))}),s=y(),c=lb(),l=$(`autocomplete`),u=q(),f=q(),p=q(),h=q(),g=!1,_=!1,v=q([]),b=q(-1),x=q(``),C=q(!1),w=q(!1),E=q(!1),D=rg(),O=K(()=>s.style),ee=K(()=>(v.value.length>0||E.value)&&C.value),j=K(()=>!i.hideLoading&&E.value),M=K(()=>u.value?Array.from(u.value.$el.querySelectorAll(`input`)):[]),P=()=>{ee.value&&(x.value=`${u.value.$el.offsetWidth}px`)},te=()=>{b.value=-1},ne=async e=>{if(w.value)return;let t=e=>{E.value=!1,!w.value&&(A(e)?(v.value=e,b.value=i.highlightFirstItem?0:-1):qd(aC,`autocomplete suggestions must be an array`))};if(E.value=!0,A(i.fetchSuggestions))t(i.fetchSuggestions);else{let n=await i.fetchSuggestions(e,t);A(n)&&t(n)}},re=bf(ne,K(()=>i.debounce)),ie=e=>{let t=!!e;if(a(Sr,e),a(br,e),w.value=!1,C.value||=t,!i.triggerOnFocus&&!e){w.value=!0,v.value=[];return}re(e)},ae=e=>{c.value||(e.target?.tagName!==`INPUT`||M.value.includes(document.activeElement))&&(C.value=!0)},oe=e=>{a(xr,e)},L=e=>{if(_)_=!1;else{C.value=!0,a(`focus`,e);let t=i.modelValue??``;i.triggerOnFocus&&!g&&re(String(t))}},se=e=>{setTimeout(()=>{if(p.value?.isFocusInsideContent()){_=!0;return}C.value&&de(),a(`blur`,e)})},ce=()=>{C.value=!1,a(br,``),a(`clear`)},le=async()=>{u.value?.isComposing||(ee.value&&b.value>=0&&b.value{ee.value&&(e.preventDefault(),e.stopPropagation(),de())},de=()=>{C.value=!1},fe=()=>{u.value?.focus()},pe=()=>{u.value?.blur()},me=async e=>{a(Sr,e[i.valueKey]),a(br,e[i.valueKey]),a(`select`,e),v.value=[],b.value=-1},he=e=>{if(!ee.value||E.value)return;if(e<0){if(!i.loopNavigation){b.value=-1;return}e=v.value.length-1}e>=v.value.length&&(e=i.loopNavigation?0:v.value.length-1);let[t,n]=z(),r=n[e],a=t.scrollTop,{offsetTop:o,scrollHeight:s}=r;o+s>a+t.clientHeight&&(t.scrollTop=o+s-t.clientHeight),o{let e=f.value.querySelector(`.${l.be(`suggestion`,`wrap`)}`);return[e,e.querySelectorAll(`.${l.be(`suggestion`,`list`)} li`)]},ge=jf(h,e=>{if(p.value?.isFocusInsideContent())return;let t=_;_=!1,ee.value&&(t?se(new FocusEvent(`blur`,e)):de())}),_e=e=>{switch(Kp(e)){case X.up:e.preventDefault(),he(b.value-1);break;case X.down:e.preventDefault(),he(b.value+1);break;case X.enter:case X.numpadEnter:e.preventDefault(),le();break;case X.tab:de();break;case X.esc:ue(e);break;case X.home:e.preventDefault(),he(0);break;case X.end:e.preventDefault(),he(v.value.length-1);break;case X.pageUp:e.preventDefault(),he(Math.max(0,b.value-10));break;case X.pageDown:e.preventDefault(),he(Math.min(v.value.length-1,b.value+10));break}};return T(()=>{ge?.()}),d(()=>{let e=u.value?.ref;e&&([{key:`role`,value:`textbox`},{key:`aria-autocomplete`,value:`list`},{key:`aria-controls`,value:D.value},{key:`aria-activedescendant`,value:`${D.value}-item-${b.value}`}].forEach(({key:t,value:n})=>e.setAttribute(t,n)),g=e.hasAttribute(`readonly`))}),t({highlightedIndex:b,activated:C,loading:E,inputRef:u,popperRef:p,suggestions:v,handleSelect:me,handleKeyEnter:le,focus:fe,blur:pe,close:de,highlight:he,getData:ne}),(t,n)=>(N(),H(Y(ES),{ref_key:`popperRef`,ref:p,visible:ee.value,placement:e.placement,"fallback-placements":[`bottom-start`,`top-start`],"popper-class":[Y(l).e(`popper`),e.popperClass],"popper-style":e.popperStyle,"popper-options":e.popperOptions,"show-arrow":e.showArrow,teleported:e.teleported,"append-to":e.appendTo,"gpu-acceleration":!1,pure:``,"manual-mode":``,effect:`light`,trigger:`click`,transition:`${Y(l).namespace.value}-zoom-in-top`,persistent:``,role:`listbox`,onBeforeShow:P,onHide:te},{content:V(()=>[B(`div`,{ref_key:`regionRef`,ref:f,class:F([Y(l).b(`suggestion`),Y(l).is(`loading`,j.value)]),style:m({[e.fitInputWidth?`width`:`minWidth`]:x.value,outline:`none`}),role:`region`},[t.$slots.header?(N(),W(`div`,{key:0,class:F(Y(l).be(`suggestion`,`header`)),onClick:n[0]||=kn(()=>{},[`stop`])},[I(t.$slots,`header`)],2)):G(`v-if`,!0),J(Y(tC),{id:Y(D),tag:`ul`,"wrap-class":Y(l).be(`suggestion`,`wrap`),"view-class":Y(l).be(`suggestion`,`list`),role:`listbox`},{default:V(()=>[j.value?(N(),W(`li`,rC,[I(t.$slots,`loading`,{},()=>[J(Y(By),{class:F(Y(l).is(`loading`))},{default:V(()=>[J(Y(dy))]),_:1},8,[`class`])])])):(N(!0),W(R,{key:1},r(v.value,(n,r)=>(N(),W(`li`,{id:`${Y(D)}-item-${r}`,key:r,class:F({highlighted:b.value===r}),role:`option`,"aria-selected":b.value===r,onClick:e=>me(n)},[I(t.$slots,`default`,{item:n},()=>[Ke(S(n[e.valueKey]),1)])],10,iC))),128))]),_:3},8,[`id`,`wrap-class`,`view-class`]),t.$slots.footer?(N(),W(`div`,{key:1,class:F(Y(l).be(`suggestion`,`footer`)),onClick:n[1]||=kn(()=>{},[`stop`])},[I(t.$slots,`footer`)],2)):G(`v-if`,!0)],6)]),default:V(()=>[B(`div`,{ref_key:`listboxRef`,ref:h,class:F([Y(l).b(),t.$attrs.class]),style:m(O.value),role:`combobox`,"aria-haspopup":`listbox`,"aria-expanded":ee.value,"aria-owns":Y(D)},[J(Y(zS),k({ref_key:`inputRef`,ref:u},k(o.value,t.$attrs),{"model-value":e.modelValue,disabled:Y(c),onInput:ie,onChange:oe,onFocus:L,onBlur:se,onClear:ce,onKeydown:_e,onMousedown:ae}),xe({_:2},[t.$slots.prepend?{name:`prepend`,fn:V(()=>[I(t.$slots,`prepend`)]),key:`0`}:void 0,t.$slots.append?{name:`append`,fn:V(()=>[I(t.$slots,`append`)]),key:`1`}:void 0,t.$slots.prefix?{name:`prefix`,fn:V(()=>[I(t.$slots,`prefix`)]),key:`2`}:void 0,t.$slots.suffix?{name:`suffix`,fn:V(()=>[I(t.$slots,`suffix`)]),key:`3`}:void 0]),1040,[`model-value`,`disabled`])],14,nC)]),_:3},8,[`visible`,`placement`,`popper-class`,`popper-style`,`popper-options`,`show-arrow`,`teleported`,`append-to`,`transition`]))}})),sC=Q({size:{type:[Number,String],values:wr,validator:e=>Md(e)},shape:{type:String,values:[`circle`,`square`]},icon:{type:Ny},src:{type:String,default:``},alt:String,srcSet:String,fit:{type:Z(String),default:`cover`}}),cC={error:e=>e instanceof Event},lC=Symbol(`avatarGroupContextKey`),uC={size:{type:Z([Number,String]),values:wr,validator:e=>Md(e)},shape:{type:Z(String),values:[`circle`,`square`]},collapseAvatars:Boolean,collapseAvatarsTooltip:Boolean,maxCollapseAvatars:{type:Number,default:1},effect:{type:Z(String),default:`light`},placement:{type:Z(String),values:fm,default:`top`},popperClass:fS.popperClass,popperStyle:fS.popperStyle,collapseClass:String,collapseStyle:{type:Z([String,Array,Object,Boolean]),default:void 0}},dC=[`src`,`alt`,`srcset`],fC=z({name:`ElAvatar`,__name:`avatar`,props:sC,emits:cC,setup(e,{emit:t}){let n=e,r=t,i=l(lC,void 0),a=$(`avatar`),o=q(!1),s=K(()=>n.size??i?.size),c=K(()=>n.shape??i?.shape??`circle`),u=K(()=>{let{icon:e}=n,t=[a.b()];return P(s.value)&&t.push(a.m(s.value)),e&&t.push(a.m(`icon`)),c.value&&t.push(a.m(c.value)),t}),d=K(()=>Md(s.value)?a.cssVarBlock({size:bp(s.value)}):void 0),f=K(()=>({objectFit:n.fit}));M(()=>[n.src,n.srcSet],()=>o.value=!1);function p(e){o.value=!0,r(`error`,e)}return(t,n)=>(N(),W(`span`,{class:F(u.value),style:m(d.value)},[(e.src||e.srcSet)&&!o.value?(N(),W(`img`,{key:0,src:e.src,alt:e.alt,srcset:e.srcSet,style:m(f.value),onError:p},null,44,dC)):e.icon?(N(),H(Y(By),{key:1},{default:V(()=>[(N(),H(L(e.icon)))]),_:1})):I(t.$slots,`default`,{key:2})],6))}}),pC=z({name:`ElAvatarGroup`,props:uC,setup(e,{slots:t}){let n=$(`avatar-group`);return Qe(lC,ve({size:we(e,`size`),shape:we(e,`shape`)})),()=>{let r=vv(t.default?.()??[]),i=r;if(e.collapseAvatars&&r.length>e.maxCollapseAvatars){i=r.slice(0,e.maxCollapseAvatars);let t=r.slice(e.maxCollapseAvatars);i.push(J(ES,{popperClass:e.popperClass,popperStyle:e.popperStyle,placement:e.placement,effect:e.effect,disabled:!e.collapseAvatarsTooltip},{default:()=>J(fC,{size:e.size,shape:e.shape,class:e.collapseClass,style:e.collapseStyle},{default:()=>[Ke(`+ `),t.length]}),content:()=>J(`div`,{class:n.e(`collapse-avatars`)},[t.map((e,t)=>s(e)?Ae(e,{key:e.key??t}):e)])}))}return J(`div`,{class:n.b()},[i])}}}),mC=Pv(fC,{AvatarGroup:pC}),hC=Lv(pC),gC={visibilityHeight:{type:Number,default:200},target:{type:String,default:``},right:{type:Number,default:40},bottom:{type:Number,default:40}},_C={click:e=>e instanceof MouseEvent},vC=(e,t,n)=>{let r=Le(),i=Le(),a=q(!1),o=()=>{r.value&&(a.value=r.value.scrollTop>=e.visibilityHeight)};return kf(i,`scroll`,Sf(o,300,!0)),d(()=>{i.value=document,r.value=document.documentElement,e.target&&(r.value=document.querySelector(e.target)??void 0,r.value||qd(n,`target does not exist: ${e.target}`),i.value=r.value),o()}),{visible:a,handleClick:e=>{r.value?.scrollTo({top:0,behavior:`smooth`}),t(`click`,e)}}},yC=`ElBacktop`,bC=Pv(z({name:yC,__name:`backtop`,props:gC,emits:_C,setup(e,{emit:t}){let n=e,r=t,i=$(`backtop`),{handleClick:a,visible:o}=vC(n,r,yC),s=K(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`}));return(e,t)=>(N(),H(pt,{name:`${Y(i).namespace.value}-fade-in`},{default:V(()=>[Y(o)?(N(),W(`div`,{key:0,style:m(s.value),class:F(Y(i).b()),onClick:t[0]||=kn((...e)=>Y(a)&&Y(a)(...e),[`stop`])},[I(e.$slots,`default`,{},()=>[J(Y(By),{class:F(Y(i).e(`icon`))},{default:V(()=>[J(Y(qv))]),_:1},8,[`class`])])],6)):G(`v-if`,!0)]),_:3},8,[`name`]))}})),xC=Pv(z({name:`ElBadge`,__name:`badge`,props:Q({value:{type:[String,Number],default:``},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:[`primary`,`success`,`warning`,`info`,`danger`],default:`danger`},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:Z([String,Object,Array,Boolean]),default:void 0},offset:{type:Z(Array),default:()=>[0,0]},badgeClass:{type:String}}),setup(e,{expose:t}){let n=e,r=$(`badge`),i=K(()=>n.isDot?``:Md(n.value)&&Md(n.max)&&n.max[{backgroundColor:n.color,marginRight:bp(-n.offset[0]),marginTop:bp(n.offset[1])},n.badgeStyle??{}]);return t({content:i}),(t,n)=>(N(),W(`div`,{class:F(Y(r).b())},[I(t.$slots,`default`),J(pt,{name:`${Y(r).namespace.value}-zoom-in-center`},{default:V(()=>[!e.hidden&&(i.value||e.isDot||t.$slots.content)?(N(),W(`sup`,{key:0,class:F([Y(r).e(`content`),Y(r).em(`content`,e.type),Y(r).is(`fixed`,!!t.$slots.default),Y(r).is(`dot`,e.isDot),Y(r).is(`hide-zero`,!e.showZero&&e.value===0),e.badgeClass]),style:m(a.value)},[I(t.$slots,`content`,{value:i.value},()=>[Ke(S(i.value),1)])],6)):G(`v-if`,!0)]),_:3},8,[`name`])],2))}})),SC=Q({separator:{type:String,default:`/`},separatorIcon:{type:Ny}}),CC=Symbol(`breadcrumbKey`),wC=Q({to:{type:Z([String,Object]),default:``},replace:Boolean}),TC=[`aria-label`],EC=z({name:`ElBreadcrumb`,__name:`breadcrumb`,props:SC,setup(e){let{t}=Dp(),n=e,r=$(`breadcrumb`),i=q();return Qe(CC,n),d(()=>{let e=i.value.querySelectorAll(`.${r.e(`item`)}`);e.length&&e[e.length-1].setAttribute(`aria-current`,`page`)}),(e,n)=>(N(),W(`div`,{ref_key:`breadcrumb`,ref:i,class:F(Y(r).b()),"aria-label":Y(t)(`el.breadcrumb.label`),role:`navigation`},[I(e.$slots,`default`)],10,TC))}}),DC=z({name:`ElBreadcrumbItem`,__name:`breadcrumb-item`,props:wC,setup(e){let t=e,n=Xe(),r=l(CC,void 0),i=$(`breadcrumb`),a=n.appContext.config.globalProperties.$router,o=()=>{!t.to||!a||(t.replace?a.replace(t.to):a.push(t.to))};return(t,n)=>(N(),W(`span`,{class:F(Y(i).e(`item`))},[B(`span`,{class:F([Y(i).e(`inner`),Y(i).is(`link`,!!e.to)]),role:`link`,onClick:o},[I(t.$slots,`default`)],2),Y(r)?.separatorIcon?(N(),H(Y(By),{key:0,class:F(Y(i).e(`separator`))},{default:V(()=>[(N(),H(L(Y(r).separatorIcon)))]),_:1},8,[`class`])):(N(),W(`span`,{key:1,class:F(Y(i).e(`separator`)),role:`presentation`},S(Y(r)?.separator),3))],2))}}),OC=Pv(EC,{BreadcrumbItem:DC}),kC=Lv(DC),AC=[`default`,`primary`,`success`,`warning`,`info`,`danger`,`text`,``],jC=Q({size:xv,disabled:{type:Boolean,default:void 0},type:{type:String,values:AC,default:``},icon:{type:Ny},nativeType:{type:String,values:[`button`,`submit`,`reset`],default:`button`},loading:Boolean,loadingIcon:{type:Ny,default:()=>dy},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,dashed:{type:Boolean,default:void 0},color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:Z([String,Object]),default:`button`}}),MC={click:e=>e instanceof MouseEvent},NC=Symbol(),PC=q();function FC(e,t=void 0){let n=Xe()?l(NC,PC):PC;return e?K(()=>n.value?.[e]??t):n}function IC(e,t){let n=FC(),r=$(e,K(()=>n.value?.namespace||`el`)),i=Dp(K(()=>n.value?.locale)),a=xg(K(()=>{let e=n.value?.zIndex;return cd(e)||Number.isNaN(e)?vg:e})),o=K(()=>Y(t)||n.value?.size||``);return LC(K(()=>Y(n)||{})),{ns:r,locale:i,zIndex:a,size:o}}var LC=(e,t,n=!1)=>{let r=!!Xe(),i=r?FC():void 0,a=t?.provide??(r?Qe:void 0);if(!a){Jd(`provideGlobalConfig`,`provideGlobalConfig() can only be used inside setup().`);return}let o=K(()=>{let t=Y(e);return i?.value?RC(i.value,t):t});return a(NC,o),a(Ep,K(()=>o.value.locale)),a(Ap,K(()=>o.value.namespace)),a(bg,K(()=>o.value.zIndex)),a(Sv,{size:K(()=>o.value.size||``)}),a(Ev,K(()=>({emptyValues:o.value.emptyValues,valueOnClear:o.value.valueOnClear}))),(n||!PC.value)&&(PC.value=o.value),o},RC=(e,t)=>{let n=[...new Set([...Rd(e),...Rd(t)])],r={};for(let i of n)r[i]=t[i]===void 0?e[i]:t[i];return r},zC=Q({a11y:{type:Boolean,default:!0},locale:{type:Z(Object)},size:xv,button:{type:Z(Object)},card:{type:Z(Object)},dialog:{type:Z(Object)},link:{type:Z(Object)},experimentalFeatures:{type:Z(Object)},keyboardNavigation:{type:Boolean,default:!0},message:{type:Z(Object)},zIndex:Number,namespace:{type:String,default:`el`},table:{type:Z(Object)},...kv}),BC={placement:`top`},VC=Pv(z({name:`ElConfigProvider`,props:zC,setup(e,{slots:t}){let n=LC(e);return M(()=>e.message,e=>{Object.assign(BC,n?.value?.message??{},e??{})},{immediate:!0,deep:!0}),()=>I(t,`default`,{config:n?.value})}})),HC=Symbol(`buttonGroupContextKey`),UC=(e,t)=>{Zf({from:`type.text`,replacement:`link`,version:`3.0.0`,scope:`props`,ref:`https://element-plus.org/en-US/component/button.html#button-attributes`},K(()=>e.type===`text`));let n=l(HC,void 0),r=FC(`button`),{form:i}=ub(),a=cb(K(()=>n?.size)),o=lb(),s=q(),c=le(),u=K(()=>e.type||n?.type||r.value?.type||``),d=K(()=>e.autoInsertSpace??r.value?.autoInsertSpace??!1),f=K(()=>e.plain??r.value?.plain??!1),p=K(()=>e.round??r.value?.round??!1),m=K(()=>e.text??r.value?.text??!1),h=K(()=>e.dashed??r.value?.dashed??!1);return{_disabled:o,_size:a,_type:u,_ref:s,_props:K(()=>e.tag===`button`?{ariaDisabled:o.value||e.loading,disabled:o.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),_plain:f,_round:p,_text:m,_dashed:h,shouldAddSpace:K(()=>{let e=c.default?.();if(d.value&&e?.length===1){let t=e[0];if(t?.type===He){let e=t.children;return/^\p{Unified_Ideograph}{2}$/u.test(e.trim())}}return!1}),handleClick:n=>{if(o.value||e.loading){n.stopPropagation();return}e.nativeType===`reset`&&i?.resetFields(),t(`click`,n)}}};function WC(e,t){KC(e)&&(e=`100%`);let n=qC(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(e=t===360?(e<0?e%t+t:e%t)/parseFloat(String(t)):e%t/parseFloat(String(t)),e)}function GC(e){return Math.min(1,Math.max(0,e))}function KC(e){return typeof e==`string`&&e.indexOf(`.`)!==-1&&parseFloat(e)===1}function qC(e){return typeof e==`string`&&e.indexOf(`%`)!==-1}function JC(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function YC(e){return Number(e)<=1?`${Number(e)*100}%`:e}function XC(e){return e.length===1?`0`+e:String(e)}function ZC(e,t,n){return{r:WC(e,255)*255,g:WC(t,255)*255,b:WC(n,255)*255}}function QC(e,t,n){e=WC(e,255),t=WC(t,255),n=WC(n,255);let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=0,s=(r+i)/2;if(r===i)o=0,a=0;else{let 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}function ew(e,t,n){let r,i,a;if(e=WC(e,360),t=WC(t,100),n=WC(n,100),t===0)i=n,a=n,r=n;else{let o=n<.5?n*(1+t):n+t-n*t,s=2*n-o;r=$C(s,o,e+1/3),i=$C(s,o,e),a=$C(s,o,e-1/3)}return{r:r*255,g:i*255,b:a*255}}function tw(e,t,n){e=WC(e,255),t=WC(t,255),n=WC(n,255);let r=Math.max(e,t,n),i=Math.min(e,t,n),a=0,o=r,s=r-i,c=r===0?0:s/r;if(r===i)a=0;else{switch(r){case e:a=(t-n)/s+(t>16,g:(e&65280)>>8,b:e&255}}var dw={aliceblue:`#f0f8ff`,antiquewhite:`#faebd7`,aqua:`#00ffff`,aquamarine:`#7fffd4`,azure:`#f0ffff`,beige:`#f5f5dc`,bisque:`#ffe4c4`,black:`#000000`,blanchedalmond:`#ffebcd`,blue:`#0000ff`,blueviolet:`#8a2be2`,brown:`#a52a2a`,burlywood:`#deb887`,cadetblue:`#5f9ea0`,chartreuse:`#7fff00`,chocolate:`#d2691e`,coral:`#ff7f50`,cornflowerblue:`#6495ed`,cornsilk:`#fff8dc`,crimson:`#dc143c`,cyan:`#00ffff`,darkblue:`#00008b`,darkcyan:`#008b8b`,darkgoldenrod:`#b8860b`,darkgray:`#a9a9a9`,darkgreen:`#006400`,darkgrey:`#a9a9a9`,darkkhaki:`#bdb76b`,darkmagenta:`#8b008b`,darkolivegreen:`#556b2f`,darkorange:`#ff8c00`,darkorchid:`#9932cc`,darkred:`#8b0000`,darksalmon:`#e9967a`,darkseagreen:`#8fbc8f`,darkslateblue:`#483d8b`,darkslategray:`#2f4f4f`,darkslategrey:`#2f4f4f`,darkturquoise:`#00ced1`,darkviolet:`#9400d3`,deeppink:`#ff1493`,deepskyblue:`#00bfff`,dimgray:`#696969`,dimgrey:`#696969`,dodgerblue:`#1e90ff`,firebrick:`#b22222`,floralwhite:`#fffaf0`,forestgreen:`#228b22`,fuchsia:`#ff00ff`,gainsboro:`#dcdcdc`,ghostwhite:`#f8f8ff`,goldenrod:`#daa520`,gold:`#ffd700`,gray:`#808080`,green:`#008000`,greenyellow:`#adff2f`,grey:`#808080`,honeydew:`#f0fff0`,hotpink:`#ff69b4`,indianred:`#cd5c5c`,indigo:`#4b0082`,ivory:`#fffff0`,khaki:`#f0e68c`,lavenderblush:`#fff0f5`,lavender:`#e6e6fa`,lawngreen:`#7cfc00`,lemonchiffon:`#fffacd`,lightblue:`#add8e6`,lightcoral:`#f08080`,lightcyan:`#e0ffff`,lightgoldenrodyellow:`#fafad2`,lightgray:`#d3d3d3`,lightgreen:`#90ee90`,lightgrey:`#d3d3d3`,lightpink:`#ffb6c1`,lightsalmon:`#ffa07a`,lightseagreen:`#20b2aa`,lightskyblue:`#87cefa`,lightslategray:`#778899`,lightslategrey:`#778899`,lightsteelblue:`#b0c4de`,lightyellow:`#ffffe0`,lime:`#00ff00`,limegreen:`#32cd32`,linen:`#faf0e6`,magenta:`#ff00ff`,maroon:`#800000`,mediumaquamarine:`#66cdaa`,mediumblue:`#0000cd`,mediumorchid:`#ba55d3`,mediumpurple:`#9370db`,mediumseagreen:`#3cb371`,mediumslateblue:`#7b68ee`,mediumspringgreen:`#00fa9a`,mediumturquoise:`#48d1cc`,mediumvioletred:`#c71585`,midnightblue:`#191970`,mintcream:`#f5fffa`,mistyrose:`#ffe4e1`,moccasin:`#ffe4b5`,navajowhite:`#ffdead`,navy:`#000080`,oldlace:`#fdf5e6`,olive:`#808000`,olivedrab:`#6b8e23`,orange:`#ffa500`,orangered:`#ff4500`,orchid:`#da70d6`,palegoldenrod:`#eee8aa`,palegreen:`#98fb98`,paleturquoise:`#afeeee`,palevioletred:`#db7093`,papayawhip:`#ffefd5`,peachpuff:`#ffdab9`,peru:`#cd853f`,pink:`#ffc0cb`,plum:`#dda0dd`,powderblue:`#b0e0e6`,purple:`#800080`,rebeccapurple:`#663399`,red:`#ff0000`,rosybrown:`#bc8f8f`,royalblue:`#4169e1`,saddlebrown:`#8b4513`,salmon:`#fa8072`,sandybrown:`#f4a460`,seagreen:`#2e8b57`,seashell:`#fff5ee`,sienna:`#a0522d`,silver:`#c0c0c0`,skyblue:`#87ceeb`,slateblue:`#6a5acd`,slategray:`#708090`,slategrey:`#708090`,snow:`#fffafa`,springgreen:`#00ff7f`,steelblue:`#4682b4`,tan:`#d2b48c`,teal:`#008080`,thistle:`#d8bfd8`,tomato:`#ff6347`,turquoise:`#40e0d0`,violet:`#ee82ee`,wheat:`#f5deb3`,white:`#ffffff`,whitesmoke:`#f5f5f5`,yellow:`#ffff00`,yellowgreen:`#9acd32`};function fw(e){let t={r:0,g:0,b:0},n=1,r=null,i=null,a=null,o=!1,s=!1;return typeof e==`string`&&(e=mw(e)),typeof e==`object`&&(hw(e.r)&&hw(e.g)&&hw(e.b)?(t=ZC(e.r,e.g,e.b),o=!0,s=String(e.r).substr(-1)===`%`?`prgb`:`rgb`):hw(e.h)&&hw(e.s)&&hw(e.v)?(r=YC(e.s),i=YC(e.v),t=nw(e.h,r,i),o=!0,s=`hsv`):hw(e.h)&&hw(e.s)&&hw(e.l)?(r=YC(e.s),a=YC(e.l),t=ew(e.h,r,a),o=!0,s=`hsl`):hw(e.c)&&hw(e.m)&&hw(e.y)&&hw(e.k)&&(t=aw(e.c,e.m,e.y,e.k),o=!0,s=`cmyk`),Object.prototype.hasOwnProperty.call(e,`a`)&&(n=e.a)),n=JC(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}}var pw={CSS_UNIT:RegExp(`(?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?)`),rgb:RegExp(`rgb[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),rgba:RegExp(`rgba[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),hsl:RegExp(`hsl[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),hsla:RegExp(`hsla[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),hsv:RegExp(`hsv[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),hsva:RegExp(`hsva[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),cmyk:RegExp(`cmyk[\\s|\\(]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))[,|\\s]+((?:[-\\+]?\\d*\\.\\d+%?)|(?:[-\\+]?\\d+%?))\\s*\\)?`),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 mw(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;let t=!1;if(dw[e])e=dw[e],t=!0;else if(e===`transparent`)return{r:0,g:0,b:0,a:0,format:`name`};let n=pw.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=pw.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=pw.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=pw.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=pw.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=pw.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=pw.cmyk.exec(e),n?{c:n[1],m:n[2],y:n[3],k:n[4]}:(n=pw.hex8.exec(e),n?{r:lw(n[1]),g:lw(n[2]),b:lw(n[3]),a:cw(n[4]),format:t?`name`:`hex8`}:(n=pw.hex6.exec(e),n?{r:lw(n[1]),g:lw(n[2]),b:lw(n[3]),format:t?`name`:`hex`}:(n=pw.hex4.exec(e),n?{r:lw(n[1]+n[1]),g:lw(n[2]+n[2]),b:lw(n[3]+n[3]),a:cw(n[4]+n[4]),format:t?`name`:`hex8`}:(n=pw.hex3.exec(e),n?{r:lw(n[1]+n[1]),g:lw(n[2]+n[2]),b:lw(n[3]+n[3]),format:t?`name`:`hex`}:!1))))))))))}function hw(e){return typeof e==`number`?!Number.isNaN(e):pw.CSS_UNIT.test(e)}var gw=class e{constructor(t=``,n={}){if(t instanceof e)return t;typeof t==`number`&&(t=uw(t)),this.originalInput=t;let r=fw(t);this.originalInput=t,this.r=r.r,this.g=r.g,this.b=r.b,this.a=r.a,this.roundA=Math.round(100*this.a)/100,this.format=n.format??r.format,this.gradientType=n.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.isValid=r.ok}isDark(){return this.getBrightness()<128}isLight(){return!this.isDark()}getBrightness(){let e=this.toRgb();return(e.r*299+e.g*587+e.b*114)/1e3}getLuminance(){let e=this.toRgb(),t,n,r,i=e.r/255,a=e.g/255,o=e.b/255;return t=i<=.03928?i/12.92:((i+.055)/1.055)**2.4,n=a<=.03928?a/12.92:((a+.055)/1.055)**2.4,r=o<=.03928?o/12.92:((o+.055)/1.055)**2.4,.2126*t+.7152*n+.0722*r}getAlpha(){return this.a}setAlpha(e){return this.a=JC(e),this.roundA=Math.round(100*this.a)/100,this}isMonochrome(){let{s:e}=this.toHsl();return e===0}toHsv(){let e=tw(this.r,this.g,this.b);return{h:e.h*360,s:e.s,v:e.v,a:this.a}}toHsvString(){let e=tw(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(){let e=QC(this.r,this.g,this.b);return{h:e.h*360,s:e.s,l:e.l,a:this.a}}toHslString(){let e=QC(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(e=!1){return rw(this.r,this.g,this.b,e)}toHexString(e=!1){return`#`+this.toHex(e)}toHex8(e=!1){return iw(this.r,this.g,this.b,this.a,e)}toHex8String(e=!1){return`#`+this.toHex8(e)}toHexShortString(e=!1){return this.a===1?this.toHexString(e):this.toHex8String(e)}toRgb(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}}toRgbString(){let e=Math.round(this.r),t=Math.round(this.g),n=Math.round(this.b);return this.a===1?`rgb(${e}, ${t}, ${n})`:`rgba(${e}, ${t}, ${n}, ${this.roundA})`}toPercentageRgb(){let e=e=>`${Math.round(WC(e,255)*100)}%`;return{r:e(this.r),g:e(this.g),b:e(this.b),a:this.a}}toPercentageRgbString(){let e=e=>Math.round(WC(e,255)*100);return this.a===1?`rgb(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%)`:`rgba(${e(this.r)}%, ${e(this.g)}%, ${e(this.b)}%, ${this.roundA})`}toCmyk(){return{...ow(this.r,this.g,this.b)}}toCmykString(){let{c:e,m:t,y:n,k:r}=ow(this.r,this.g,this.b);return`cmyk(${e}, ${t}, ${n}, ${r})`}toName(){if(this.a===0)return`transparent`;if(this.a<1)return!1;let e=`#`+rw(this.r,this.g,this.b,!1);for(let[t,n]of Object.entries(dw))if(e===n)return t;return!1}toString(e){let t=!!e;e??=this.format;let n=!1,r=this.a<1&&this.a>=0;return!t&&r&&(e.startsWith(`hex`)||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()),e===`cmyk`&&(n=this.toCmykString()),n||this.toHexString())}toNumber(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)}clone(){return new e(this.toString())}lighten(t=10){let n=this.toHsl();return n.l+=t/100,n.l=GC(n.l),new e(n)}brighten(t=10){let n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)}darken(t=10){let n=this.toHsl();return n.l-=t/100,n.l=GC(n.l),new e(n)}tint(e=10){return this.mix(`white`,e)}shade(e=10){return this.mix(`black`,e)}desaturate(t=10){let n=this.toHsl();return n.s-=t/100,n.s=GC(n.s),new e(n)}saturate(t=10){let n=this.toHsl();return n.s+=t/100,n.s=GC(n.s),new e(n)}greyscale(){return this.desaturate(100)}spin(t){let n=this.toHsl(),r=(n.h+t)%360;return n.h=r<0?360+r:r,new e(n)}mix(t,n=50){let r=this.toRgb(),i=new e(t).toRgb(),a=n/100;return new e({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})}analogous(t=6,n=30){let r=this.toHsl(),i=360/n,a=[this];for(r.h=(r.h-(i*t>>1)+720)%360;--t;)r.h=(r.h+i)%360,a.push(new e(r));return a}complement(){let t=this.toHsl();return t.h=(t.h+180)%360,new e(t)}monochromatic(t=6){let n=this.toHsv(),{h:r}=n,{s:i}=n,{v:a}=n,o=[],s=1/t;for(;t--;)o.push(new e({h:r,s:i,v:a})),a=(a+s)%1;return o}splitcomplement(){let t=this.toHsl(),{h:n}=t;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]}onBackground(t){let n=this.toRgb(),r=new e(t).toRgb(),i=n.a+r.a*(1-n.a);return new e({r:(n.r*n.a+r.r*r.a*(1-n.a))/i,g:(n.g*n.a+r.g*r.a*(1-n.a))/i,b:(n.b*n.a+r.b*r.a*(1-n.a))/i,a:i})}triad(){return this.polyad(3)}tetrad(){return this.polyad(4)}polyad(t){let n=this.toHsl(),{h:r}=n,i=[this],a=360/t;for(let o=1;o{let r={},i=e.color;if(i){let a=i.match(/var\((.*?)\)/);a&&(i=window.getComputedStyle(window.document.documentElement).getPropertyValue(a[1]));let o=new gw(i),s=e.dark?o.tint(20).toString():_w(o,20);if(e.plain)r=n.cssVarBlock({"bg-color":e.dark?_w(o,90):o.tint(90).toString(),"text-color":i,"border-color":e.dark?_w(o,50):o.tint(50).toString(),"hover-text-color":`var(${n.cssVarName(`color-white`)})`,"hover-bg-color":i,"hover-border-color":i,"active-bg-color":s,"active-text-color":`var(${n.cssVarName(`color-white`)})`,"active-border-color":s}),t.value&&(r[n.cssVarBlockName(`disabled-bg-color`)]=e.dark?_w(o,90):o.tint(90).toString(),r[n.cssVarBlockName(`disabled-text-color`)]=e.dark?_w(o,50):o.tint(50).toString(),r[n.cssVarBlockName(`disabled-border-color`)]=e.dark?_w(o,80):o.tint(80).toString());else if(e.link||e.text){let a=e.dark?_w(o,30):o.tint(30).toString();if(r=n.cssVarBlock({"text-color":i,"hover-text-color":a,"active-text-color":s}),e.link&&(r[n.cssVarBlockName(`hover-link-text-color`)]=a,r[n.cssVarBlockName(`active-color`)]=s),t.value){let t=e.dark?_w(o,50):o.tint(50).toString();r[n.cssVarBlockName(`disabled-bg-color`)]=`transparent`,r[n.cssVarBlockName(`disabled-text-color`)]=t,r[n.cssVarBlockName(`disabled-border-color`)]=`transparent`}}else{let a=e.dark?_w(o,30):o.tint(30).toString(),c=o.isDark()?`var(${n.cssVarName(`color-white`)})`:`var(${n.cssVarName(`color-black`)})`;if(r=n.cssVarBlock({"bg-color":i,"text-color":c,"border-color":i,"hover-bg-color":a,"hover-text-color":c,"hover-border-color":a,"active-bg-color":s,"active-border-color":s}),t.value){let t=e.dark?_w(o,50):o.tint(50).toString();r[n.cssVarBlockName(`disabled-bg-color`)]=t,r[n.cssVarBlockName(`disabled-text-color`)]=e.dark?`rgba(255, 255, 255, 0.5)`:`var(${n.cssVarName(`color-white`)})`,r[n.cssVarBlockName(`disabled-border-color`)]=t}}}return r})}var yw=z({name:`ElButton`,__name:`button`,props:jC,emits:MC,setup(e,{expose:t,emit:n}){let r=e,i=n,a=vw(r),o=$(`button`),{_ref:s,_size:c,_type:l,_disabled:u,_props:d,_plain:f,_round:p,_text:m,_dashed:h,shouldAddSpace:g,handleClick:_}=UC(r,i),v=K(()=>[o.b(),o.m(l.value),o.m(c.value),o.is(`disabled`,u.value),o.is(`loading`,r.loading),o.is(`plain`,f.value),o.is(`round`,p.value),o.is(`circle`,r.circle),o.is(`text`,m.value),o.is(`dashed`,h.value),o.is(`link`,r.link),o.is(`has-bg`,r.bg)]);return t({ref:s,size:c,type:l,disabled:u,shouldAddSpace:g}),(t,n)=>(N(),H(L(e.tag),k({ref_key:`_ref`,ref:s},Y(d),{class:v.value,style:Y(a),onClick:Y(_)}),{default:V(()=>[e.loading?(N(),W(R,{key:0},[t.$slots.loading?I(t.$slots,`loading`,{key:0}):(N(),H(Y(By),{key:1,class:F(Y(o).is(`loading`))},{default:V(()=>[(N(),H(L(e.loadingIcon)))]),_:1},8,[`class`]))],64)):e.icon||t.$slots.icon?(N(),H(Y(By),{key:1},{default:V(()=>[e.icon?(N(),H(L(e.icon),{key:0})):I(t.$slots,`icon`,{key:1})]),_:3})):G(`v-if`,!0),t.$slots.default?(N(),W(`span`,{key:2,class:F({[Y(o).em(`text`,`expand`)]:Y(g)})},[I(t.$slots,`default`)],2)):G(`v-if`,!0)]),_:3},16,[`class`,`style`,`onClick`]))}}),bw=z({name:`ElButtonGroup`,__name:`button-group`,props:{size:jC.size,type:jC.type,direction:{type:Z(String),values:[`horizontal`,`vertical`],default:`horizontal`}},setup(e){let t=e;Qe(HC,ve({size:we(t,`size`),type:we(t,`type`)}));let n=$(`button`);return(e,r)=>(N(),W(`div`,{class:F([Y(n).b(`group`),Y(n).bm(`group`,t.direction)])},[I(e.$slots,`default`)],2))}}),xw=Pv(yw,{ButtonGroup:bw}),Sw=Lv(bw),Cw=Q({modelValue:{type:Date},range:{type:Z(Array),validator:e=>A(e)&&e.length===2&&e.every(e=>ke(e))},controllerType:{type:String,values:[`button`,`select`],default:`button`},formatter:{type:Z(Function)}}),ww={[br]:e=>ke(e),[Sr]:e=>ke(e)},Tw=[`hours`,`minutes`,`seconds`],Ew=`EP_PICKER_BASE`,Dw=`ElPopperOptions`,Ow=Symbol(`commonPickerContextKey`),kw=`HH:mm:ss`,Aw=`YYYY-MM-DD`,jw={date:Aw,dates:Aw,week:`gggg[w]ww`,year:`YYYY`,years:`YYYY`,month:`YYYY-MM`,months:`YYYY-MM`,datetime:`${Aw} ${kw}`,monthrange:`YYYY-MM`,yearrange:`YYYY`,daterange:Aw,datetimerange:`${Aw} ${kw}`},Mw=fe(ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs=r()})(e,(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=/\[([^\]]+)]|YYYY|YY|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=typeof 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)[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),Fw=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,``).replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,``).trim(),Iw=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,``).trim(),Lw=function(e,t){let n=ke(e),r=ke(t);return n&&r?e.getTime()===t.getTime():!n&&!r?e===t:!1},Rw=function(e,t){let n=A(e),r=A(t);return n&&r?e.length===t.length?e.every((e,n)=>Lw(e,t[n])):!1:!n&&!r?Lw(e,t):!1},zw=function(e,t,n){let r=Nd(t)||t===`x`?(0,Mw.default)(e).locale(n):(0,Mw.default)(e,t).locale(n);return r.isValid()?r:void 0},Bw=function(e,t,n){return Nd(t)?e:t===`x`?+e:(0,Mw.default)(e).locale(n).format(t)},Vw=(e,t)=>{let n=[],r=t?.();for(let t=0;tA(e)?e.map(e=>e.toDate()):e.toDate(),Uw=Q({disabledHours:{type:Z(Function)},disabledMinutes:{type:Z(Function)},disabledSeconds:{type:Z(Function)}}),Ww=Q({visible:Boolean,actualVisible:{type:Boolean,default:void 0},format:{type:String,default:``}}),Gw=Q({automaticDropdown:{type:Boolean,default:!0},id:{type:Z([Array,String])},name:{type:Z([Array,String])},popperClass:fS.popperClass,popperStyle:fS.popperStyle,format:String,valueFormat:String,dateFormat:String,timeFormat:String,type:{type:String,default:``},clearable:{type:Boolean,default:!0},clearIcon:{type:Z([String,Object]),default:Qv},editable:{type:Boolean,default:!0},saveOnBlur:{type:Boolean,default:!0},prefixIcon:{type:Z([String,Object]),default:``},size:xv,readonly:Boolean,disabled:{type:Boolean,default:void 0},placeholder:{type:String,default:``},popperOptions:{type:Z(Object),default:()=>({})},modelValue:{type:Z([Date,Array,String,Number]),default:``},rangeSeparator:{type:String,default:`-`},startPlaceholder:String,endPlaceholder:String,defaultValue:{type:Z([Date,Array])},defaultTime:{type:Z([Date,Array])},isRange:Boolean,...Uw,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,tabindex:{type:Z([String,Number]),default:0},validateEvent:{type:Boolean,default:!0},unlinkPanels:Boolean,singlePanel:Boolean,placement:{type:Z(String),values:fm,default:`bottom`},fallbackPlacements:{type:Z(Array),default:[`bottom`,`top`,`right`,`left`]},...kv,...Mv([`ariaLabel`]),showNow:{type:Boolean,default:!0},showConfirm:{type:Boolean,default:!0},showFooter:{type:Boolean,default:!0},showWeekNumber:Boolean}),Kw=Q({id:{type:Z(Array)},name:{type:Z(Array)},modelValue:{type:Z([Array,String])},startPlaceholder:String,endPlaceholder:String,disabled:Boolean}),qw=(e,t)=>{let{lang:n}=Dp(),r=q(!1),i=q(!1),a=q(null),o=K(()=>{let{modelValue:t}=e;return!t||A(t)&&!t.filter(Boolean).length}),s=r=>{if(!Rw(e.modelValue,r)){let i;A(r)?i=r.map(t=>Bw(t,e.valueFormat,n.value)):r&&(i=Bw(r,e.valueFormat,n.value)),t(br,r&&i,n.value)}},c=K(()=>{let t;if(o.value?l.value.getDefaultValue&&(t=l.value.getDefaultValue()):t=A(e.modelValue)?e.modelValue.map(t=>zw(t,e.valueFormat,n.value)):zw(e.modelValue??``,e.valueFormat,n.value),l.value.getRangeAvailableTime){let e=l.value.getRangeAvailableTime(t);sd(e,t)||(t=e,o.value||s(Hw(t)))}return A(t)&&t.some(e=>!e)&&(t=[]),t}),l=q({});return{parsedValue:c,pickerActualVisible:i,pickerOptions:l,pickerVisible:r,userInput:a,valueIsEmpty:o,emitInput:s,onCalendarChange:e=>{t(`calendar-change`,e)},onPanelChange:(e,n,r)=>{t(`panel-change`,e,n,r)},onPick:(e=``,t=!1)=>{r.value=t;let n;n=A(e)?e.map(e=>e.toDate()):e&&e.toDate(),a.value=null,s(n)},onSetPickerOption:e=>{l.value[e[0]]=e[1],l.value.panelReady=!0}}},Jw=[`id`,`name`,`placeholder`,`value`,`disabled`],Yw=[`id`,`name`,`placeholder`,`value`,`disabled`],Xw=z({name:`PickerRangeTrigger`,inheritAttrs:!1,__name:`picker-range-trigger`,props:Kw,emits:[`mouseenter`,`mouseleave`,`click`,`touchstart`,`focus`,`blur`,`startInput`,`endInput`,`startChange`,`endChange`],setup(e,{expose:t,emit:n}){let r=e,i=n,{formItem:a}=ub(),{inputId:o}=db(ve({id:K(()=>r.id?.[0])}),{formItemContext:a}),s=Zd(),c=$(`date`),l=$(`range`),u=q(),d=q(),{wrapperRef:f,isFocused:p}=wv(u,{disabled:K(()=>r.disabled)}),h=e=>{i(`click`,e)},g=e=>{i(`mouseenter`,e)},_=e=>{i(`mouseleave`,e)},v=e=>{i(`touchstart`,e)},y=e=>{i(`startInput`,e)},b=e=>{i(`endInput`,e)},x=e=>{i(`startChange`,e)},S=e=>{i(`endChange`,e)};return t({focus:()=>{u.value?.focus()},blur:()=>{u.value?.blur(),d.value?.blur()}}),(e,t)=>(N(),W(`div`,{ref_key:`wrapperRef`,ref:f,class:F([Y(c).is(`active`,Y(p)),e.$attrs.class]),style:m(e.$attrs.style),onClick:h,onMouseenter:g,onMouseleave:_,onTouchstartPassive:v},[I(e.$slots,`prefix`),B(`input`,k(Y(s),{id:Y(o),ref_key:`inputRef`,ref:u,name:e.name&&e.name[0],placeholder:e.startPlaceholder,value:e.modelValue&&e.modelValue[0],class:Y(l).b(`input`),disabled:e.disabled,onInput:y,onChange:x}),null,16,Jw),I(e.$slots,`range-separator`),B(`input`,k(Y(s),{id:e.id&&e.id[1],ref_key:`endInputRef`,ref:d,name:e.name&&e.name[1],placeholder:e.endPlaceholder,value:e.modelValue&&e.modelValue[1],class:Y(l).b(`input`),disabled:e.disabled,onInput:b,onChange:S}),null,16,Yw),I(e.$slots,`suffix`)],38))}}),Zw=z({name:`Picker`,__name:`picker`,props:Gw,emits:[br,xr,`focus`,`blur`,`clear`,`calendar-change`,`panel-change`,`visible-change`,`keydown`],setup(e,{expose:t,emit:n}){let r=e,i=n,a=y(),o=$(`date`),s=$(`input`),c=$(`range`),{formItem:u}=ub(),d=l(Dw,{}),f=Av(r,null),p=q(),h=q(),g=q(null),_=!1,v=lb(),b=qw(r,i),{parsedValue:x,pickerActualVisible:C,userInput:w,pickerVisible:E,pickerOptions:D,valueIsEmpty:O,emitInput:ee,onPick:j,onSetPickerOption:P,onCalendarChange:te,onPanelChange:ne}=b,{isFocused:re,handleFocus:ie,handleBlur:ae}=wv(h,{disabled:v,beforeFocus(){return r.readonly},afterFocus(){r.automaticDropdown&&(E.value=!0)},beforeBlur(e){return!_&&p.value?.isFocusInsideContent(e)},afterBlur(){ye.value&&!r.saveOnBlur?O.value||D.value.handleCancel?.():Ne(),E.value=!1,_=!1,r.validateEvent&&u?.validate(`blur`).catch(ge)}}),oe=q(!1),se=K(()=>[o.b(`editor`),o.bm(`editor`,r.type),s.e(`wrapper`),o.is(`disabled`,v.value),o.is(`active`,E.value),c.b(`editor`),je?c.bm(`editor`,je.value):``,a.class]),ce=K(()=>[s.e(`icon`),c.e(`close-icon`),we.value?``:c.em(`close-icon`,`hidden`)]);M(E,e=>{e?U(()=>{e&&(g.value=r.modelValue)}):(w.value=null,U(()=>{le(r.modelValue)}))});let le=(e,t)=>{(t||!Rw(e,g.value))&&(i(xr,e),t&&(g.value=e),r.validateEvent&&u?.validate(`change`).catch(ge))},ue=e=>{i(`keydown`,e)},de=K(()=>h.value?Array.from(h.value.$el.querySelectorAll(`input`)):[]),fe=(e,t,n)=>{let r=de.value;r.length&&(!n||n===`min`?(r[0].setSelectionRange(e,t),r[0].focus()):n===`max`&&(r[1].setSelectionRange(e,t),r[1].focus()))},pe=()=>{C.value=!0},me=()=>{i(`visible-change`,!0)},R=()=>{C.value=!1,E.value=!1,i(`visible-change`,!1)},he=()=>{E.value=!0},z=()=>{E.value=!1},_e=K(()=>{let e=Fe(x.value);return A(w.value)?[w.value[0]??(e&&e[0])??``,w.value[1]??(e&&e[1])??``]:w.value===null?ye.value&&O.value&&!r.saveOnBlur||!ye.value&&O.value||!E.value&&O.value?``:e?be.value||xe.value||Se.value?e.join(`, `):e:``:w.value}),ve=K(()=>r.type.includes(`time`)),ye=K(()=>r.type.startsWith(`time`)),be=K(()=>r.type===`dates`),xe=K(()=>r.type===`months`),Se=K(()=>r.type===`years`),Ce=K(()=>r.prefixIcon||(ve.value?$v:Gv)),we=K(()=>r.clearable&&!v.value&&!r.readonly&&!O.value&&(oe.value||re.value)),Te=e=>{r.readonly||v.value||(we.value&&(e?.stopPropagation(),D.value.handleClear?D.value.handleClear():ee(f.valueOnClear.value),le(f.valueOnClear.value,!0),R()),i(`clear`))},Ee=async e=>{r.readonly||v.value||(e.target?.tagName!==`INPUT`||re.value||!r.automaticDropdown)&&(E.value=!0)},De=()=>{r.readonly||v.value||!O.value&&r.clearable&&(oe.value=!0)},Oe=()=>{oe.value=!1},ke=e=>{r.readonly||v.value||(e.touches[0].target?.tagName!==`INPUT`||re.value||!r.automaticDropdown)&&(E.value=!0)},Ae=K(()=>r.type.includes(`range`)),je=cb(),W=K(()=>Y(p)?.popperRef?.contentRef),Me=jf(h,e=>{let t=Y(W),n=Of(h);t&&(e.target===t||e.composedPath().includes(t))||e.target===n||n&&e.composedPath().includes(n)||(E.value=!1)});T(()=>{Me?.()});let Ne=()=>{if(ye.value&&!r.saveOnBlur)return;let e=A(w.value)&&w.value.every(e=>e===``);if(w.value&&!e){let e=Pe(_e.value);e&&(Ie(e)&&ee(Hw(e)),w.value=null)}(w.value===``||e)&&(ee(f.valueOnClear.value),le(f.valueOnClear.value,!0),w.value=null)},Pe=e=>e?D.value.parseUserInput(e):null,Fe=e=>e?A(e)?e.map(e=>e.format(r.format)):e.format(r.format):null,Ie=e=>D.value.isValidValue(e),Le=async e=>{if(r.readonly||v.value)return;let t=Kp(e);if(ue(e),t===X.esc){E.value===!0&&(E.value=!1,e.preventDefault(),e.stopPropagation());return}if(t===X.down&&(D.value.handleFocusPicker&&(e.preventDefault(),e.stopPropagation()),E.value===!1&&(E.value=!0,await U()),D.value.handleFocusPicker)){D.value.handleFocusPicker();return}if(t===X.tab){_=!0;return}if(t===X.enter||t===X.numpadEnter){E.value?(w.value===null||w.value===``||Ie(Pe(_e.value)))&&(Ne(),E.value=!1):E.value=!0,e.preventDefault(),e.stopPropagation();return}if(w.value){e.stopPropagation();return}D.value.handleKeydownInput&&D.value.handleKeydownInput(e)},Re=e=>{w.value=e,E.value||=!0},ze=e=>{let t=e.target;w.value?w.value=[t.value,w.value[1]]:w.value=[t.value,null]},Be=e=>{let t=e.target;w.value?w.value=[w.value[0],t.value]:w.value=[null,t.value]},Ve=()=>{let e=w.value,t=Pe(e&&e[0]),n=Y(x);if(t&&t.isValid()){w.value=[Fe(t),_e.value?.[1]||null];let e=[t,n&&(n[1]||null)];Ie(e)&&(ee(Hw(e)),w.value=null)}},He=()=>{let e=Y(w),t=Pe(e&&e[1]),n=Y(x);if(t&&t.isValid()){w.value=[Y(_e)?.[0]||null,Fe(t)];let e=[n&&n[0],t];Ie(e)&&(ee(Hw(e)),w.value=null)}};return Qe(Ew,{props:r,emptyValues:f}),Qe(Ow,b),t({focus:()=>{h.value?.focus()},blur:()=>{h.value?.blur()},handleOpen:he,handleClose:z,onPick:j}),(e,t)=>(N(),H(Y(ES),k({ref_key:`refPopper`,ref:p,visible:Y(E),effect:`light`,pure:``,trigger:`click`},e.$attrs,{role:`dialog`,teleported:``,transition:`${Y(o).namespace.value}-zoom-in-top`,"popper-class":[`${Y(o).namespace.value}-picker__popper`,e.popperClass],"popper-style":e.popperStyle,"popper-options":Y(d),"fallback-placements":e.fallbackPlacements,"gpu-acceleration":!1,placement:e.placement,"stop-popper-mouse-event":!1,"hide-after":0,persistent:``,onBeforeShow:pe,onShow:me,onHide:R}),{default:V(()=>[Ae.value?(N(),H(Xw,{key:1,id:e.id,ref_key:`inputRef`,ref:h,"model-value":_e.value,name:e.name,disabled:Y(v),readonly:!e.editable||e.readonly,"start-placeholder":e.startPlaceholder,"end-placeholder":e.endPlaceholder,class:F(se.value),style:m(e.$attrs.style),"aria-label":e.ariaLabel,tabindex:e.tabindex,autocomplete:`off`,role:`combobox`,onClick:Ee,onFocus:Y(ie),onBlur:Y(ae),onStartInput:ze,onStartChange:Ve,onEndInput:Be,onEndChange:He,onMousedown:Ee,onMouseenter:De,onMouseleave:Oe,onTouchstartPassive:ke,onKeydown:Le},{prefix:V(()=>[Ce.value?(N(),H(Y(By),{key:0,class:F([Y(s).e(`icon`),Y(c).e(`icon`)])},{default:V(()=>[(N(),H(L(Ce.value)))]),_:1},8,[`class`])):G(`v-if`,!0)]),"range-separator":V(()=>[I(e.$slots,`range-separator`,{},()=>[B(`span`,{class:F(Y(c).b(`separator`))},S(e.rangeSeparator),3)])]),suffix:V(()=>[e.clearIcon?(N(),H(Y(By),{key:0,class:F(ce.value),onMousedown:kn(Y(ge),[`prevent`]),onClick:Te},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`onMousedown`])):G(`v-if`,!0)]),_:3},8,[`id`,`model-value`,`name`,`disabled`,`readonly`,`start-placeholder`,`end-placeholder`,`class`,`style`,`aria-label`,`tabindex`,`onFocus`,`onBlur`])):(N(),H(Y(zS),{key:0,id:e.id,ref_key:`inputRef`,ref:h,"container-role":`combobox`,"model-value":_e.value,name:e.name,size:Y(je),disabled:Y(v),placeholder:e.placeholder,class:F([Y(o).b(`editor`),Y(o).bm(`editor`,e.type),Y(o).is(`focus`,Y(E)),e.$attrs.class]),style:m(e.$attrs.style),readonly:!e.editable||e.readonly||be.value||xe.value||Se.value||e.type===`week`,"aria-label":e.ariaLabel,tabindex:e.tabindex,"validate-event":!1,onInput:Re,onFocus:Y(ie),onBlur:Y(ae),onKeydown:Le,onChange:Ne,onMousedown:Ee,onMouseenter:De,onMouseleave:Oe,onTouchstartPassive:ke,onClick:t[0]||=kn(()=>{},[`stop`])},{prefix:V(()=>[Ce.value?(N(),H(Y(By),{key:0,class:F(Y(s).e(`icon`)),onMousedown:kn(Ee,[`prevent`]),onTouchstartPassive:ke},{default:V(()=>[(N(),H(L(Ce.value)))]),_:1},8,[`class`])):G(`v-if`,!0)]),suffix:V(()=>[we.value&&e.clearIcon?(N(),H(Y(By),{key:0,class:F(`${Y(s).e(`icon`)} clear-icon`),onMousedown:kn(Y(ge),[`prevent`]),onClick:Te},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`onMousedown`])):G(`v-if`,!0)]),_:1},8,[`id`,`model-value`,`name`,`size`,`disabled`,`placeholder`,`class`,`style`,`readonly`,`aria-label`,`tabindex`,`onFocus`,`onBlur`]))]),content:V(()=>[I(e.$slots,`default`,{visible:Y(E),actualVisible:Y(C),parsedValue:Y(x),format:e.format,dateFormat:e.dateFormat,timeFormat:e.timeFormat,unlinkPanels:e.unlinkPanels,type:e.type,defaultValue:e.defaultValue,showNow:e.showNow,showConfirm:e.showConfirm,showFooter:e.showFooter,showWeekNumber:e.showWeekNumber,singlePanel:e.singlePanel,onPick:t[1]||=(...e)=>Y(j)&&Y(j)(...e),onSelectRange:fe,onSetPickerOption:t[2]||=(...e)=>Y(P)&&Y(P)(...e),onCalendarChange:t[3]||=(...e)=>Y(te)&&Y(te)(...e),onClear:Te,onPanelChange:t[4]||=(...e)=>Y(ne)&&Y(ne)(...e),onMousedown:t[5]||=kn(()=>{},[`stop`])})]),_:3},16,[`visible`,`transition`,`popper-class`,`popper-style`,`popper-options`,`fallback-placements`,`placement`]))}}),Qw=new Map;if(nf){let e;document.addEventListener(`mousedown`,t=>e=t),document.addEventListener(`mouseup`,t=>{if(e){for(let n of Qw.values())for(let{documentHandler:r}of n)r(t,e);e=void 0}})}function $w(e,t){let n=[];return A(t.arg)?n=t.arg:Pd(t.arg)&&n.push(t.arg),function(r,i){let a=t.instance.popperRef,o=r.target,s=i?.target,c=!t||!t.instance,l=!o||!s,u=e.contains(o)||e.contains(s),d=e===o,f=n.length&&n.some(e=>e?.contains(o))||n.length&&n.includes(s),p=a&&(a.contains(o)||a.contains(s));c||l||u||d||f||p||t.value(r,i)}}var eT={beforeMount(e,t){Qw.has(e)||Qw.set(e,[]),Qw.get(e).push({documentHandler:$w(e,t),bindingFn:t.value})},updated(e,t){Qw.has(e)||Qw.set(e,[]);let n=Qw.get(e),r=n.findIndex(e=>e.bindingFn===t.oldValue),i={documentHandler:$w(e,t),bindingFn:t.value};r>=0?n.splice(r,1,i):n.push(i)},unmounted(e){Qw.delete(e)}},tT=`_RepeatClick`,nT={beforeMount(e,t){let r=t.value,{interval:i=100,delay:a=600}=n(r)?{}:r,o,s,c=()=>n(r)?r():r.handler(),l=()=>{s&&=(clearTimeout(s),void 0),o&&=(clearInterval(o),void 0)},u=e=>{e.button===0&&(l(),c(),document.addEventListener(`mouseup`,l,{once:!0}),s=setTimeout(()=>{o=setInterval(()=>{c()},i)},a))};e[tT]={start:u,clear:l},e.addEventListener(`mousedown`,u)},unmounted(e){if(!e[tT])return;let{start:t,clear:n}=e[tT];t&&e.removeEventListener(`mousedown`,t),n&&(n(),document.removeEventListener(`mouseup`,n)),e[tT]=null}},rT=`_trap-focus-children`,iT=[],aT=e=>{if(iT.length===0)return;let t=Kp(e),n=iT[iT.length-1][rT];if(n.length>0&&t===X.tab){if(n.length===1){e.preventDefault(),document.activeElement!==n[0]&&n[0].focus();return}let t=e.shiftKey,r=e.target===n[0],i=e.target===n[n.length-1];r&&t&&(e.preventDefault(),n[n.length-1].focus()),i&&!t&&(e.preventDefault(),n[0].focus())}},oT={beforeMount(e){e[rT]=np(e),iT.push(e),iT.length<=1&&document.addEventListener(`keydown`,aT)},updated(e){U(()=>{e[rT]=np(e)})},unmounted(){iT.shift(),iT.length===0&&document.removeEventListener(`keydown`,aT)}},sT=!1,cT,lT,uT,dT,fT,pT,mT,hT,gT,_T,vT,yT,bT,xT,ST;function CT(){if(!sT){sT=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),n=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(yT=/\b(iPhone|iP[ao]d)/.exec(e),bT=/\b(iP[ao]d)/.exec(e),_T=/Android/i.exec(e),xT=/FBAN\/\w+;/i.exec(e),ST=/Mobile/i.exec(e),vT=!!/Win64/.exec(e),t){cT=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,cT&&document&&document.documentMode&&(cT=document.documentMode);var r=/(?:Trident\/(\d+.\d+))/.exec(e);pT=r?parseFloat(r[1])+4:cT,lT=t[2]?parseFloat(t[2]):NaN,uT=t[3]?parseFloat(t[3]):NaN,dT=t[4]?parseFloat(t[4]):NaN,dT?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),fT=t&&t[1]?parseFloat(t[1]):NaN):fT=NaN}else cT=lT=uT=fT=dT=NaN;if(n){if(n[1]){var i=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);mT=i?parseFloat(i[1].replace(`_`,`.`)):!0}else mT=!1;hT=!!n[2],gT=!!n[3]}else mT=hT=gT=!1}}var wT={ie:function(){return CT()||cT},ieCompatibilityMode:function(){return CT()||pT>cT},ie64:function(){return wT.ie()&&vT},firefox:function(){return CT()||lT},opera:function(){return CT()||uT},webkit:function(){return CT()||dT},safari:function(){return wT.webkit()},chrome:function(){return CT()||fT},windows:function(){return CT()||hT},osx:function(){return CT()||mT},linux:function(){return CT()||gT},iphone:function(){return CT()||yT},mobile:function(){return CT()||yT||bT||_T||ST},nativeApp:function(){return CT()||xT},android:function(){return CT()||_T},ipad:function(){return CT()||bT}},TT=wT,ET=!!(typeof window<`u`&&window.document&&window.document.createElement),DT={canUseDOM:ET,canUseWorkers:typeof Worker<`u`,canUseEventListeners:ET&&!!(window.addEventListener||window.attachEvent),canUseViewport:ET&&!!window.screen,isInWorker:!ET},OT;DT.canUseDOM&&(OT=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(``,``)!==!0);function kT(e,t){if(!DT.canUseDOM||t&&!(`addEventListener`in document))return!1;var n=`on`+e,r=n in document;if(!r){var i=document.createElement(`div`);i.setAttribute(n,`return;`),r=typeof i[n]==`function`}return!r&&OT&&e===`wheel`&&(r=document.implementation.hasFeature(`Events.wheel`,`3.0`)),r}var AT=kT,jT=10,MT=40,NT=800;function PT(e){var t=0,n=0,r=0,i=0;return`detail`in e&&(n=e.detail),`wheelDelta`in e&&(n=-e.wheelDelta/120),`wheelDeltaY`in e&&(n=-e.wheelDeltaY/120),`wheelDeltaX`in e&&(t=-e.wheelDeltaX/120),`axis`in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*jT,i=n*jT,`deltaY`in e&&(i=e.deltaY),`deltaX`in e&&(r=e.deltaX),(r||i)&&e.deltaMode&&(e.deltaMode==1?(r*=MT,i*=MT):(r*=NT,i*=NT)),r&&!t&&(t=r<1?-1:1),i&&!n&&(n=i<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:i}}PT.getEventType=function(){return TT.firefox()?`DOMMouseScroll`:AT(`wheel`)?`wheel`:`mousewheel`};var FT=PT,IT=`_Mousewheel`,LT=function(e,t){if(e&&e.addEventListener){RT(e);let n=function(e){let n=FT(e);t&&Reflect.apply(t,this,[e,n])};e[IT]={wheelHandler:n},e.addEventListener(`wheel`,n,{passive:!0})}},RT=e=>{e._Mousewheel?.wheelHandler&&(e.removeEventListener(`wheel`,e[IT].wheelHandler),e[IT]=null)},zT={beforeMount(e,t){LT(e,t.value)},unmounted(e){RT(e)},updated(e,t){t.value!==t.oldValue&<(e,t.value)}},BT=Q({...Ww,datetimeRole:String,parsedValue:{type:Z(Object)}}),VT=({getAvailableHours:e,getAvailableMinutes:t,getAvailableSeconds:n})=>{let r=(r,i,a,o)=>{let s={hour:e,minute:t,second:n},c=r;return[`hour`,`minute`,`second`].forEach(e=>{if(s[e]){let t,n=s[e];switch(e){case`minute`:t=n(c.hour(),i,o);break;case`second`:t=n(c.hour(),c.minute(),i,o);break;default:t=n(i,o);break}if(t?.length&&!t.includes(c[e]())){let n=a?0:t.length-1;c=c[e](t[n])}}}),c},i={};return{timePickerOptions:i,getAvailableTime:r,onSetOption:([e,t])=>{i[e]=t}}},HT=e=>e.map((e,t)=>e||t).filter(e=>e!==!0),UT=(e,t,n)=>({getHoursList:(t,n)=>Vw(24,e&&(()=>e?.(t,n))),getMinutesList:(e,n,r)=>Vw(60,t&&(()=>t?.(e,n,r))),getSecondsList:(e,t,r,i)=>Vw(60,n&&(()=>n?.(e,t,r,i)))}),WT=(e,t,n)=>{let{getHoursList:r,getMinutesList:i,getSecondsList:a}=UT(e,t,n);return{getAvailableHours:(e,t)=>HT(r(e,t)),getAvailableMinutes:(e,t,n)=>HT(i(e,t,n)),getAvailableSeconds:(e,t,n,r)=>HT(a(e,t,n,r))}},GT=(e,t)=>{let n=q(e.parsedValue);return M(()=>e.visible,r=>{let i=me(t.modelValue),a=me(t.valueOnClear);if(r&&i===a){n.value=a;return}r||(n.value=e.parsedValue)}),n},KT=Q({role:{type:String,required:!0},spinnerDate:{type:Z(Object),required:!0},showSeconds:{type:Boolean,default:!0},arrowControl:Boolean,amPmMode:{type:Z(String),default:``},...Uw}),qT=[`onClick`],JT=[`onMouseenter`],YT=z({__name:`basic-time-spinner`,props:KT,emits:[xr,`select-range`,`set-option`],setup(e,{emit:t}){let n=e,{isRange:i,format:a,saveOnBlur:o}=l(Ew).props,s=t,c=$(`time`),{getHoursList:u,getMinutesList:f,getSecondsList:p}=UT(n.disabledHours,n.disabledMinutes,n.disabledSeconds),m=!1,h={hours:!1,minutes:!1,seconds:!1},g=q(),_={hours:q(),minutes:q(),seconds:q()},v=K(()=>n.showSeconds?Tw:Tw.slice(0,2)),y=K(()=>{let{spinnerDate:e}=n;return{hours:e.hour(),minutes:e.minute(),seconds:e.second()}}),b=K(()=>{let{hours:e,minutes:t}=Y(y),{role:r,spinnerDate:a}=n,o=i?void 0:a;return{hours:u(r,o),minutes:f(e,r,o),seconds:p(e,t,r,o)}}),x=K(()=>{let{hours:e,minutes:t,seconds:n}=Y(y);return{hours:Nw(e,23),minutes:Nw(t,59),seconds:Nw(n,59)}}),C=Hu(e=>{m=!1,E(e)},200),w=e=>{if(!n.amPmMode)return``;let t=n.amPmMode===`A`,r=e<12?` am`:` pm`;return t&&(r=r.toUpperCase()),r},T=e=>{let t=[0,0],n=a||`HH:mm:ss`,r=n.indexOf(`HH`),i=n.indexOf(`mm`),o=n.indexOf(`ss`);switch(e){case`hours`:r!==-1&&(t=[r,r+2]);break;case`minutes`:i!==-1&&(t=[i,i+2]);break;case`seconds`:o!==-1&&(t=[o,o+2]);break}let[c,l]=t;s(`select-range`,c,l),g.value=e},E=e=>{k(e,Y(y)[e])},D=()=>{E(`hours`),E(`minutes`),E(`seconds`)},O=e=>e.querySelector(`.${c.namespace.value}-scrollbar__wrap`),k=(e,t)=>{if(n.arrowControl)return;let r=Y(_[e]);r&&r.$el&&(o||(h[e]=!0,Np(()=>{h[e]=!1})),O(r.$el).scrollTop=Math.max(0,t*A(e)))},A=e=>{let t=Y(_[e])?.$el.querySelector(`li`);return t&&Number.parseFloat(vp(t,`height`))||0},ee=()=>{P(1)},j=()=>{P(-1)},P=e=>{g.value||T(`hours`);let t=g.value,n=Y(y)[t],r=te(t,n,e,g.value===`hours`?24:60);ne(t,r),k(t,r),U(()=>T(t))},te=(e,t,n,r)=>{let i=(t+n+r)%r,a=Y(b)[e];for(;a[i]&&i!==t;)i=(i+n+r)%r;return i},ne=(e,t)=>{if(Y(b)[e][t])return;let{hours:r,minutes:i,seconds:a}=Y(y),o;switch(e){case`hours`:o=n.spinnerDate.hour(t).minute(i).second(a);break;case`minutes`:o=n.spinnerDate.hour(r).minute(t).second(a);break;case`seconds`:o=n.spinnerDate.hour(r).minute(i).second(t);break}s(xr,o)},re=(e,{value:t,disabled:n})=>{n||(ne(e,t),T(e),k(e,t))},ie=e=>{if(!o&&h[e])return;let t=Y(_[e]);t&&(m=!0,C(e),ne(e,Math.min(Math.round((O(t.$el).scrollTop-(ae(e)*.5-10)/A(e)+3)/A(e)),e===`hours`?23:59)))},ae=e=>Y(_[e]).$el.offsetHeight,I=()=>{let e=e=>{let t=Y(_[e]);t&&t.$el&&(O(t.$el).onscroll=()=>{ie(e)})};e(`hours`),e(`minutes`),e(`seconds`)};d(()=>{U(()=>{!n.arrowControl&&I(),D(),n.role===`start`&&T(`hours`)})});let oe=(e,t)=>{_[t].value=e??void 0};return s(`set-option`,[`${n.role}_scrollDown`,P]),s(`set-option`,[`${n.role}_emitSelectRange`,T]),M(()=>n.spinnerDate,()=>{m||D()}),(e,t)=>(N(),W(`div`,{class:F([Y(c).b(`spinner`),{"has-seconds":e.showSeconds}])},[e.arrowControl?G(`v-if`,!0):(N(!0),W(R,{key:0},r(v.value,t=>(N(),H(Y(tC),{key:t,ref_for:!0,ref:e=>oe(e,t),class:F(Y(c).be(`spinner`,`wrapper`)),"wrap-style":`max-height: inherit;`,"view-class":Y(c).be(`spinner`,`list`),noresize:``,tag:`ul`,onMouseenter:e=>T(t),onMousemove:e=>E(t)},{default:V(()=>[(N(!0),W(R,null,r(b.value[t],(n,r)=>(N(),W(`li`,{key:r,class:F([Y(c).be(`spinner`,`item`),Y(c).is(`active`,r===y.value[t]),Y(c).is(`disabled`,n)]),onClick:e=>re(t,{value:r,disabled:n})},[t===`hours`?(N(),W(R,{key:0},[Ke(S((`0`+(e.amPmMode?r%12||12:r)).slice(-2))+S(w(r)),1)],64)):(N(),W(R,{key:1},[Ke(S((`0`+r).slice(-2)),1)],64))],10,qT))),128))]),_:2},1032,[`class`,`view-class`,`onMouseenter`,`onMousemove`]))),128)),e.arrowControl?(N(!0),W(R,{key:1},r(v.value,t=>(N(),W(`div`,{key:t,class:F([Y(c).be(`spinner`,`wrapper`),Y(c).is(`arrow`)]),onMouseenter:e=>T(t)},[Ge((N(),H(Y(By),{class:F([`arrow-up`,Y(c).be(`spinner`,`arrow`)])},{default:V(()=>[J(Y(Uv))]),_:1},8,[`class`])),[[Y(nT),j]]),Ge((N(),H(Y(By),{class:F([`arrow-down`,Y(c).be(`spinner`,`arrow`)])},{default:V(()=>[J(Y(Bv))]),_:1},8,[`class`])),[[Y(nT),ee]]),B(`ul`,{class:F(Y(c).be(`spinner`,`list`))},[(N(!0),W(R,null,r(x.value[t],(n,r)=>(N(),W(`li`,{key:r,class:F([Y(c).be(`spinner`,`item`),Y(c).is(`active`,n===y.value[t]),Y(c).is(`disabled`,b.value[t][n])])},[Y(Md)(n)?(N(),W(R,{key:0},[t===`hours`?(N(),W(R,{key:0},[Ke(S((`0`+(e.amPmMode?n%12||12:n)).slice(-2))+S(w(n)),1)],64)):(N(),W(R,{key:1},[Ke(S((`0`+n).slice(-2)),1)],64))],64)):G(`v-if`,!0)],2))),128))],2)],42,JT))),128)):G(`v-if`,!0)],2))}}),XT=z({__name:`panel-time-pick`,props:BT,emits:[`pick`,`select-range`,`set-picker-option`],setup(e,{emit:t}){let n=e,r=t,i=l(Ew),{arrowControl:a,disabledHours:o,disabledMinutes:s,disabledSeconds:c,defaultValue:u}=i.props,{getAvailableHours:d,getAvailableMinutes:f,getAvailableSeconds:p}=WT(o,s,c),m=$(`time`),{t:h,lang:g}=Dp(),_=q([0,2]),v=GT(n,{modelValue:K(()=>i.props.modelValue),valueOnClear:K(()=>i?.emptyValues?i.emptyValues.valueOnClear.value:null)}),y=K(()=>Ad(n.actualVisible)?`${m.namespace.value}-zoom-in-top`:``),b=K(()=>n.format.includes(`ss`)),x=K(()=>n.format.includes(`A`)?`A`:n.format.includes(`a`)?`a`:``),C=e=>{let t=(0,Mw.default)(e).locale(g.value),n=M(t);return t.isSame(n)},w=()=>{let e=v.value;r(`pick`,e,!1),U(()=>{v.value=e})},T=(e=!1,t=!1)=>{t||r(`pick`,n.parsedValue,e)},E=e=>{n.visible&&r(`pick`,M(e).millisecond(0),!0)},D=(e,t)=>{r(`select-range`,e,t),_.value=[e,t]},O=e=>{let t=n.format,r=t.indexOf(`HH`),i=t.indexOf(`mm`),a=t.indexOf(`ss`),o=[],s=[];r!==-1&&(o.push(r),s.push(`hours`)),i!==-1&&(o.push(i),s.push(`minutes`)),a!==-1&&b.value&&(o.push(a),s.push(`seconds`));let c=(o.indexOf(_.value[0])+e+o.length)%o.length;A.start_emitSelectRange(s[c])},k=e=>{let t=Kp(e),{left:n,right:r,up:i,down:a}=X;if([n,r].includes(t)){O(t===n?-1:1),e.preventDefault();return}if([i,a].includes(t)){let n=t===i?-1:1;A.start_scrollDown(n),e.preventDefault();return}},{timePickerOptions:A,onSetOption:ee,getAvailableTime:j}=VT({getAvailableHours:d,getAvailableMinutes:f,getAvailableSeconds:p}),M=e=>j(e,n.datetimeRole||``,!0);return r(`set-picker-option`,[`isValidValue`,C]),r(`set-picker-option`,[`parseUserInput`,e=>e?(0,Mw.default)(e,n.format).locale(g.value):null]),r(`set-picker-option`,[`handleKeydownInput`,k]),r(`set-picker-option`,[`getRangeAvailableTime`,M]),r(`set-picker-option`,[`getDefaultValue`,()=>(0,Mw.default)(u).locale(g.value)]),r(`set-picker-option`,[`handleCancel`,w]),(e,t)=>(N(),H(pt,{name:y.value},{default:V(()=>[e.actualVisible||e.visible?(N(),W(`div`,{key:0,class:F(Y(m).b(`panel`))},[B(`div`,{class:F([Y(m).be(`panel`,`content`),{"has-seconds":b.value}])},[J(YT,{ref:`spinner`,role:e.datetimeRole||`start`,"arrow-control":Y(a),"show-seconds":b.value,"am-pm-mode":x.value,"spinner-date":e.parsedValue,"disabled-hours":Y(o),"disabled-minutes":Y(s),"disabled-seconds":Y(c),onChange:E,onSetOption:Y(ee),onSelectRange:D},null,8,[`role`,`arrow-control`,`show-seconds`,`am-pm-mode`,`spinner-date`,`disabled-hours`,`disabled-minutes`,`disabled-seconds`,`onSetOption`])],2),B(`div`,{class:F(Y(m).be(`panel`,`footer`))},[B(`button`,{type:`button`,class:F([Y(m).be(`panel`,`btn`),`cancel`]),onClick:w},S(Y(h)(`el.datepicker.cancel`)),3),B(`button`,{type:`button`,class:F([Y(m).be(`panel`,`btn`),`confirm`]),onClick:t[0]||=e=>T()},S(Y(h)(`el.datepicker.confirm`)),3)],2)],2)):G(`v-if`,!0)]),_:1},8,[`name`]))}}),ZT=Q({...Ww,parsedValue:{type:Z(Array)}}),QT=[`disabled`],$T=z({__name:`panel-time-range`,props:ZT,emits:[`pick`,`select-range`,`set-picker-option`],setup(e,{emit:t}){let n=e,r=t,i=(e,t)=>{let n=[];for(let r=e;r<=t;r++)n.push(r);return n},{t:a,lang:o}=Dp(),s=$(`time`),c=$(`picker`),u=l(Ew),{arrowControl:d,disabledHours:f,disabledMinutes:p,disabledSeconds:m,defaultValue:h}=u.props,g=K(()=>[s.be(`range-picker`,`body`),s.be(`panel`,`content`),s.is(`arrow`,d),C.value?`has-seconds`:``]),_=K(()=>[s.be(`range-picker`,`body`),s.be(`panel`,`content`),s.is(`arrow`,d),C.value?`has-seconds`:``]),v=K(()=>n.parsedValue[0]),y=K(()=>n.parsedValue[1]),b=GT(n,{modelValue:K(()=>u.props.modelValue),valueOnClear:K(()=>u?.emptyValues?u.emptyValues.valueOnClear.value:null)}),x=()=>{let e=b.value;r(`pick`,e,!1),U(()=>{b.value=e})},C=K(()=>n.format.includes(`ss`)),w=K(()=>n.format.includes(`A`)?`A`:n.format.includes(`a`)?`a`:``),T=(e=!1)=>{r(`pick`,[v.value,y.value],e)},E=e=>{k(e.millisecond(0),y.value)},D=e=>{k(v.value,e.millisecond(0))},O=e=>{let t=e.map(e=>(0,Mw.default)(e).locale(o.value)),n=oe(t);return t[0].isSame(n[0])&&t[1].isSame(n[1])},k=(e,t)=>{n.visible&&r(`pick`,[e,t],!0)},ee=K(()=>v.value>y.value),j=q([0,2]),M=(e,t)=>{r(`select-range`,e,t,`min`),j.value=[e,t]},P=K(()=>C.value?11:8),te=(e,t)=>{r(`select-range`,e,t,`max`);let n=Y(P);j.value=[e+n,t+n]},ne=e=>{let t=C.value?[0,3,6,11,14,17]:[0,3,8,11],n=[`hours`,`minutes`].concat(C.value?[`seconds`]:[]),r=(t.indexOf(j.value[0])+e+t.length)%t.length,i=t.length/2;r{let t=Kp(e),{left:n,right:r,up:i,down:a}=X;if([n,r].includes(t)){ne(t===n?-1:1),e.preventDefault();return}if([i,a].includes(t)){let n=t===i?-1:1;le[`${j.value[0]{let n=f?f(e):[],r=e===`start`,a=(t||(r?y.value:v.value)).hour();return kd(n,r?i(a+1,23):i(0,a-1))},ae=(e,t,n)=>{let r=p?p(e,t):[],a=t===`start`,o=n||(a?y.value:v.value);if(e!==o.hour())return r;let s=o.minute();return kd(r,a?i(s+1,59):i(0,s-1))},I=(e,t,n,r)=>{let a=m?m(e,t,n):[],o=n===`start`,s=r||(o?y.value:v.value),c=s.hour(),l=s.minute();if(e!==c||t!==l)return a;let u=s.second();return kd(a,o?i(u+1,59):i(0,u-1))},oe=([e,t])=>[ue(e,`start`,!0,t),ue(t,`end`,!1,e)],{getAvailableHours:L,getAvailableMinutes:se,getAvailableSeconds:ce}=WT(ie,ae,I),{timePickerOptions:le,getAvailableTime:ue,onSetOption:de}=VT({getAvailableHours:L,getAvailableMinutes:se,getAvailableSeconds:ce});return r(`set-picker-option`,[`parseUserInput`,e=>e?A(e)?e.map(e=>(0,Mw.default)(e,n.format).locale(o.value)):(0,Mw.default)(e,n.format).locale(o.value):null]),r(`set-picker-option`,[`isValidValue`,O]),r(`set-picker-option`,[`handleKeydownInput`,re]),r(`set-picker-option`,[`getDefaultValue`,()=>{if(A(h))return h.map(e=>(0,Mw.default)(e).locale(o.value));let e=(0,Mw.default)(h).locale(o.value);return[e,e.add(60,`m`)]}]),r(`set-picker-option`,[`getRangeAvailableTime`,oe]),r(`set-picker-option`,[`handleCancel`,x]),(e,t)=>e.actualVisible?(N(),W(`div`,{key:0,class:F([Y(s).b(`range-picker`),Y(c).b(`panel`)])},[B(`div`,{class:F(Y(s).be(`range-picker`,`content`))},[B(`div`,{class:F(Y(s).be(`range-picker`,`cell`))},[B(`div`,{class:F(Y(s).be(`range-picker`,`header`))},S(Y(a)(`el.datepicker.startTime`)),3),B(`div`,{class:F(g.value)},[J(YT,{ref:`minSpinner`,role:`start`,"show-seconds":C.value,"am-pm-mode":w.value,"arrow-control":Y(d),"spinner-date":v.value,"disabled-hours":ie,"disabled-minutes":ae,"disabled-seconds":I,onChange:E,onSetOption:Y(de),onSelectRange:M},null,8,[`show-seconds`,`am-pm-mode`,`arrow-control`,`spinner-date`,`onSetOption`])],2)],2),B(`div`,{class:F(Y(s).be(`range-picker`,`cell`))},[B(`div`,{class:F(Y(s).be(`range-picker`,`header`))},S(Y(a)(`el.datepicker.endTime`)),3),B(`div`,{class:F(_.value)},[J(YT,{ref:`maxSpinner`,role:`end`,"show-seconds":C.value,"am-pm-mode":w.value,"arrow-control":Y(d),"spinner-date":y.value,"disabled-hours":ie,"disabled-minutes":ae,"disabled-seconds":I,onChange:D,onSetOption:Y(de),onSelectRange:te},null,8,[`show-seconds`,`am-pm-mode`,`arrow-control`,`spinner-date`,`onSetOption`])],2)],2)],2),B(`div`,{class:F(Y(s).be(`panel`,`footer`))},[B(`button`,{type:`button`,class:F([Y(s).be(`panel`,`btn`),`cancel`]),onClick:t[0]||=e=>x()},S(Y(a)(`el.datepicker.cancel`)),3),B(`button`,{type:`button`,class:F([Y(s).be(`panel`,`btn`),`confirm`]),disabled:ee.value,onClick:t[1]||=e=>T()},S(Y(a)(`el.datepicker.confirm`)),11,QT)],2)],2)):G(`v-if`,!0)}}),eE=fe(ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_customParseFormat=r()})(e,(function(){var e={LTS:`h:mm:ss A`,LT:`h:mm A`,L:`MM/DD/YYYY`,LL:`MMMM D, YYYY`,LLL:`MMMM D, YYYY h:mm A`,LLLL:`dddd, MMMM D, YYYY h:mm A`},t=/(\[[^[]*\])|([-_:/.,()\s]+)|(A|a|Q|YYYY|YY?|ww?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d/,r=/\d\d/,i=/\d\d?/,a=/\d*[^-_:/,()\s\d]+/,o={},s=function(e){return(e=+e)+(e>68?1900:2e3)},c=function(e){return function(t){this[e]=+t}},l=[/[+-]\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)}],u=function(e){var t=o[e];return t&&(t.indexOf?t:t.s.concat(t.f))},d=function(e,t){var n,r=o.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},f={A:[a,function(e){this.afternoon=d(e,!1)}],a:[a,function(e){this.afternoon=d(e,!0)}],Q:[n,function(e){this.month=3*(e-1)+1}],S:[n,function(e){this.milliseconds=100*e}],SS:[r,function(e){this.milliseconds=10*e}],SSS:[/\d{3}/,function(e){this.milliseconds=+e}],s:[i,c(`seconds`)],ss:[i,c(`seconds`)],m:[i,c(`minutes`)],mm:[i,c(`minutes`)],H:[i,c(`hours`)],h:[i,c(`hours`)],HH:[i,c(`hours`)],hh:[i,c(`hours`)],D:[i,c(`day`)],DD:[r,c(`day`)],Do:[a,function(e){var t=o.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)}],w:[i,c(`week`)],ww:[r,c(`week`)],M:[i,c(`month`)],MM:[r,c(`month`)],MMM:[a,function(e){var t=u(`months`),n=(u(`monthsShort`)||t.map((function(e){return e.slice(0,3)}))).indexOf(e)+1;if(n<1)throw Error();this.month=n%12||n}],MMMM:[a,function(e){var t=u(`months`).indexOf(e)+1;if(t<1)throw Error();this.month=t%12||t}],Y:[/[+-]?\d+/,c(`year`)],YY:[r,function(e){this.year=s(e)}],YYYY:[/\d{4}/,c(`year`)],Z:l,ZZ:l};function p(n){for(var r=n,i=o&&o.formats,a=(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=a.length,c=0;c-1)return new Date((t===`X`?1e3:1)*e);var i=p(t)(e),a=i.year,o=i.month,s=i.day,c=i.hours,l=i.minutes,u=i.seconds,d=i.milliseconds,f=i.zone,m=i.week,h=new Date,g=s||(a||o?1:h.getDate()),_=a||h.getFullYear(),v=0;a&&!o||(v=o>0?o-1:h.getMonth());var y,b=c||0,x=l||0,S=u||0,C=d||0;return f?new Date(Date.UTC(_,v,g,b,x,S,C+60*f.offset*1e3)):n?new Date(Date.UTC(_,v,g,b,x,S,C)):(y=new Date(_,v,g,b,x,S,C),m&&(y=r(y).week(m).toDate()),y)}catch{return new Date(``)}}(t,s,r,n),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),u&&t!=this.format(s)&&(this.$d=new Date(``)),o={}}else if(s instanceof Array)for(var f=s.length,m=1;m<=f;m+=1){a[1]=s[m-1];var h=n.apply(this,a);if(h.isValid()){this.$d=h.$d,this.$L=h.$L,this.init();break}m===f&&(this.$d=new Date(``))}else i.call(this,e)}}}))}))(),1);Mw.default.extend(eE.default);var tE=Pv(z({name:`ElTimePicker`,install:null,props:{...Gw,isRange:Boolean},emits:[br],setup(e,t){let n=q(),[r,i]=e.isRange?[`timerange`,$T]:[`time`,XT],a=e=>t.emit(br,e);return Qe(Dw,e.popperOptions),t.expose({focus:()=>{n.value?.focus()},blur:()=>{n.value?.blur()},handleOpen:()=>{n.value?.handleOpen()},handleClose:()=>{n.value?.handleClose()}}),()=>J(Zw,k(e,{ref:n,type:r,format:e.format??`HH:mm:ss`,"onUpdate:modelValue":a}),{default:e=>J(i,e,null)})}})),nE=Q({type:{type:String,values:[`primary`,`success`,`info`,`warning`,`danger`],default:`primary`},closable:Boolean,disableTransitions:Boolean,hit:Boolean,color:String,size:{type:String,values:wr},effect:{type:String,values:[`dark`,`light`,`plain`],default:`light`},round:Boolean}),rE={close:e=>e instanceof MouseEvent,click:e=>e instanceof MouseEvent},iE=[`aria-label`],aE=[`aria-label`],oE=Pv(z({name:`ElTag`,__name:`tag`,props:nE,emits:rE,setup(e,{emit:t}){let n=e,r=t,i=cb(),{t:a}=Dp(),o=$(`tag`),s=K(()=>{let{type:e,hit:t,effect:r,closable:a,round:s}=n;return[o.b(),o.is(`closable`,a),o.m(e||`primary`),o.m(i.value),o.m(r),o.is(`hit`,t),o.is(`round`,s)]}),c=e=>{r(`close`,e)},l=e=>{r(`click`,e)},u=e=>{e?.component?.subTree?.component?.bum&&(e.component.subTree.component.bum=null)};return(t,n)=>e.disableTransitions?(N(),W(`span`,{key:0,class:F(s.value),style:m({backgroundColor:e.color}),onClick:l},[B(`span`,{class:F(Y(o).e(`content`))},[I(t.$slots,`default`)],2),e.closable?(N(),W(`button`,{key:0,"aria-label":Y(a)(`el.tag.close`),class:F(Y(o).e(`close`)),type:`button`,onClick:kn(c,[`stop`])},[J(Y(By),null,{default:V(()=>[J(Y(ey))]),_:1})],10,iE)):G(`v-if`,!0)],6)):(N(),H(pt,{key:1,name:`${Y(o).namespace.value}-zoom-in-center`,appear:``,onVnodeMounted:u},{default:V(()=>[B(`span`,{class:F(s.value),style:m({backgroundColor:e.color}),onClick:l},[B(`span`,{class:F(Y(o).e(`content`))},[I(t.$slots,`default`)],2),e.closable?(N(),W(`button`,{key:0,"aria-label":Y(a)(`el.tag.close`),class:F(Y(o).e(`close`)),type:`button`,onClick:kn(c,[`stop`])},[J(Y(By),null,{default:V(()=>[J(Y(ey))]),_:1})],10,aE)):G(`v-if`,!0)],6)]),_:3},8,[`name`]))}})),sE=Symbol(`ElSelectGroup`),cE=Symbol(`ElSelect`),lE={label:`label`,value:`value`,disabled:`disabled`,options:`options`};function uE(e){let t=q({...lE,...e.props}),n={...e.props};return M(()=>e.props,e=>{sd(e,n)||(t.value={...lE,...e},n={...e})},{deep:!0}),{aliasProps:t,getLabel:e=>ss(e,t.value.label),getValue:e=>ss(e,t.value.value),getDisabled:e=>ss(e,t.value.disabled),getOptions:e=>ss(e,t.value.options)}}var dE=Q({name:String,id:String,modelValue:{type:Z([Array,String,Number,Boolean,Object]),default:void 0},autocomplete:{type:String,default:`off`},automaticDropdown:Boolean,size:xv,effect:{type:Z(String),default:`light`},disabled:{type:Boolean,default:void 0},clearable:Boolean,filterable:Boolean,allowCreate:Boolean,loading:Boolean,popperClass:{type:String,default:``},popperStyle:{type:Z([String,Object])},popperOptions:{type:Z(Object),default:()=>({})},remote:Boolean,debounce:{type:Number,default:300},loadingText:String,noMatchText:String,noDataText:String,remoteMethod:{type:Z(Function)},filterMethod:{type:Z(Function)},multiple:Boolean,multipleLimit:{type:Number,default:0},placeholder:{type:String},defaultFirstOption:Boolean,reserveKeyword:{type:Boolean,default:!0},valueKey:{type:String,default:`value`},collapseTags:Boolean,collapseTagsTooltip:Boolean,tagTooltip:{type:Z(Object),default:()=>({})},maxCollapseTags:{type:Number,default:1},teleported:fS.teleported,persistent:{type:Boolean,default:!0},clearIcon:{type:Ny,default:Qv},fitInputWidth:Boolean,suffixIcon:{type:Ny,default:Bv},tagType:{...nE.type,default:`info`},tagEffect:{...nE.effect,default:`light`},validateEvent:{type:Boolean,default:!0},remoteShowSuffix:Boolean,showArrow:{type:Boolean,default:!0},offset:{type:Number,default:12},placement:{type:Z(String),values:fm,default:`bottom-start`},fallbackPlacements:{type:Z(Array),default:[`bottom-start`,`top-start`,`right`,`left`]},tabindex:{type:[String,Number],default:0},appendTo:fS.appendTo,options:{type:Z(Array)},props:{type:Z(Object),default:()=>lE},...kv,...Mv([`ariaLabel`])}),fE={[br]:e=>!0,[xr]:e=>!0,"popup-scroll":US.scroll,"end-reached":US[`end-reached`],"remove-tag":e=>!0,"visible-change":e=>!0,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0},pE=`ElOption`,mE=Q({value:{type:[String,Number,Boolean,Object],required:!0},label:{type:[String,Number]},created:Boolean,disabled:Boolean});function hE(e,t){let n=l(cE);n||qd(pE,`usage: `);let r=l(sE,{disabled:!1}),i=K(()=>d(Cs(n.props.modelValue),e.value)),a=K(()=>{if(n.props.multiple){let e=Cs(n.props.modelValue??[]);return!i.value&&e.length>=n.props.multipleLimit&&n.props.multipleLimit>0}else return!1}),o=K(()=>e.label??(E(e.value)?``:e.value)),s=K(()=>e.value||e.label||``),c=K(()=>e.disabled||t.groupDisabled||a.value),u=Xe(),d=(t=[],r)=>{if(E(e.value)){let e=n.props.valueKey;return t&&t.some(t=>Me(ss(t,e))===ss(r,e))}else return t&&t.includes(r)};return M(()=>o.value,()=>{!e.created&&!n.props.remote&&n.setSelected()}),M(()=>e.value,(t,r)=>{let{remote:i,valueKey:a}=n.props;if((i?t!==r:!sd(t,r))&&(n.onOptionDestroy(r,u.proxy),n.onOptionCreate(u.proxy)),!e.created&&!i){if(a&&E(t)&&E(r)&&t[a]===r[a])return;n.setSelected()}}),M(()=>r.disabled,()=>{t.groupDisabled=r.disabled},{immediate:!0}),{select:n,currentLabel:o,currentValue:s,itemSelected:i,isDisabled:c,hoverItem:()=>{c.value||(n.states.hoveringIndex=n.optionsArray.indexOf(u.proxy))},updateOption:n=>{t.visible=new RegExp(dp(n),`i`).test(String(o.value))||e.created}}}var gE=z({name:pE,componentName:pE,props:mE,setup(e){let t=$(`select`),n=rg(),r=K(()=>[t.be(`dropdown`,`item`),t.is(`disabled`,Y(c)),t.is(`selected`,Y(s)),t.is(`hovering`,Y(p))]),i=ve({index:-1,groupDisabled:!1,visible:!0,hover:!1}),a=uf?null:`mousemove`,{currentLabel:o,itemSelected:s,isDisabled:c,select:l,hoverItem:u,updateOption:d}=hE(e,i),{visible:f,hover:p}=Se(i),m=Xe().proxy;l.onOptionCreate(m),T(()=>{let e=m.value;U(()=>{let{selected:t}=l.states,n=t.some(e=>e.value===m.value);l.states.cachedOptions.get(e)===m&&!n&&l.states.cachedOptions.delete(e)}),l.onOptionDestroy(e,m)});function h(){c.value||l.handleOptionSelect(m)}return{ns:t,id:n,containerKls:r,currentLabel:o,itemSelected:s,isDisabled:c,select:l,visible:f,hover:p,states:i,mouseMoveEventName:a,hoverItem:u,handleMousedown:e=>{let t=e.target,n=e.currentTarget;for(;t&&t!==n;){if(rp(t))return;t=t.parentElement}e.preventDefault()},updateOption:d,selectOptionClick:h}}}),_E=[`id`,`aria-disabled`,`aria-selected`];function vE(e,t,n,r,i,a){return Ge((N(),W(`li`,k({id:e.id,class:e.containerKls,role:`option`,"aria-disabled":e.isDisabled||void 0,"aria-selected":e.itemSelected},{[ze(e.mouseMoveEventName)]:t[0]||=(...t)=>e.hoverItem&&e.hoverItem(...t)},{onMousedown:t[1]||=(...t)=>e.handleMousedown&&e.handleMousedown(...t),onClick:t[2]||=kn((...t)=>e.selectOptionClick&&e.selectOptionClick(...t),[`stop`])}),[I(e.$slots,`default`,{},()=>[B(`span`,null,S(e.currentLabel),1)])],16,_E)),[[jt,e.visible]])}var yE=$x(gE,[[`render`,vE]]),bE=z({name:`ElOptionGroup`,componentName:`ElOptionGroup`,props:{label:String,disabled:Boolean},setup(e){let t=$(`select`),n=q(),r=Xe(),i=q([]);Qe(sE,ve({...Se(e)}));let a=K(()=>i.value.some(e=>e.visible===!0)),o=e=>e.type.name===`ElOption`&&!!e.component?.proxy,c=e=>{let t=Cs(e),n=[];return t.forEach(e=>{s(e)&&(o(e)?n.push(e.component.proxy):A(e.children)&&e.children.length?n.push(...c(e.children)):e.component?.subTree&&n.push(...c(e.component.subTree)))}),n},l=()=>{i.value=c(r.subTree)};return d(()=>{l()}),Pf(n,l,{attributes:!0,subtree:!0,childList:!0}),{groupRef:n,visible:a,ns:t}}});function xE(e,t,n,r,i,a){return Ge((N(),W(`ul`,{ref:`groupRef`,class:F(e.ns.be(`group`,`wrap`))},[B(`li`,{class:F(e.ns.be(`group`,`title`))},S(e.label),3),B(`li`,null,[B(`ul`,{class:F(e.ns.b(`group`))},[I(e.$slots,`default`)],2)])],2)),[[jt,e.visible]])}var SE=$x(bE,[[`render`,xE]]),CE=z({name:`ElSelectDropdown`,componentName:`ElSelectDropdown`,setup(){let e=l(cE),t=$(`select`),n=K(()=>e.props.popperClass),r=K(()=>e.props.multiple),i=K(()=>e.props.fitInputWidth),a=q(``);function o(){let t=e.selectRef?.offsetWidth;t?a.value=`${t-2}px`:a.value=``}return d(()=>{o(),Uf(e.selectRef,o)}),{ns:t,minWidth:a,popperClass:n,isMultiple:r,isFitInputWidth:i}}});function wE(e,t,n,r,i,a){return N(),W(`div`,{class:F([e.ns.b(`dropdown`),e.ns.is(`multiple`,e.isMultiple),e.popperClass]),style:m({[e.isFitInputWidth?`width`:`minWidth`]:e.minWidth})},[e.$slots.header?(N(),W(`div`,{key:0,class:F(e.ns.be(`dropdown`,`header`))},[I(e.$slots,`header`)],2)):G(`v-if`,!0),I(e.$slots,`default`),e.$slots.footer?(N(),W(`div`,{key:1,class:F(e.ns.be(`dropdown`,`footer`))},[I(e.$slots,`footer`)],2)):G(`v-if`,!0)],6)}var TE=$x(CE,[[`render`,wE]]),EE=(t,r)=>{let{t:i}=Dp(),a=le(),o=rg(),s=$(`select`),c=$(`input`),l=ve({inputValue:``,options:new Map,cachedOptions:new Map,optionValues:[],selected:[],selectionWidth:0,collapseItemWidth:0,selectedLabel:``,hoveringIndex:-1,previousQuery:null,inputHovering:!1,menuVisibleOnFocus:!1,isBeforeHide:!1}),u=q(),f=q(),p=q(),m=q(),h=q(),g=q(),_=q(),v=q(),y=q(),b=q(),x=q(),S=q(!1),C=q(),w=q(!1),{form:T,formItem:D}=ub(),{inputId:O}=db(t,{formItemContext:D}),{valueOnClear:k,isEmptyValue:ee}=Av(t),{isComposing:N,handleCompositionStart:P,handleCompositionUpdate:te,handleCompositionEnd:ne}=Tv({afterComposition:e=>Me(e)}),re=lb(),{wrapperRef:ie,isFocused:ae,handleBlur:F}=wv(h,{disabled:re,afterFocus(){t.automaticDropdown&&!S.value&&(S.value=!0,l.menuVisibleOnFocus=!0)},beforeBlur(e){return p.value?.isFocusInsideContent(e)||m.value?.isFocusInsideContent(e)},afterBlur(){S.value=!1,l.menuVisibleOnFocus=!1,t.validateEvent&&D?.validate?.(`blur`).catch(ge)}}),I=K(()=>A(t.modelValue)?t.modelValue.length>0:!ee(t.modelValue)),oe=K(()=>T?.statusIcon??!1),L=K(()=>t.clearable&&!re.value&&I.value&&(ae.value||l.inputHovering)),se=K(()=>t.remote&&t.filterable&&!t.remoteShowSuffix?``:t.suffixIcon),ce=K(()=>s.is(`reverse`,!!(se.value&&S.value))),ue=K(()=>D?.validateState||``),de=K(()=>ue.value&&Ly[ue.value]),fe=K(()=>t.remote?t.debounce:0),pe=K(()=>t.remote&&!l.inputValue&&l.options.size===0),me=K(()=>t.loading?t.loadingText||i(`el.select.loading`):t.filterable&&l.inputValue&&l.options.size>0&&R.value===0?t.noMatchText||i(`el.select.noMatch`):l.options.size===0?t.noDataText||i(`el.select.noData`):null),R=K(()=>he.value.filter(e=>e.visible).length),he=K(()=>{let e=Array.from(l.options.values()),t=[];return l.optionValues.forEach(n=>{let r=e.findIndex(e=>e.value===n);r>-1&&t.push(e[r])}),t.length>=e.length?t:e}),z=K(()=>Array.from(l.cachedOptions.values())),_e=K(()=>{let e=he.value.filter(e=>!e.created).some(e=>e.currentLabel===l.inputValue);return t.filterable&&t.allowCreate&&l.inputValue!==``&&!e}),B=()=>{t.filterable&&n(t.filterMethod)||t.filterable&&t.remote&&n(t.remoteMethod)||he.value.forEach(e=>{e.updateOption?.(l.inputValue)})},ye=cb(),V=K(()=>[`small`].includes(ye.value)?`small`:`default`),H=K({get(){return S.value&&(t.loading||!pe.value||t.remote&&!!a.empty)&&(!w.value||!Nd(l.previousQuery)||l.options.size>0)},set(e){S.value=e}}),be=K(()=>{if(t.multiple&&!Ad(t.modelValue))return Cs(t.modelValue).length===0&&!l.inputValue;let e=A(t.modelValue)?t.modelValue[0]:t.modelValue;return t.filterable||Ad(e)?!l.inputValue:!0}),xe=K(()=>{let e=t.placeholder??i(`el.select.placeholder`);return t.multiple||!I.value?e:l.selectedLabel}),Se=uf?null:`mouseenter`;M(()=>t.modelValue,(e,n)=>{t.multiple&&t.filterable&&!t.reserveKeyword&&(l.inputValue=``,Ce(``)),Te(),!sd(e,n)&&t.validateEvent&&D?.validate(`change`).catch(ge)},{flush:`post`,deep:!0}),M(()=>S.value,e=>{e?Ce(l.inputValue):(l.inputValue=``,l.previousQuery=null,l.isBeforeHide=!0,l.menuVisibleOnFocus=!1)}),M(()=>l.options.entries(),()=>{nf&&(Te(),t.defaultFirstOption&&(t.filterable||t.remote)&&R.value&&we())},{flush:`post`}),M([()=>l.hoveringIndex,he],([e])=>{Md(e)&&e>-1?C.value=he.value[e]||{}:C.value={},he.value.forEach(e=>{e.hover=C.value===e})}),e(()=>{l.isBeforeHide||B()});let Ce=e=>{l.previousQuery===e||N.value||(l.previousQuery=e,t.filterable&&n(t.filterMethod)?t.filterMethod(e):t.filterable&&t.remote&&n(t.remoteMethod)&&t.remoteMethod(e),t.defaultFirstOption&&(t.filterable||t.remote)&&R.value?U(we):U(De))},we=()=>{let e=he.value.filter(e=>e.visible&&!e.disabled&&!e.states.groupDisabled),t=e.find(e=>e.created),n=e[0];l.hoveringIndex=ze(he.value.map(e=>e.value),t||n)},Te=()=>{if(t.multiple)l.selectedLabel=``;else{let e=Ee(A(t.modelValue)?t.modelValue[0]:t.modelValue);l.selectedLabel=e.currentLabel,l.selected=[e];return}let e=[];Ad(t.modelValue)||Cs(t.modelValue).forEach(t=>{e.push(Ee(t))}),l.selected=e},Ee=e=>{let n,r=j(e);for(let i=l.cachedOptions.size-1;i>=0;i--){let a=z.value[i];if(r?ss(a.value,t.valueKey)===ss(e,t.valueKey):a.value===e){n={index:he.value.filter(e=>!e.created).indexOf(a),value:e,currentLabel:a.currentLabel,get isDisabled(){return a.isDisabled}};break}}if(n)return n;let i=l.selected.find(n=>r?ss(n.value,t.valueKey)===ss(e,t.valueKey):n.value===e);return{index:-1,value:e,currentLabel:r?e.label:i?i.currentLabel:e??``}},De=()=>{let e=l.selected.length;if(e>0){let t=l.selected[e-1];l.hoveringIndex=he.value.findIndex(e=>J(t)===J(e))}else l.hoveringIndex=-1},Oe=()=>{l.selectionWidth=Number.parseFloat(window.getComputedStyle(f.value).width)},ke=()=>{l.collapseItemWidth=b.value.getBoundingClientRect().width},Ae=()=>{p.value?.updatePopper?.()},je=()=>{m.value?.updatePopper?.()},W=()=>{l.inputValue.length>0&&!S.value&&(S.value=!0),Ce(l.inputValue)},Me=e=>{if(l.inputValue=e.target.value,t.remote)w.value=!0,Ne();else return W()},Ne=bf(()=>{W(),w.value=!1},fe),Pe=e=>{sd(t.modelValue,e)||r(xr,e)},Fe=e=>$u(e,e=>{let t=l.cachedOptions.get(e);return!t?.disabled&&!t?.states.groupDisabled}),Ie=e=>{let n=Kp(e);if(t.multiple&&n!==X.delete&&e.target.value.length<=0){let e=Cs(t.modelValue).slice(),n=Fe(e);if(n<0)return;let i=e[n];e.splice(n,1),r(br,e),Pe(e),r(`remove-tag`,i)}},G=(e,n)=>{let i=l.selected.indexOf(n);if(i>-1&&!re.value){let e=Cs(t.modelValue).slice();e.splice(i,1),r(br,e),Pe(e),r(`remove-tag`,n.value)}e.stopPropagation(),Ge()},Le=e=>{e.stopPropagation();let n=t.multiple?[]:k.value;if(t.multiple)for(let e of l.selected)e.isDisabled&&n.push(e.value);r(br,n),Pe(n),l.hoveringIndex=-1,S.value=!1,r(`clear`),Ge()},Re=e=>{if(t.multiple){let n=Cs(t.modelValue??[]).slice(),i=ze(n,e);i>-1?n.splice(i,1):(t.multipleLimit<=0||n.length{Be(e)})},ze=(e,n)=>Ad(n)?-1:E(n.value)?e.findIndex(e=>sd(ss(e,t.valueKey),J(n))):e.indexOf(n.value),Be=e=>{let t=A(e)?e[e.length-1]:e,n=null;if(!cd(t?.value)){let e=he.value.filter(e=>e.value===t.value);e.length>0&&(n=e[0].$el)}if(p.value&&n){let e=p.value?.popperRef?.contentRef?.querySelector?.(`.${s.be(`dropdown`,`wrap`)}`);e&&zp(e,n)}x.value?.handleScroll()},Ve=e=>{l.options.set(e.value,e),l.cachedOptions.set(e.value,e)},He=(e,t)=>{l.options.get(e)===t&&l.options.delete(e)},Ue=K(()=>p.value?.popperRef?.contentRef),We=()=>{l.isBeforeHide=!1,U(()=>{x.value?.update(),Be(l.selected)})},Ge=()=>{h.value?.focus()},Ke=()=>{if(S.value){S.value=!1,U(()=>h.value?.blur());return}h.value?.blur()},qe=e=>{Le(e)},Je=e=>{if(S.value=!1,ae.value){let t=new FocusEvent(`blur`,e);U(()=>F(t))}},Ye=()=>{l.inputValue.length>0?l.inputValue=``:S.value=!1},Xe=e=>{re.value||t.filterable&&S.value&&e&&!_.value?.contains(e.target)||(uf&&(l.inputHovering=!0),l.menuVisibleOnFocus?l.menuVisibleOnFocus=!1:S.value=!S.value)},Ze=()=>{if(!S.value)Xe();else{let e=he.value[l.hoveringIndex];e&&!e.isDisabled&&Re(e)}},J=e=>E(e.value)?ss(e.value,t.valueKey):e.value,Y=K(()=>he.value.filter(e=>e.visible).every(e=>e.isDisabled)),Qe=K(()=>t.multiple?t.collapseTags?l.selected.slice(0,t.maxCollapseTags):l.selected:[]),$e=K(()=>t.multiple&&t.collapseTags?l.selected.slice(t.maxCollapseTags):[]),et=e=>{if(!S.value){S.value=!0;return}if(!(l.options.size===0||R.value===0||N.value)&&!Y.value){e===`next`?(l.hoveringIndex++,l.hoveringIndex===l.options.size&&(l.hoveringIndex=0)):e===`prev`&&(l.hoveringIndex--,l.hoveringIndex<0&&(l.hoveringIndex=l.options.size-1));let t=he.value[l.hoveringIndex];(t.isDisabled||!t.visible)&&et(e),U(()=>Be(C.value))}},tt=(e,t,n,r)=>{for(let i=t;i>=0&&i{let n=l.options.size;if(n===0)return;let r=Ts(e,0,n-1),i=he.value,a=t===`up`?-1:1,o=tt(i,r,a,n)??tt(i,r-a,-a,n);o!=null&&(l.hoveringIndex=o,U(()=>Be(C.value)))},rt=e=>{let t=Kp(e),n=!0;switch(t){case X.up:et(`prev`);break;case X.down:et(`next`);break;case X.enter:case X.numpadEnter:N.value||Ze();break;case X.esc:Ye();break;case X.backspace:n=!1,Ie(e);return;case X.home:if(!S.value)return;nt(0,`down`);break;case X.end:if(!S.value)return;nt(l.options.size-1,`up`);break;case X.pageUp:if(!S.value)return;nt(l.hoveringIndex-10,`up`);break;case X.pageDown:if(!S.value)return;nt(l.hoveringIndex+10,`down`);break;default:n=!1;break}n&&(e.preventDefault(),e.stopPropagation())},it=()=>{if(!f.value)return 0;let e=window.getComputedStyle(f.value);return Number.parseFloat(e.gap||`6px`)},at=K(()=>{let e=it(),n=t.filterable?e+11:0;return{maxWidth:`${b.value&&t.maxCollapseTags===1?l.selectionWidth-l.collapseItemWidth-e-n:l.selectionWidth-n}px`}}),ot=K(()=>({maxWidth:`${l.selectionWidth}px`})),st=e=>{r(`popup-scroll`,e)},ct=e=>{r(`end-reached`,e)};Uf(f,Oe),Uf(ie,Ae),Uf(y,je),Uf(b,ke);let lt;return M(()=>H.value,e=>{e?lt=Uf(v,Ae).stop:(lt?.(),lt=void 0),r(`visible-change`,e)}),d(()=>{Te()}),{inputId:O,contentId:o,nsSelect:s,nsInput:c,states:l,isFocused:ae,expanded:S,optionsArray:he,hoverOption:C,selectSize:ye,filteredOptionsCount:R,updateTooltip:Ae,updateTagTooltip:je,debouncedOnInputChange:Ne,onInput:Me,deletePrevTag:Ie,deleteTag:G,deleteSelected:Le,handleOptionSelect:Re,scrollToOption:Be,hasModelValue:I,shouldShowPlaceholder:be,currentPlaceholder:xe,mouseEnterEventName:Se,needStatusIcon:oe,showClearBtn:L,iconComponent:se,iconReverse:ce,validateState:ue,validateIcon:de,showNewOption:_e,updateOptions:B,collapseTagSize:V,setSelected:Te,selectDisabled:re,emptyText:me,handleCompositionStart:P,handleCompositionUpdate:te,handleCompositionEnd:ne,handleKeydown:rt,onOptionCreate:Ve,onOptionDestroy:He,handleMenuEnter:We,focus:Ge,blur:Ke,handleClearClick:qe,handleClickOutside:Je,handleEsc:Ye,toggleMenu:Xe,selectOption:Ze,getValueKey:J,navigateOptions:et,dropdownMenuVisible:H,showTagList:Qe,collapseTagList:$e,popupScroll:st,getOption:Ee,endReached:ct,tagStyle:at,collapseTagStyle:ot,popperRef:Ue,inputRef:h,tooltipRef:p,tagTooltipRef:m,prefixRef:g,suffixRef:_,selectRef:u,wrapperRef:ie,selectionRef:f,scrollbarRef:x,menuRef:v,tagMenuRef:y,collapseItemRef:b}},DE=z({name:`ElOptions`,setup(e,{slots:t}){let r=l(cE),i=[];return()=>{let e=t.default?.(),a=[];function o(e){A(e)&&e.forEach(e=>{let t=(e?.type||{})?.name;t===`ElOptionGroup`?o(!P(e.children)&&!A(e.children)&&n(e.children?.default)?e.children?.default():e.children):t===`ElOption`?a.push(e.props?.value):A(e.children)&&o(e.children)})}return e.length&&o(e[0]?.children),sd(a,i)||(i=a,r&&(r.states.optionValues=a)),e}}}),OE=`ElSelect`,kE=new WeakMap,AE=e=>(...t)=>{let n=t[0];if(!n||n.includes(`Slot "default" invoked outside of the render function`)&&t[2]?.includes(`ElTreeSelect`))return;let r=kE.get(e)?.originalWarnHandler;if(r){r(...t);return}console.warn(...t)},jE=e=>{let t=kE.get(e);return t||(t={originalWarnHandler:e.config.warnHandler,handler:AE(e),count:0},kE.set(e,t)),t},ME=z({name:OE,componentName:OE,components:{ElSelectMenu:TE,ElOption:yE,ElOptions:DE,ElOptionGroup:SE,ElTag:oE,ElScrollbar:tC,ElTooltip:ES,ElIcon:By},directives:{ClickOutside:eT},props:dE,emits:fE,setup(e,{emit:t,slots:n}){let r=Xe(),i=jE(r.appContext);i.count+=1,r.appContext.config.warnHandler=i.handler;let a=K(()=>{let{modelValue:t,multiple:n}=e,r=n?[]:void 0;return A(t)?n?t:r:n?r:t}),o=ve({...Se(e),modelValue:a}),s=EE(o,t),{calculatorRef:c,inputStyle:l}=Xf(),{getLabel:u,getValue:d,getOptions:f,getDisabled:p}=uE(e),m=e=>({label:u(e),value:d(e),disabled:p(e)}),h=e=>e.reduce((e,t)=>(e.push(t),t.children&&t.children.length>0&&e.push(...h(t.children)),e),[]),g=e=>{vv(e||[]).forEach(e=>{if(E(e)&&(e.type.name===`ElOption`||e.type.name===`ElTree`)){let t=e.type.name;if(t===`ElTree`)h(e.props?.data||[]).forEach(e=>{e.currentLabel=e.label??(E(e.value)?``:e.value),s.onOptionCreate(e)});else if(t===`ElOption`){let t={...e.props};t.currentLabel=t.label??(E(t.value)?``:t.value),s.onOptionCreate(t)}}})};M(()=>[e.persistent||s.expanded.value||!n.default?void 0:n.default?.(),a.value],()=>{e.persistent||s.expanded.value||n.default&&(s.states.options.clear(),g(n.default?.()))},{immediate:!0}),Qe(cE,ve({props:o,states:s.states,selectRef:s.selectRef,optionsArray:s.optionsArray,setSelected:s.setSelected,handleOptionSelect:s.handleOptionSelect,onOptionCreate:s.onOptionCreate,onOptionDestroy:s.onOptionDestroy}));let _=K(()=>e.multiple?s.states.selected.map(e=>e.currentLabel):s.states.selectedLabel);return T(()=>{let e=kE.get(r.appContext);e&&(--e.count,e.count<=0&&(r.appContext.config.warnHandler=e.originalWarnHandler,kE.delete(r.appContext)))}),{...s,modelValue:a,selectedLabel:_,calculatorRef:c,inputStyle:l,getLabel:u,getValue:d,getOptions:f,getDisabled:p,getOptionProps:m}}}),NE=[`id`,`value`,`name`,`disabled`,`autocomplete`,`tabindex`,`readonly`,`aria-activedescendant`,`aria-controls`,`aria-expanded`,`aria-label`],PE=[`textContent`],FE={key:1};function IE(e,t,n,i,a,o){let s=h(`el-tag`),c=h(`el-tooltip`),l=h(`el-icon`),u=h(`el-option`),d=h(`el-option-group`),f=h(`el-options`),p=h(`el-scrollbar`),g=h(`el-select-menu`),_=ae(`click-outside`);return Ge((N(),W(`div`,k({ref:`selectRef`,class:[e.nsSelect.b(),e.nsSelect.m(e.selectSize)]},{[ze(e.mouseEnterEventName)]:t[11]||=t=>e.states.inputHovering=!0},{onMouseleave:t[12]||=t=>e.states.inputHovering=!1}),[J(c,{ref:`tooltipRef`,visible:e.dropdownMenuVisible,placement:e.placement,teleported:e.teleported,"popper-class":[e.nsSelect.e(`popper`),e.popperClass],"popper-style":e.popperStyle,"popper-options":e.popperOptions,"fallback-placements":e.fallbackPlacements,effect:e.effect,pure:``,trigger:`click`,transition:`${e.nsSelect.namespace.value}-zoom-in-top`,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,persistent:e.persistent,"append-to":e.appendTo,"show-arrow":e.showArrow,offset:e.offset,onBeforeShow:e.handleMenuEnter,onHide:t[10]||=t=>e.states.isBeforeHide=!1},{default:V(()=>[B(`div`,{ref:`wrapperRef`,class:F([e.nsSelect.e(`wrapper`),e.nsSelect.is(`focused`,e.isFocused),e.nsSelect.is(`hovering`,e.states.inputHovering),e.nsSelect.is(`filterable`,e.filterable),e.nsSelect.is(`disabled`,e.selectDisabled)]),onClick:t[7]||=kn((...t)=>e.toggleMenu&&e.toggleMenu(...t),[`prevent`])},[e.$slots.prefix?(N(),W(`div`,{key:0,ref:`prefixRef`,class:F(e.nsSelect.e(`prefix`))},[I(e.$slots,`prefix`)],2)):G(`v-if`,!0),B(`div`,{ref:`selectionRef`,class:F([e.nsSelect.e(`selection`),e.nsSelect.is(`near`,e.multiple&&!e.$slots.prefix&&!!e.states.selected.length)])},[e.multiple?I(e.$slots,`tag`,{key:0,data:e.states.selected,deleteTag:e.deleteTag,selectDisabled:e.selectDisabled},()=>[(N(!0),W(R,null,r(e.showTagList,t=>(N(),W(`div`,{key:e.getValueKey(t),class:F(e.nsSelect.e(`selected-item`))},[J(s,{closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":``,style:m(e.tagStyle),onClose:n=>e.deleteTag(n,t)},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},[I(e.$slots,`label`,{index:t.index,label:t.currentLabel,value:t.value},()=>[Ke(S(t.currentLabel),1)])],2)]),_:2},1032,[`closable`,`size`,`type`,`effect`,`style`,`onClose`])],2))),128)),e.collapseTags&&e.states.selected.length>e.maxCollapseTags?(N(),H(c,{key:0,ref:`tagTooltipRef`,disabled:e.dropdownMenuVisible||!e.collapseTagsTooltip,"fallback-placements":e.tagTooltip?.fallbackPlacements??[`bottom`,`top`,`right`,`left`],effect:e.tagTooltip?.effect??e.effect,placement:e.tagTooltip?.placement??`bottom`,"popper-class":e.tagTooltip?.popperClass??e.popperClass,"popper-style":e.tagTooltip?.popperStyle??e.popperStyle,teleported:e.tagTooltip?.teleported??e.teleported,"append-to":e.tagTooltip?.appendTo??e.appendTo,"popper-options":e.tagTooltip?.popperOptions??e.popperOptions,transition:e.tagTooltip?.transition,"show-after":e.tagTooltip?.showAfter,"hide-after":e.tagTooltip?.hideAfter,"auto-close":e.tagTooltip?.autoClose,offset:e.tagTooltip?.offset},{default:V(()=>[B(`div`,{ref:`collapseItemRef`,class:F(e.nsSelect.e(`selected-item`))},[J(s,{closable:!1,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":``,style:m(e.collapseTagStyle)},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},` + `+S(e.states.selected.length-e.maxCollapseTags),3)]),_:1},8,[`size`,`type`,`effect`,`style`])],2)]),content:V(()=>[B(`div`,{ref:`tagMenuRef`,class:F(e.nsSelect.e(`selection`))},[(N(!0),W(R,null,r(e.collapseTagList,t=>(N(),W(`div`,{key:e.getValueKey(t),class:F(e.nsSelect.e(`selected-item`))},[J(s,{class:`in-tooltip`,closable:!e.selectDisabled&&!t.isDisabled,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":``,onClose:n=>e.deleteTag(n,t)},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},[I(e.$slots,`label`,{index:t.index,label:t.currentLabel,value:t.value},()=>[Ke(S(t.currentLabel),1)])],2)]),_:2},1032,[`closable`,`size`,`type`,`effect`,`onClose`])],2))),128))],2)]),_:3},8,[`disabled`,`fallback-placements`,`effect`,`placement`,`popper-class`,`popper-style`,`teleported`,`append-to`,`popper-options`,`transition`,`show-after`,`hide-after`,`auto-close`,`offset`])):G(`v-if`,!0)]):G(`v-if`,!0),B(`div`,{class:F([e.nsSelect.e(`selected-item`),e.nsSelect.e(`input-wrapper`),e.nsSelect.is(`hidden`,!e.filterable||e.selectDisabled||e.multiple&&!e.states.inputValue&&!e.isFocused)])},[B(`input`,{id:e.inputId,ref:`inputRef`,value:e.states.inputValue,type:`text`,name:e.name,class:F([e.nsSelect.e(`input`),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,autocomplete:e.autocomplete,style:m(e.inputStyle),tabindex:e.tabindex,role:`combobox`,readonly:!e.filterable,spellcheck:`false`,"aria-activedescendant":e.hoverOption?.id||``,"aria-controls":e.contentId,"aria-expanded":e.dropdownMenuVisible,"aria-label":e.ariaLabel,"aria-autocomplete":`none`,"aria-haspopup":`listbox`,onKeydown:t[0]||=(...t)=>e.handleKeydown&&e.handleKeydown(...t),onCompositionstart:t[1]||=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t),onCompositionupdate:t[2]||=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t),onCompositionend:t[3]||=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t),onInput:t[4]||=(...t)=>e.onInput&&e.onInput(...t),onChange:t[5]||=kn(()=>{},[`stop`]),onClick:t[6]||=kn((...t)=>e.toggleMenu&&e.toggleMenu(...t),[`stop`])},null,46,NE),e.filterable?(N(),W(`span`,{key:0,ref:`calculatorRef`,"aria-hidden":`true`,class:F(e.nsSelect.e(`input-calculator`)),textContent:S(e.states.inputValue)},null,10,PE)):G(`v-if`,!0)],2),e.shouldShowPlaceholder?(N(),W(`div`,{key:1,class:F([e.nsSelect.e(`selected-item`),e.nsSelect.e(`placeholder`),e.nsSelect.is(`transparent`,!e.hasModelValue||e.expanded&&!e.states.inputValue)])},[e.hasModelValue?I(e.$slots,`label`,{key:0,index:e.getOption(e.modelValue).index,label:e.currentPlaceholder,value:e.modelValue},()=>[B(`span`,null,S(e.currentPlaceholder),1)]):(N(),W(`span`,FE,S(e.currentPlaceholder),1))],2)):G(`v-if`,!0)],2),B(`div`,{ref:`suffixRef`,class:F(e.nsSelect.e(`suffix`))},[e.iconComponent&&!e.showClearBtn?(N(),H(l,{key:0,class:F([e.nsSelect.e(`caret`),e.nsSelect.e(`icon`),e.iconReverse])},{default:V(()=>[(N(),H(L(e.iconComponent)))]),_:1},8,[`class`])):G(`v-if`,!0),e.showClearBtn&&e.clearIcon?(N(),H(l,{key:1,class:F([e.nsSelect.e(`caret`),e.nsSelect.e(`icon`),e.nsSelect.e(`clear`)]),onClick:e.handleClearClick},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`onClick`])):G(`v-if`,!0),e.validateState&&e.validateIcon&&e.needStatusIcon?(N(),H(l,{key:2,class:F([e.nsInput.e(`icon`),e.nsInput.e(`validateIcon`),e.nsInput.is(`loading`,e.validateState===`validating`)])},{default:V(()=>[(N(),H(L(e.validateIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)],2)]),content:V(()=>[J(g,{ref:`menuRef`},{default:V(()=>[e.$slots.header?(N(),W(`div`,{key:0,class:F(e.nsSelect.be(`dropdown`,`header`)),onClick:t[8]||=kn(()=>{},[`stop`])},[I(e.$slots,`header`)],2)):G(`v-if`,!0),Ge(J(p,{id:e.contentId,ref:`scrollbarRef`,tag:`ul`,"wrap-class":e.nsSelect.be(`dropdown`,`wrap`),"view-class":e.nsSelect.be(`dropdown`,`list`),class:F([e.nsSelect.is(`empty`,e.filteredOptionsCount===0)]),role:`listbox`,"aria-label":e.ariaLabel,"aria-orientation":`vertical`,onScroll:e.popupScroll,onEndReached:e.endReached},{default:V(()=>[e.showNewOption?(N(),H(u,{key:0,value:e.states.inputValue,created:!0},null,8,[`value`])):G(`v-if`,!0),J(f,null,{default:V(()=>[I(e.$slots,`default`,{},()=>[(N(!0),W(R,null,r(e.options,(t,n)=>(N(),W(R,{key:n},[e.getOptions(t)?.length?(N(),H(d,{key:0,label:e.getLabel(t),disabled:e.getDisabled(t)},{default:V(()=>[(N(!0),W(R,null,r(e.getOptions(t),t=>(N(),H(u,k({key:e.getValue(t)},{ref_for:!0},e.getOptionProps(t)),null,16))),128))]),_:2},1032,[`label`,`disabled`])):(N(),H(u,k({key:1,ref_for:!0},e.getOptionProps(t)),null,16))],64))),128))])]),_:3})]),_:3},8,[`id`,`wrap-class`,`view-class`,`class`,`aria-label`,`onScroll`,`onEndReached`]),[[jt,e.states.options.size>0&&!e.loading]]),e.$slots.loading&&e.loading?(N(),W(`div`,{key:1,class:F(e.nsSelect.be(`dropdown`,`loading`))},[I(e.$slots,`loading`)],2)):e.loading||e.filteredOptionsCount===0?(N(),W(`div`,{key:2,class:F(e.nsSelect.be(`dropdown`,`empty`))},[I(e.$slots,`empty`,{},()=>[B(`span`,null,S(e.emptyText),1)])],2)):G(`v-if`,!0),e.$slots.footer?(N(),W(`div`,{key:3,class:F(e.nsSelect.be(`dropdown`,`footer`)),onClick:t[9]||=kn(()=>{},[`stop`])},[I(e.$slots,`footer`)],2)):G(`v-if`,!0)]),_:3},512)]),_:3},8,[`visible`,`placement`,`teleported`,`popper-class`,`popper-style`,`popper-options`,`fallback-placements`,`effect`,`transition`,`persistent`,`append-to`,`show-arrow`,`offset`,`onBeforeShow`])],16)),[[_,e.handleClickOutside,e.popperRef]])}var LE=Pv($x(ME,[[`render`,IE]]),{Option:yE,OptionGroup:SE}),RE=Lv(yE),zE=Lv(SE),BE=(e,t)=>{let n=e.subtract(1,`month`).endOf(`month`).date();return Pw(t).map((e,r)=>n-(t-r-1))},VE=e=>Pw(e.daysInMonth()).map((e,t)=>t+1),HE=e=>Pw(e.length/7).map(t=>{let n=t*7;return e.slice(n,n+7)}),UE=Q({selectedDay:{type:Z(Object)},range:{type:Z(Array)},date:{type:Z(Object),required:!0},hideHeader:{type:Boolean}}),WE={pick:e=>E(e)},GE=fe(ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_localeData=r()})(e,(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)}}}))}))(),1),KE=(e,t)=>{Mw.default.extend(GE.default);let n=Mw.default.localeData().firstDayOfWeek(),{t:r,lang:i}=Dp(),a=(0,Mw.default)().locale(i.value),o=K(()=>!!e.range&&!!e.range.length),s=K(()=>{let t=[];if(o.value){let[n,r]=e.range,i=Pw(r.date()-n.date()+1).map(e=>({text:n.date()+e,type:`current`})),a=i.length%7;a=a===0?0:7-a;let o=Pw(a).map((e,t)=>({text:t+1,type:`next`}));t=i.concat(o)}else{let r=e.date.startOf(`month`).day(),i=BE(e.date,(r-n+7)%7).map(e=>({text:e,type:`prev`})),a=VE(e.date).map(e=>({text:e,type:`current`}));t=[...i,...a];let o=Pw(7-(t.length%7||7)).map((e,t)=>({text:t+1,type:`next`}));t=t.concat(o)}return HE(t)}),c=K(()=>{let e=n;return e===0?yr.map(e=>r(`el.datepicker.weeks.${e}`)):yr.slice(e).concat(yr.slice(0,e)).map(e=>r(`el.datepicker.weeks.${e}`))}),l=(t,n)=>{switch(n){case`prev`:return e.date.startOf(`month`).subtract(1,`month`).date(t);case`next`:return e.date.startOf(`month`).add(1,`month`).date(t);case`current`:return e.date.date(t)}};return{now:a,isInRange:o,rows:s,weekDays:c,getFormattedDate:l,handlePickDay:({text:e,type:n})=>{t(`pick`,l(e,n))},getSlotData:({text:t,type:n})=>{let r=l(t,n);return{isSelected:r.isSame(e.selectedDay),type:`${n}-month`,day:r.format(Aw),date:r.toDate()}}}},qE={key:0},JE=[`onClick`],YE=z({name:`DateTable`,__name:`date-table`,props:UE,emits:WE,setup(e,{expose:t,emit:n}){let i=e,{isInRange:a,now:o,rows:s,weekDays:c,getFormattedDate:l,handlePickDay:u,getSlotData:d}=KE(i,n),f=$(`calendar-table`),p=$(`calendar-day`),m=({text:e,type:t})=>{let n=[t];if(t===`current`){let r=l(e,t);r.isSame(i.selectedDay,`day`)&&n.push(p.is(`selected`)),r.isSame(o,`day`)&&n.push(p.is(`today`))}return n};return t({getFormattedDate:l}),(t,n)=>(N(),W(`table`,{class:F([Y(f).b(),Y(f).is(`range`,Y(a))]),cellspacing:`0`,cellpadding:`0`},[e.hideHeader?G(`v-if`,!0):(N(),W(`thead`,qE,[B(`tr`,null,[(N(!0),W(R,null,r(Y(c),e=>(N(),W(`th`,{key:e,scope:`col`},S(e),1))),128))])])),B(`tbody`,null,[(N(!0),W(R,null,r(Y(s),(n,i)=>(N(),W(`tr`,{key:i,class:F({[Y(f).e(`row`)]:!0,[Y(f).em(`row`,`hide-border`)]:i===0&&e.hideHeader})},[(N(!0),W(R,null,r(n,(e,n)=>(N(),W(`td`,{key:n,class:F(m(e)),onClick:t=>Y(u)(e)},[B(`div`,{class:F(Y(p).b())},[I(t.$slots,`date-cell`,{data:Y(d)(e)},()=>[B(`span`,null,S(e.text),1)])],2)],10,JE))),128))],2))),128))])],2))}}),XE=(e,t)=>{let n=e.endOf(`month`),r=t.startOf(`month`),i=n.isSame(r,`week`)?r.add(1,`week`):r;return[[e,n],[i.startOf(`week`),t]]},ZE=(e,t)=>{let n=e.endOf(`month`),r=e.add(1,`month`).startOf(`month`),i=n.isSame(r,`week`)?r.add(1,`week`):r,a=i.endOf(`month`),o=t.startOf(`month`),s=a.isSame(o,`week`)?o.add(1,`week`):o;return[[e,n],[i.startOf(`week`),a],[s.startOf(`week`),t]]},QE=(e,t,n)=>{let{lang:r}=Dp(),i=q(),a=(0,Mw.default)().locale(r.value),o=K({get(){return e.modelValue?c.value:i.value},set(e){if(!e)return;i.value=e;let n=e.toDate();t(Sr,n),t(br,n)}}),s=K(()=>{if(!e.range||!A(e.range)||e.range.length!==2||e.range.some(e=>!ke(e)))return[];let[t,i]=e.range.map(e=>(0,Mw.default)(e).locale(r.value));return t.isAfter(i)?(Jd(n,`end time should be greater than start time`),[]):t.isSame(i,`month`)||t.add(1,`month`).isSame(i,`month`)?p(t,i):(Jd(n,`start time and end time interval must not exceed two months`),[])}),c=K(()=>e.modelValue?(0,Mw.default)(e.modelValue).locale(r.value):o.value||(s.value.length?s.value[0][0]:a)),l=K(()=>c.value.subtract(1,`month`).date(1)),u=K(()=>c.value.add(1,`month`).date(1)),d=K(()=>c.value.subtract(1,`year`).date(1)),f=K(()=>c.value.add(1,`year`).date(1)),p=(e,t)=>{let r=e.startOf(`week`),i=t.endOf(`week`),a=r.get(`month`),o=i.get(`month`);return a===o?[[r,i]]:(a+1)%12===o?XE(r,i):a+2===o||(a+1)%11===o?ZE(r,i):(Jd(n,`start time and end time interval must not exceed two months`),[])},m=e=>{o.value=e},h=e=>{let t={"prev-month":l.value,"next-month":u.value,"prev-year":d.value,"next-year":f.value,today:a}[e];t.isSame(c.value,`day`)||m(t)};return{calculateValidatedDateRange:p,date:c,realSelectedDay:o,pickDay:m,selectDate:h,validatedRange:s,handleDateChange:e=>{e===`today`?h(`today`):m(e)}}},$E=z({name:`SelectController`,__name:`select-controller`,props:Q({date:{type:Z(Object),required:!0},formatter:{type:Z(Function)}}),emits:{"date-change":e=>E(e)||P(e)},setup(e,{emit:t}){let r=e,i=t,a=$(`calendar-select`),{t:o,lang:s}=Dp(),c=Array.from({length:12},(e,t)=>{let i=t+1;return{value:i,label:n(r.formatter)?r.formatter(i,`month`):i}}),l=K(()=>r.date.year()),u=K(()=>r.date.month()+1),d=K(()=>{let e=[];for(let t=-10;t<10;t++){let i=l.value+t;if(i>0){let t=n(r.formatter)?r.formatter(i,`year`):i;e.push({value:i,label:t})}}return e}),f=e=>{i(`date-change`,(0,Mw.default)(new Date(e,u.value-1,1)).locale(s.value))},p=e=>{i(`date-change`,(0,Mw.default)(new Date(l.value,e-1,1)).locale(s.value))},m=()=>{i(`date-change`,`today`)};return(e,t)=>(N(),W(R,null,[J(Y(LE),{"model-value":l.value,size:`small`,class:F(Y(a).e(`year`)),"validate-event":!1,options:d.value,onChange:f},null,8,[`model-value`,`class`,`options`]),J(Y(LE),{"model-value":u.value,size:`small`,class:F(Y(a).e(`month`)),"validate-event":!1,options:Y(c),onChange:p},null,8,[`model-value`,`class`,`options`]),J(Y(xw),{size:`small`,onClick:m},{default:V(()=>[Ke(S(Y(o)(`el.datepicker.today`)),1)]),_:1})],64))}}),eD=`ElCalendar`,tD=Pv(z({name:eD,__name:`calendar`,props:Cw,emits:ww,setup(e,{expose:t,emit:n}){let i=$(`calendar`),{calculateValidatedDateRange:o,date:s,pickDay:c,realSelectedDay:l,selectDate:u,validatedRange:d,handleDateChange:f}=QE(e,n,eD),{t:p}=Dp(),m=K(()=>{let e=`el.datepicker.month${s.value.format(`M`)}`;return`${s.value.year()} ${p(`el.datepicker.year`)} ${p(e)}`});return t({selectedDay:l,pickDay:c,selectDate:u,calculateValidatedDateRange:o}),(t,n)=>(N(),W(`div`,{class:F(Y(i).b())},[B(`div`,{class:F(Y(i).e(`header`))},[I(t.$slots,`header`,{date:m.value},()=>[B(`div`,{class:F(Y(i).e(`title`))},S(m.value),3),Y(d).length===0&&e.controllerType===`button`?(N(),W(`div`,{key:0,class:F(Y(i).e(`button-group`))},[J(Y(Sw),null,{default:V(()=>[J(Y(xw),{size:`small`,onClick:n[0]||=e=>Y(u)(`prev-month`)},{default:V(()=>[Ke(S(Y(p)(`el.datepicker.prevMonth`)),1)]),_:1}),J(Y(xw),{size:`small`,onClick:n[1]||=e=>Y(u)(`today`)},{default:V(()=>[Ke(S(Y(p)(`el.datepicker.today`)),1)]),_:1}),J(Y(xw),{size:`small`,onClick:n[2]||=e=>Y(u)(`next-month`)},{default:V(()=>[Ke(S(Y(p)(`el.datepicker.nextMonth`)),1)]),_:1})]),_:1})],2)):Y(d).length===0&&e.controllerType===`select`?(N(),W(`div`,{key:1,class:F(Y(i).e(`select-controller`))},[J($E,{date:Y(s),formatter:e.formatter,onDateChange:Y(f)},null,8,[`date`,`formatter`,`onDateChange`])],2)):G(`v-if`,!0)])],2),Y(d).length===0?(N(),W(`div`,{key:0,class:F(Y(i).e(`body`))},[J(YE,{date:Y(s),"selected-day":Y(l),onPick:Y(c)},xe({_:2},[t.$slots[`date-cell`]?{name:`date-cell`,fn:V(e=>[I(t.$slots,`date-cell`,se(a(e)))]),key:`0`}:void 0]),1032,[`date`,`selected-day`,`onPick`])],2)):(N(),W(`div`,{key:1,class:F(Y(i).e(`body`))},[(N(!0),W(R,null,r(Y(d),(e,n)=>(N(),H(YE,{key:n,date:e[0],"selected-day":Y(l),range:e,"hide-header":n!==0,onPick:Y(c)},xe({_:2},[t.$slots[`date-cell`]?{name:`date-cell`,fn:V(e=>[I(t.$slots,`date-cell`,k({ref_for:!0},e))]),key:`0`}:void 0]),1032,[`date`,`selected-day`,`range`,`hide-header`,`onPick`]))),128))],2))],2))}})),nD=Pv(z({name:`ElCard`,__name:`card`,props:Q({header:{type:String,default:``},footer:{type:String,default:``},bodyStyle:{type:Z([String,Object,Array,Boolean]),default:``},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:[`always`,`hover`,`never`],default:void 0}}),setup(e){let t=FC(`card`),n=$(`card`);return(r,i)=>(N(),W(`div`,{class:F([Y(n).b(),Y(n).is(`${e.shadow||Y(t)?.shadow||`always`}-shadow`)])},[r.$slots.header||e.header?(N(),W(`div`,{key:0,class:F([Y(n).e(`header`),e.headerClass])},[I(r.$slots,`header`,{},()=>[Ke(S(e.header),1)])],2)):G(`v-if`,!0),B(`div`,{class:F([Y(n).e(`body`),e.bodyClass]),style:m(e.bodyStyle)},[I(r.$slots,`default`)],6),r.$slots.footer||e.footer?(N(),W(`div`,{key:1,class:F([Y(n).e(`footer`),e.footerClass])},[I(r.$slots,`footer`,{},()=>[Ke(S(e.footer),1)])],2)):G(`v-if`,!0)],2))}})),rD=Q({initialIndex:{type:Number,default:0},height:{type:String,default:``},trigger:{type:String,values:[`hover`,`click`],default:`hover`},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,values:[``,`none`,`outside`],default:``},arrow:{type:String,values:[`always`,`hover`,`never`],default:`hover`},type:{type:String,values:[``,`card`],default:``},cardScale:{type:Number,default:.83},loop:{type:Boolean,default:!0},direction:{type:String,values:[`horizontal`,`vertical`],default:`horizontal`},pauseOnHover:{type:Boolean,default:!0},motionBlur:Boolean}),iD={change:(e,t)=>[e,t].every(Md)},aD=Symbol(`carouselContextKey`),oD=`ElCarouselItem`,sD=Q({name:{type:String,default:``},label:{type:[String,Number],default:``}}),cD=300,lD=(e,t,n)=>{let{children:r,addChild:i,removeChild:a,ChildrenSorter:o}=bv(Xe(),oD),c=le(),l=q(-1),u=q(null),f=q(!1),p=q(),m=q(0),h=q(!0),g=K(()=>e.arrow!==`never`&&!Y(y)),_=K(()=>r.value.some(e=>e.props.label.toString().length>0)),v=K(()=>e.type===`card`),y=K(()=>e.direction===`vertical`),b=K(()=>e.height===`auto`?{height:`${m.value}px`,overflow:`hidden`}:{height:e.height}),x=Td(e=>{O(e)},cD,{trailing:!0}),S=Td(e=>{re(e)},cD),C=e=>h.value?l.value<=1?e<=1:e>1:!0;function w(){u.value&&=(clearInterval(u.value),null)}function E(){e.interval<=0||!e.autoplay||u.value||(u.value=setInterval(()=>D(),e.interval))}let D=()=>{l.valuee.props.name===t);e.length>0&&(t=r.value.indexOf(e[0]))}if(t=Number(t),Number.isNaN(t)||t!==Math.floor(t)){Jd(n,`index must be integer.`);return}let i=r.value.length,a=l.value;t<0?l.value=e.loop?i-1:0:t>=i?l.value=e.loop?0:i-1:l.value=t,a===l.value&&k(a),F()}function k(e){r.value.forEach((t,n)=>{t.translateItem(n,l.value,e)})}function A(e,t){let n=Y(r),i=n.length;if(i===0||!e.states.inStage)return!1;let a=t+1,o=t-1,s=i-1,c=n[s].states.active,l=n[0].states.active,u=n[a]?.states?.active,d=n[o]?.states?.active;return t===s&&l||u?`left`:t===0&&c||d?`right`:!1}function ee(){f.value=!0,e.pauseOnHover&&w()}function j(){f.value=!1,E()}function N(e){Y(y)||r.value.forEach((t,n)=>{e===A(t,n)&&(t.states.hover=!0)})}function te(){Y(y)||r.value.forEach(e=>{e.states.hover=!1})}function ne(e){l.value=e}function re(t){e.trigger===`hover`&&t!==l.value&&(l.value=t)}function ie(){O(l.value-1)}function ae(){O(l.value+1)}function F(){w(),(!e.pauseOnHover||!f.value)&&E()}function I(t){e.height===`auto`&&(m.value=t)}function oe(){let t=c.default?.();if(!t)return null;let n=vv(t).filter(e=>s(e)&&e.type.name===`ElCarouselItem`);return n?.length===2&&e.loop&&!v.value?(h.value=!0,n):(h.value=!1,null)}M(()=>l.value,(e,n)=>{k(n),h.value&&(e%=2,n%=2),n>-1&&t(xr,e,n)});let L=K({get:()=>h.value?l.value%2:l.value,set:e=>l.value=e});M(()=>e.autoplay,e=>{e?E():w()}),M(()=>e.loop,()=>{O(l.value)}),M(()=>e.interval,()=>{F()});let se=Le();return d(()=>{M(()=>r.value,()=>{r.value.length>0&&O(e.initialIndex)},{immediate:!0}),se.value=Uf(p.value,()=>{k()}),E()}),T(()=>{w(),p.value&&se.value&&se.value.stop()}),Qe(aD,{root:p,isCardType:v,isVertical:y,items:r,loop:e.loop,cardScale:e.cardScale,addItem:i,removeItem:a,setActiveItem:O,setContainerHeight:I}),{root:p,activeIndex:l,exposeActiveIndex:L,arrowDisplay:g,hasLabel:_,hover:f,isCardType:v,items:r,isVertical:y,containerStyle:b,isItemsTwoLength:h,handleButtonEnter:N,handleButtonLeave:te,handleIndicatorClick:ne,handleMouseEnter:ee,handleMouseLeave:j,setActiveItem:O,prev:ie,next:ae,PlaceholderItem:oe,isTwoLengthShow:C,ItemsSorter:o,throttledArrowClick:x,throttledIndicatorHover:S}},uD=[`aria-label`],dD=[`aria-label`],fD=[`onMouseenter`,`onClick`],pD=[`aria-label`],mD={key:0},hD={key:2,xmlns:`http://www.w3.org/2000/svg`,version:`1.1`,style:{display:`none`}},gD=`ElCarousel`,_D=z({name:gD,__name:`carousel`,props:rD,emits:iD,setup(e,{expose:t,emit:n}){let i=e,{root:a,activeIndex:o,exposeActiveIndex:s,arrowDisplay:c,hasLabel:l,hover:u,isCardType:d,items:f,isVertical:p,containerStyle:h,handleButtonEnter:g,handleButtonLeave:_,handleIndicatorClick:v,handleMouseEnter:y,handleMouseLeave:b,setActiveItem:x,prev:C,next:w,PlaceholderItem:T,isTwoLengthShow:E,ItemsSorter:D,throttledArrowClick:O,throttledIndicatorHover:k}=lD(i,n,gD),A=$(`carousel`),{t:ee}=Dp(),j=K(()=>{let e=[A.b(),A.m(i.direction)];return Y(d)&&e.push(A.m(`card`)),e.push(A.is(`vertical-outside`,Y(p)&&i.indicatorPosition===`outside`)),e}),M=K(()=>{let e=[A.e(`indicators`),A.em(`indicators`,i.direction)];return Y(l)&&e.push(A.em(`indicators`,`labels`)),i.indicatorPosition===`outside`&&e.push(A.em(`indicators`,`outside`)),Y(p)&&e.push(A.em(`indicators`,`right`)),e});function P(e){if(!i.motionBlur)return;let t=Y(p)?`${A.namespace.value}-transitioning-vertical`:`${A.namespace.value}-transitioning`;e.currentTarget.classList.add(t)}function te(e){if(!i.motionBlur)return;let t=Y(p)?`${A.namespace.value}-transitioning-vertical`:`${A.namespace.value}-transitioning`;e.currentTarget.classList.remove(t)}return t({activeIndex:s,setActiveItem:x,prev:C,next:w}),(t,n)=>(N(),W(`div`,{ref_key:`root`,ref:a,class:F(j.value),onMouseenter:n[6]||=kn((...e)=>Y(y)&&Y(y)(...e),[`stop`]),onMouseleave:n[7]||=kn((...e)=>Y(b)&&Y(b)(...e),[`stop`])},[Y(c)?(N(),H(pt,{key:0,name:`carousel-arrow-left`,persisted:``},{default:V(()=>[Ge(B(`button`,{type:`button`,class:F([Y(A).e(`arrow`),Y(A).em(`arrow`,`left`)]),"aria-label":Y(ee)(`el.carousel.leftArrow`),onMouseenter:n[0]||=e=>Y(g)(`left`),onMouseleave:n[1]||=(...e)=>Y(_)&&Y(_)(...e),onClick:n[2]||=kn(e=>Y(O)(Y(o)-1),[`stop`])},[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1})],42,uD),[[jt,(e.arrow===`always`||Y(u))&&(e.loop||Y(o)>0)]])]),_:1})):G(`v-if`,!0),Y(c)?(N(),H(pt,{key:1,name:`carousel-arrow-right`,persisted:``},{default:V(()=>[Ge(B(`button`,{type:`button`,class:F([Y(A).e(`arrow`),Y(A).em(`arrow`,`right`)]),"aria-label":Y(ee)(`el.carousel.rightArrow`),onMouseenter:n[3]||=e=>Y(g)(`right`),onMouseleave:n[4]||=(...e)=>Y(_)&&Y(_)(...e),onClick:n[5]||=kn(e=>Y(O)(Y(o)+1),[`stop`])},[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})],42,dD),[[jt,(e.arrow===`always`||Y(u))&&(e.loop||Y(o)[e.indicatorPosition===`none`?G(`v-if`,!0):(N(),W(`ul`,{key:0,class:F(M.value)},[(N(!0),W(R,null,r(Y(f),(t,n)=>Ge((N(),W(`li`,{key:n,class:F([Y(A).e(`indicator`),Y(A).em(`indicator`,e.direction),Y(A).is(`active`,n===Y(o))]),onMouseenter:e=>Y(k)(n),onClick:kn(e=>Y(v)(n),[`stop`])},[B(`button`,{class:F(Y(A).e(`button`)),"aria-label":Y(ee)(`el.carousel.indicator`,{index:n+1})},[Y(l)?(N(),W(`span`,mD,S(t.props.label),1)):G(`v-if`,!0)],10,pD)],42,fD)),[[jt,Y(E)(n)]])),128))],2))]),_:1}),e.motionBlur?(N(),W(`svg`,hD,[...n[8]||=[B(`defs`,null,[B(`filter`,{id:`elCarouselHorizontal`},[B(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:`12,0`})]),B(`filter`,{id:`elCarouselVertical`},[B(`feGaussianBlur`,{in:`SourceGraphic`,stdDeviation:`0,10`})])],-1)]])):G(`v-if`,!0)],34))}}),vD=e=>{let t=l(aD),n=Xe();t||Jd(oD,`usage: `),n||Jd(oD,`compositional hook can only be invoked inside setups`);let r=q(),i=q(!1),a=q(0),o=q(1),s=q(!1),c=q(!1),u=q(!1),d=q(!1),{isCardType:f,isVertical:p,cardScale:m}=t;function h(e,t,n){let r=n-1,i=t-1,a=t+1,o=n/2;return t===0&&e===r?-1:t===r&&e===0?n:e=o?n+1:e>a&&e-t>=o?-2:e}function g(e,n){let r=Y(p)?t.root.value?.offsetHeight||0:t.root.value?.offsetWidth||0;return u.value?r*((2-m)*(e-n)+1)/4:e{let l=Y(f),v=t.items.value.length??NaN,y=e===n;!l&&!Ad(i)&&(d.value=y||e===i),!y&&v>2&&t.loop&&(e=h(e,n,v));let b=Y(p);s.value=y,l?(u.value=Math.round(Math.abs(e-n))<=1,a.value=g(e,n),o.value=Y(s)?1:m):a.value=_(e,n,b),c.value=!0,y&&r.value&&t.setContainerHeight(r.value.offsetHeight)};function y(){if(t&&Y(f)){let e=t.items.value.findIndex(({uid:e})=>e===n.uid);t.setActiveItem(e)}}let b={props:e,states:ve({hover:i,translate:a,scale:o,active:s,ready:c,inStage:u,animating:d}),uid:n.uid,getVnode:()=>n.vnode,translateItem:v};return t.addItem(b),T(()=>{t.removeItem(b)}),{carouselItemRef:r,active:s,animating:d,hover:i,inStage:u,isVertical:p,translate:a,isCardType:f,scale:o,ready:c,handleItemClick:y}},yD=z({name:oD,__name:`carousel-item`,props:sD,setup(e){let t=e,n=$(`carousel`),{carouselItemRef:r,active:i,animating:a,hover:o,inStage:s,isVertical:c,translate:l,isCardType:u,scale:d,ready:f,handleItemClick:p}=vD(t),h=K(()=>[n.e(`item`),n.is(`active`,i.value),n.is(`in-stage`,s.value),n.is(`hover`,o.value),n.is(`animating`,a.value),{[n.em(`item`,`card`)]:u.value,[n.em(`item`,`card-vertical`)]:u.value&&c.value}]),g=K(()=>({transform:[`${`translate${Y(c)?`Y`:`X`}`}(${Y(l)}px)`,`scale(${Y(d)})`].join(` `)}));return(e,t)=>Ge((N(),W(`div`,{ref_key:`carouselItemRef`,ref:r,class:F(h.value),style:m(g.value),onClick:t[0]||=(...e)=>Y(p)&&Y(p)(...e)},[Y(u)?Ge((N(),W(`div`,{key:0,class:F(Y(n).e(`mask`))},null,2)),[[jt,!Y(i)]]):G(`v-if`,!0),I(e.$slots,`default`)],6)),[[jt,Y(f)]])}}),bD=Pv(_D,{CarouselItem:yD}),xD=Lv(yD),SD=Q({modelValue:{type:Z([Number,String,Array,Object])},options:{type:Z(Array),default:()=>[]},props:{type:Z(Object),default:()=>({})},virtualScroll:Boolean,itemSize:{type:Number,default:34},height:{type:Number,default:204}}),CD={expandTrigger:`click`,multiple:!1,checkStrictly:!1,emitPath:!0,lazy:!1,lazyLoad:ge,value:`value`,label:`label`,children:`children`,leaf:`leaf`,disabled:`disabled`,hoverThreshold:500,checkOnClickNode:!1,checkOnClickLeaf:!0,showPrefix:!0},wD=Q({...SD,border:{type:Boolean,default:!0},renderLabel:{type:Function}}),TD=e=>!0,ED={[br]:TD,[xr]:TD,close:()=>!0,"expand-change":e=>e},DD=e=>K(()=>({...CD,...e.props})),OD=`itemRendered`,kD=`scroll`,AD=`end-reached`,jD=`forward`,MD=`backward`,ND=`auto`,PD=`start`,FD=`center`,ID=`horizontal`,LD=`vertical`,RD=`negative`,zD=`positive-ascending`,BD=`positive-descending`,VD={[ID]:`left`,[LD]:`top`},HD=Ud({type:Z([Number,Function]),required:!0}),UD=Ud({type:Number}),WD=Ud({type:Number,default:2}),GD=Ud({type:String,values:[`ltr`,`rtl`],default:`ltr`}),KD=Ud({type:Number,default:0}),qD=Ud({type:Number,required:!0}),JD=Ud({type:String,values:[`horizontal`,`vertical`],default:LD}),YD=Q({className:{type:String,default:``},containerElement:{type:Z([String,Object]),default:`div`},data:{type:Z(Array),default:()=>DS([])},direction:GD,height:{type:[String,Number],required:!0},innerElement:{type:[String,Object],default:`div`},innerProps:{type:Z(Object),default:()=>({})},style:{type:Z([Object,String,Array,Boolean]),default:void 0},useIsScrolling:Boolean,width:{type:[Number,String],required:!1},innerWidth:{type:[Number,String],required:!1},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:Boolean}),XD=Q({cache:WD,estimatedItemSize:UD,layout:JD,initScrollOffset:KD,total:qD,itemSize:HD,...YD}),ZD={type:Number,default:6},QD={type:Number,default:0},$D={type:Number,default:2},eO=Q({columnCache:WD,columnWidth:HD,estimatedColumnWidth:UD,estimatedRowHeight:UD,initScrollLeft:KD,initScrollTop:KD,itemKey:{type:Z(Function),default:({columnIndex:e,rowIndex:t})=>`${t}:${e}`},rowCache:WD,rowHeight:HD,totalColumn:qD,totalRow:qD,hScrollbarSize:ZD,vScrollbarSize:ZD,scrollbarStartGap:QD,scrollbarEndGap:$D,role:String,...YD}),tO=Q({alwaysOn:Boolean,class:String,layout:JD,total:qD,ratio:{type:Number,required:!0},clientSize:{type:Number,required:!0},scrollFrom:{type:Number,required:!0},scrollbarSize:ZD,startGap:QD,endGap:$D,visible:Boolean}),nO=(e,t)=>ee===`ltr`||e===`rtl`||e===`horizontal`,iO=e=>e===`rtl`,aO=null;function oO(e=!1){if(aO===null||e){let e=document.createElement(`div`),t=e.style;t.width=`50px`,t.height=`50px`,t.overflow=`scroll`,t.direction=`rtl`;let n=document.createElement(`div`),r=n.style;return r.width=`100px`,r.height=`100px`,e.appendChild(n),document.body.appendChild(e),e.scrollLeft>0?aO=BD:(e.scrollLeft=1,aO=e.scrollLeft===0?RD:zD),document.body.removeChild(e),aO}return aO}function sO({move:e,size:t,bar:n},r){let i={},a=`translate${n.axis}(${e}px)`;return i[n.size]=t,i.transform=a,r===`horizontal`?i.height=`100%`:i.width=`100%`,i}var cO=Number.isNaN||function(e){return typeof e==`number`&&e!==e};function lO(e,t){return!!(e===t||cO(e)&&cO(t))}function uO(e,t){if(e.length!==t.length)return!1;for(var n=0;n{let e=Xe().proxy.$props;return K(()=>{let t=(e,t,n)=>({});return e.perfMode?Xo(t):dO(t)})},pO=({atEndEdge:e,atStartEdge:t,layout:n},r)=>{let i,a=0,o=n=>n<0&&t.value||n>0&&e.value;return{hasReachedEdge:o,onWheel:e=>{Pp(i);let{deltaX:t,deltaY:s}=e;e.shiftKey&&s!==0&&(t=s,s=0);let c=n.value===`horizontal`?t:s;o(c)||(a+=c,!lp()&&c!==0&&e.preventDefault(),i=Np(()=>{r(a),a=0}))}}},mO=z({name:`ElVirtualScrollBar`,props:tO,emits:[`scroll`,`start-move`,`stop-move`],setup(e,{emit:t}){let n=K(()=>e.startGap+e.endGap),r=$(`virtual-scrollbar`),i=$(`scrollbar`),a=q(),o=q(),s=null,c=null,l=ve({isDragging:!1,traveled:0}),u=K(()=>WS[e.layout]),d=K(()=>e.clientSize-Y(n)),f=K(()=>({position:`absolute`,width:`${e.layout===`horizontal`?d.value:e.scrollbarSize}px`,height:`${e.layout===`horizontal`?e.scrollbarSize:d.value}px`,[VD[e.layout]]:`2px`,right:`2px`,bottom:`2px`,borderRadius:`4px`})),p=K(()=>{let t=e.ratio;if(t>=100)return 1/0;if(t>=50)return t*d.value/100;let n=d.value/3;return Math.floor(Math.min(Math.max(t*d.value/100,20),n))}),m=K(()=>{if(!Number.isFinite(p.value))return{display:`none`};let t=`${p.value}px`;return sO({bar:u.value,size:t,move:l.traveled},e.layout)}),h=K(()=>Math.ceil(e.clientSize-p.value-Y(n))),g=()=>{window.addEventListener(`mousemove`,b),window.addEventListener(`mouseup`,y);let e=Y(o);e&&(c=document.onselectstart,document.onselectstart=()=>!1,e.addEventListener(`touchmove`,b,{passive:!0}),e.addEventListener(`touchend`,y))},_=()=>{window.removeEventListener(`mousemove`,b),window.removeEventListener(`mouseup`,y),document.onselectstart=c,c=null;let e=Y(o);e&&(e.removeEventListener(`touchmove`,b),e.removeEventListener(`touchend`,y))},v=e=>{e.stopImmediatePropagation(),!(e.ctrlKey||[1,2].includes(e.button))&&(l.isDragging=!0,l[u.value.axis]=e.currentTarget[u.value.offset]-(e[u.value.client]-e.currentTarget.getBoundingClientRect()[u.value.direction]),t(`start-move`),g())},y=()=>{l.isDragging=!1,l[u.value.axis]=0,t(`stop-move`),_()},b=e=>{let{isDragging:n}=l;if(!n||!o.value||!a.value)return;let r=l[u.value.axis];if(!r)return;Pp(s);let i=(a.value.getBoundingClientRect()[u.value.direction]-e[u.value.client])*-1-(o.value[u.value.offset]-r);s=Np(()=>{l.traveled=Math.max(0,Math.min(i,h.value)),t(`scroll`,i,h.value)})},x=e=>{let n=Math.abs(e.target.getBoundingClientRect()[u.value.direction]-e[u.value.client])-o.value[u.value.offset]/2;l.traveled=Math.max(0,Math.min(n,h.value)),t(`scroll`,n,h.value)};return M(()=>e.scrollFrom,e=>{l.isDragging||(l.traveled=Math.ceil(e*h.value))}),T(()=>{_()}),()=>Je(`div`,{role:`presentation`,ref:a,class:[r.b(),e.class,(e.alwaysOn||l.isDragging)&&`always-on`],style:f.value,onMousedown:kn(x,[`stop`,`prevent`]),onTouchstartPrevent:v},Je(`div`,{ref:o,class:i.e(`thumb`),style:m.value,onMousedown:v},[]))}}),hO=({name:e,getOffset:n,getItemSize:r,getItemOffset:i,getEstimatedTotalSize:a,getStartIndexForOffset:o,getStopIndexForStartIndex:s,initCache:c,clearCache:l,validateProps:u})=>z({name:e??`ElVirtualList`,props:XD,emits:[OD,kD,AD],setup(e,{emit:f,expose:p}){u(e);let m=Xe(),h=$(`vl`),g=q(c(e,m)),_=fO(),v=q(),y=q(),b=q(),x=q({isScrolling:!1,scrollDir:jD,scrollOffset:Md(e.initScrollOffset)?e.initScrollOffset:0,updateRequested:!1,isScrollbarDragging:!1}),S=K(()=>{let{total:t,cache:n}=e,{isScrolling:r,scrollDir:i,scrollOffset:a}=Y(x);if(t===0)return[0,0,0,0];let c=o(e,a,Y(g)),l=s(e,c,a,Y(g)),u=!r||i===`backward`?Math.max(1,n):1,d=!r||i===`forward`?Math.max(1,n):1;return[Math.max(0,c-u),Math.max(0,Math.min(t-1,l+d)),c,l]}),w=K(()=>a(e,Y(g))),T=K(()=>rO(e.layout)),E=K(()=>[{position:`relative`,[`overflow-${T.value?`x`:`y`}`]:`scroll`,WebkitOverflowScrolling:`touch`,willChange:`transform`},{direction:e.direction,height:Md(e.height)?`${e.height}px`:e.height,width:Md(e.width)?`${e.width}px`:e.width},e.style]),D=K(()=>{let t=Y(w),n=Y(T),r=e.innerWidth;return{height:n?`100%`:`${t}px`,pointerEvents:Y(x).isScrolling?`none`:void 0,width:n?`${t}px`:r===void 0?`100%`:Md(r)?`${r}px`:r,margin:0,boxSizing:`border-box`}}),O=K(()=>T.value?e.width:e.height),k=K(()=>Math.max(0,w.value-O.value)),A=e=>cf(e,0,k.value),ee=e=>({start:!JS(e,0,1),end:!JS(k.value,e,1)}),j=K(()=>A(x.value.scrollOffset)),N=K(()=>ee(j.value)),P=N.value,{onWheel:te}=pO({atStartEdge:K(()=>N.value.start),atEndEdge:K(()=>N.value.end),layout:K(()=>e.layout)},e=>{b.value.onMouseUp?.(),L(Math.min(x.value.scrollOffset+e,k.value))});kf(v,`wheel`,te,{passive:!1});let ne=()=>{let{total:t}=e;if(t>0){let[e,t,n,r]=Y(S);f(OD,e,t,n,r)}let{scrollDir:n,scrollOffset:r,updateRequested:i}=Y(x);f(kD,n,r,i)},re=(t,n)=>{let r=ee(n),i=e.direction===`rtl`?`left`:`right`,a=e.direction===`rtl`?`right`:`left`;t===`forward`&&r.end&&!P.end&&f(AD,T.value?i:`bottom`),t===`backward`&&r.start&&!P.start&&f(AD,T.value?a:`top`),P=r},ie=(e,{isScrolling:t,updateRequested:n})=>{let r=Y(x),i=Math.max(e,0);if(i===r.scrollOffset)return;let a=nO(r.scrollOffset,i);x.value={...r,isScrolling:t,scrollDir:a,scrollOffset:i,updateRequested:n},re(a,A(i)),U(le)},ae=e=>{let{clientHeight:t,scrollHeight:n,scrollTop:r}=e.currentTarget;Y(x).scrollOffset!==r&&ie(Math.min(r,n-t),{isScrolling:!0,updateRequested:!1})},F=t=>{let{clientWidth:n,scrollLeft:r,scrollWidth:i}=t.currentTarget;if(Y(x).scrollOffset===r)return;let{direction:a}=e,o=r;if(a===`rtl`)switch(oO()){case RD:o=-r;break;case BD:o=i-n-r;break}ie(Math.min(o,i-n),{isScrolling:!0,updateRequested:!1})},I=e=>{Y(T)?F(e):ae(e),ne()},oe=(e,t)=>{let n=k.value/t*e;L(Math.min(k.value,n))},L=e=>{ie(e,{isScrolling:Y(x).isScrolling,updateRequested:!0})},se=(t,r=ND)=>{let{scrollOffset:i}=Y(x);t=Math.max(0,Math.min(t,e.total-1)),L(n(e,t,r,i,Y(g)))},ce=t=>{let{direction:n,itemSize:a,layout:o}=e,s=_.value(l&&a,l&&o,l&&n),c;if(Ye(s,String(t)))c=s[t];else{let a=i(e,t,Y(g)),o=r(e,t,Y(g)),l=Y(T),u=n===`rtl`,d=l?a:0;s[t]=c={position:`absolute`,left:u?void 0:`${d}px`,right:u?`${d}px`:void 0,top:l?0:`${a}px`,height:l?`100%`:`${o}px`,width:l?`${o}px`:`100%`}}return c},le=()=>{x.value.isScrolling=!1,U(()=>{_.value(-1,null,null)})},ue=()=>{let e=v.value;e&&(e.scrollTop=0)};d(()=>{if(!nf)return;let{initScrollOffset:t}=e,n=Y(v);Md(t)&&n&&(Y(T)?n.scrollLeft=t:n.scrollTop=t),ne()}),C(()=>{let{direction:t,layout:n}=e,{scrollOffset:r,updateRequested:i}=Y(x),a=Y(v);if(i&&a)if(n===`horizontal`)if(t===`rtl`)switch(oO()){case RD:a.scrollLeft=-r;break;case zD:a.scrollLeft=r;break;default:{let{clientWidth:e,scrollWidth:t}=a;a.scrollLeft=t-e-r;break}}else a.scrollLeft=r;else a.scrollTop=r}),t(()=>{Y(v).scrollTop=Y(x).scrollOffset}),M(k,()=>{P=N.value});let de={ns:h,clientSize:O,estimatedTotalSize:w,windowStyle:E,windowRef:v,innerRef:y,innerStyle:D,itemsToRender:S,scrollbarRef:b,states:x,getItemStyle:ce,onScroll:I,onScrollbarScroll:oe,onWheel:te,scrollTo:L,scrollToItem:se,resetScrollTop:ue};return p({windowRef:v,innerRef:y,getItemStyleCache:_,scrollTo:L,scrollToItem:se,resetScrollTop:ue,states:x}),de},render(e){let{$slots:t,className:n,clientSize:r,containerElement:i,data:a,getItemStyle:o,innerElement:s,itemsToRender:c,innerStyle:l,layout:u,scrollbarAlwaysOn:d,total:f,onScroll:p,onScrollbarScroll:m,states:h,useIsScrolling:g,windowStyle:_,ns:v}=e,[y,b]=c,x=L(i),S=L(s),C=[];if(f>0)for(let e=y;e<=b;e++)C.push(Je(R,{key:e},t.default?.({data:a,index:e,isScrolling:g?h.isScrolling:void 0,style:o(e)})));let w=[Je(S,k(e.innerProps,{style:l,ref:`innerRef`}),P(S)?C:{default:()=>C})],T=Je(mO,{ref:`scrollbarRef`,clientSize:r,layout:u,onScroll:m,ratio:r*100/this.estimatedTotalSize,scrollFrom:h.scrollOffset/(this.estimatedTotalSize-r),total:f,alwaysOn:d}),E=Je(x,{class:[v.e(`window`),n],style:_,onScroll:p,ref:`windowRef`,key:0},P(x)?[w]:{default:()=>[w]});return Je(`div`,{key:0,class:[v.e(`wrapper`),d?`always-on`:``]},[E,T])}}),gO=hO({name:`ElFixedSizeList`,getItemOffset:({itemSize:e},t)=>t*e,getItemSize:({itemSize:e})=>e,getEstimatedTotalSize:({total:e,itemSize:t})=>t*e,getOffset:({height:e,total:t,itemSize:n,layout:r,width:i},a,o,s)=>{let c=rO(r)?i:e;P(c)&&qd(`[ElVirtualList]`,` + You should set + width/height + to number when your layout is + horizontal/vertical + `);let l=Math.max(0,t*n-c),u=Math.min(l,a*n),d=Math.max(0,(a+1)*n-c);switch(o===`smart`&&(o=s>=d-c&&s<=u+c?ND:FD),o){case PD:return u;case`end`:return d;case FD:{let e=Math.round(d+(u-d)/2);return el+Math.floor(c/2)?l:e}case ND:default:return s>=d&&s<=u?s:sMath.max(0,Math.min(e-1,Math.floor(n/t))),getStopIndexForStartIndex:({height:e,total:t,itemSize:n,layout:r,width:i},a,o)=>{let s=a*n,c=rO(r)?i:e,l=Math.ceil((c+o-s)/n);return Math.max(0,Math.min(t-1,a+l-1))},initCache(){},clearCache:!0,validateProps(){}}),_O=`ElDynamicSizeList`,vO=(e,t,n)=>{let{itemSize:r}=e,{items:i,lastVisitedIndex:a}=n;if(t>a){let e=0;if(a>=0){let t=i[a];e=t.offset+t.size}for(let n=a+1;n<=t;n++){let t=r(n);i[n]={offset:e,size:t},e+=t}n.lastVisitedIndex=t}return i[t]},yO=(e,t,n)=>{let{items:r,lastVisitedIndex:i}=t;return(i>0?r[i].offset:0)>=n?bO(e,t,0,i,n):xO(e,t,Math.max(0,i),n)},bO=(e,t,n,r,i)=>{for(;n<=r;){let a=n+Math.floor((r-n)/2),o=vO(e,a,t).offset;if(o===i)return a;oi&&(r=a-1)}return Math.max(0,n-1)},xO=(e,t,n,r)=>{let{total:i}=e,a=1;for(;n{let i=0;if(r>=e&&(r=e-1),r>=0){let e=t[r];i=e.offset+e.size}let a=(e-r-1)*n;return i+a},CO=hO({name:`ElDynamicSizeList`,getItemOffset:(e,t,n)=>vO(e,t,n).offset,getItemSize:(e,t,{items:n})=>n[t].size,getEstimatedTotalSize:SO,getOffset:(e,t,n,r,i)=>{let{height:a,layout:o,width:s}=e,c=rO(o)?s:a,l=vO(e,t,i),u=SO(e,i),d=Math.max(0,Math.min(u-c,l.offset)),f=Math.max(0,l.offset-c+l.size);switch(n===`smart`&&(n=r>=f-c&&r<=d+c?ND:FD),n){case PD:return d;case`end`:return f;case FD:return Math.round(f+(d-f)/2);case ND:default:return r>=f&&r<=d?r:ryO(e,n,t),getStopIndexForStartIndex:(e,t,n,r)=>{let{height:i,total:a,layout:o,width:s}=e,c=rO(o)?s:i,l=vO(e,t,r),u=n+c,d=l.offset+l.size,f=t;for(;f{n.lastVisitedIndex=Math.min(n.lastVisitedIndex,e-1),t.exposed?.getItemStyleCache(-1),r&&t.proxy?.$forceUpdate()},n},clearCache:!1,validateProps:({itemSize:e})=>{typeof e!=`function`&&qd(_O,` + itemSize is required as function, but the given value was ${typeof e} + `)}}),wO=({atXEndEdge:e,atXStartEdge:t,atYEndEdge:n,atYStartEdge:r},i)=>{let a=null,o=0,s=0,c=(i,a)=>{let o=i<0&&t.value||i>0&&e.value,s=a<0&&r.value||a>0&&n.value;return o||s};return{hasReachedEdge:c,onWheel:e=>{Pp(a);let t=e.deltaX,n=e.deltaY;if(Math.abs(t)>Math.abs(n)?n=0:t=0,e.shiftKey&&n!==0&&(t=n,n=0),c(t,n)){e.deltaX!==0&&t===0&&e.preventDefault();return}o+=t,s+=n,e.preventDefault(),a=Np(()=>{i(o,s),o=0,s=0})}}},TO=(e,t,n,r,i,a,o)=>{let s=q(0),c=q(0),l,u=0,d=0,f=e=>{Pp(l),s.value=e.touches[0].clientX,c.value=e.touches[0].clientY,u=0,d=0},p=e=>{e.preventDefault(),Pp(l),u+=s.value-e.touches[0].clientX,d+=c.value-e.touches[0].clientY,s.value=e.touches[0].clientX,c.value=e.touches[0].clientY,l=Np(()=>{let e=r.value-Y(a),s=i.value-Y(o);n({scrollLeft:Math.min(t.value.scrollLeft+u,e),scrollTop:Math.min(t.value.scrollTop+d,s)}),u=0,d=0})};return kf(e,`touchstart`,f,{passive:!0}),kf(e,`touchmove`,p,{passive:!1}),{touchStartX:s,touchStartY:c,handleTouchStart:f,handleTouchMove:p}},EO=({name:e,clearCache:t,getColumnPosition:n,getColumnStartIndexForOffset:r,getColumnStopIndexForStartIndex:i,getEstimatedTotalHeight:a,getEstimatedTotalWidth:o,getColumnOffset:s,getRowOffset:c,getRowPosition:l,getRowStartIndexForOffset:u,getRowStopIndexForStartIndex:f,initCache:p,injectToInstance:m,validateProps:h})=>z({name:e??`ElVirtualList`,props:eO,emits:[OD,kD],setup(e,{emit:g,expose:_,slots:v}){let y=$(`vl`);h(e);let b=Xe(),x=q(p(e,b));m?.(b,x);let S=q(),C=q(),w=q(),T=q(),E=q({isScrolling:!1,scrollLeft:Md(e.initScrollLeft)?e.initScrollLeft:0,scrollTop:Md(e.initScrollTop)?e.initScrollTop:0,updateRequested:!1,xAxisScrollDir:jD,yAxisScrollDir:jD}),D=fO(),O=K(()=>Number.parseInt(`${e.height}`,10)),A=K(()=>Number.parseInt(`${e.width}`,10)),ee=K(()=>{let{totalColumn:t,totalRow:n,columnCache:a}=e,{isScrolling:o,xAxisScrollDir:s,scrollLeft:c}=Y(E);if(t===0||n===0)return[0,0,0,0];let l=r(e,c,Y(x)),u=i(e,l,c,Y(x)),d=!o||s===`backward`?Math.max(1,a):1,f=!o||s===`forward`?Math.max(1,a):1;return[Math.max(0,l-d),Math.max(0,Math.min(t-1,u+f)),l,u]}),j=K(()=>{let{totalColumn:t,totalRow:n,rowCache:r}=e,{isScrolling:i,yAxisScrollDir:a,scrollTop:o}=Y(E);if(t===0||n===0)return[0,0,0,0];let s=u(e,o,Y(x)),c=f(e,s,o,Y(x)),l=!i||a===`backward`?Math.max(1,r):1,d=!i||a===`forward`?Math.max(1,r):1;return[Math.max(0,s-l),Math.max(0,Math.min(n-1,c+d)),s,c]}),M=K(()=>a(e,Y(x))),N=K(()=>o(e,Y(x))),te=K(()=>[{position:`relative`,overflow:`hidden`,WebkitOverflowScrolling:`touch`,willChange:`transform`},{direction:e.direction,height:Md(e.height)?`${e.height}px`:e.height,width:Md(e.width)?`${e.width}px`:e.width},e.style??{}]),ne=K(()=>{let e=`${Y(N)}px`;return{height:`${Y(M)}px`,pointerEvents:Y(E).isScrolling?`none`:void 0,width:e,margin:0,boxSizing:`border-box`}}),re=()=>{let{totalColumn:t,totalRow:n}=e;if(t>0&&n>0){let[e,t,n,r]=Y(ee),[i,a,o,s]=Y(j);g(OD,{columnCacheStart:e,columnCacheEnd:t,rowCacheStart:i,rowCacheEnd:a,columnVisibleStart:n,columnVisibleEnd:r,rowVisibleStart:o,rowVisibleEnd:s})}let{scrollLeft:r,scrollTop:i,updateRequested:a,xAxisScrollDir:o,yAxisScrollDir:s}=Y(E);g(kD,{xAxisScrollDir:o,scrollLeft:r,yAxisScrollDir:s,scrollTop:i,updateRequested:a})},ie=t=>{let{clientHeight:n,clientWidth:r,scrollHeight:i,scrollLeft:a,scrollTop:o,scrollWidth:s}=t.currentTarget,c=Y(E);if(c.scrollTop===o&&c.scrollLeft===a)return;let l=a;if(iO(e.direction))switch(oO()){case RD:l=-a;break;case BD:l=s-r-a;break}E.value={...c,isScrolling:!0,scrollLeft:l,scrollTop:Math.max(0,Math.min(o,i-n)),updateRequested:!0,xAxisScrollDir:nO(c.scrollLeft,l),yAxisScrollDir:nO(c.scrollTop,o)},U(()=>pe()),me(),re()},ae=(e,t)=>{let n=Y(O),r=(M.value-n)/t*e;oe({scrollTop:Math.min(M.value-n,r)})},F=(e,t)=>{let n=Y(A),r=(N.value-n)/t*e;oe({scrollLeft:Math.min(N.value-n,r)})},{onWheel:I}=wO({atXStartEdge:K(()=>E.value.scrollLeft<=0),atXEndEdge:K(()=>E.value.scrollLeft>=N.value-Y(A)),atYStartEdge:K(()=>E.value.scrollTop<=0),atYEndEdge:K(()=>E.value.scrollTop>=M.value-Y(O))},(e,t)=>{C.value?.onMouseUp?.(),w.value?.onMouseUp?.();let n=Y(A),r=Y(O);oe({scrollLeft:Math.min(E.value.scrollLeft+e,N.value-n),scrollTop:Math.min(E.value.scrollTop+t,M.value-r)})});kf(S,`wheel`,I,{passive:!1});let oe=({scrollLeft:e=E.value.scrollLeft,scrollTop:t=E.value.scrollTop})=>{e=Math.max(e,0),t=Math.max(t,0);let n=Y(E);t===n.scrollTop&&e===n.scrollLeft||(E.value={...n,xAxisScrollDir:nO(n.scrollLeft,e),yAxisScrollDir:nO(n.scrollTop,t),scrollLeft:e,scrollTop:t,updateRequested:!0},U(()=>pe()),me(),re())},{touchStartX:se,touchStartY:ce,handleTouchStart:le,handleTouchMove:ue}=TO(S,E,oe,N,M,A,O),de=(t=0,n=0,r=ND)=>{let i=Y(E);n=Math.max(0,Math.min(n,e.totalColumn-1)),t=Math.max(0,Math.min(t,e.totalRow-1));let l=Rp(y.namespace.value),u=Y(x),d=a(e,u),f=o(e,u);oe({scrollLeft:s(e,n,r,i.scrollLeft,u,f>e.width?l:0),scrollTop:c(e,t,r,i.scrollTop,u,d>e.height?l:0)})},fe=(r,i)=>{let{columnWidth:a,direction:o,rowHeight:s}=e,c=D.value(t&&a,t&&s,t&&o),u=`${r},${i}`;if(Ye(c,u))return c[u];{let[,t]=n(e,i,Y(x)),a=Y(x),s=iO(o),[d,f]=l(e,r,a),[p]=n(e,i,a);return c[u]={position:`absolute`,left:s?void 0:`${t}px`,right:s?`${t}px`:void 0,top:`${f}px`,height:`${d}px`,width:`${p}px`},c[u]}},pe=()=>{E.value.isScrolling=!1,U(()=>{D.value(-1,null,null)})};d(()=>{if(!nf)return;let{initScrollLeft:t,initScrollTop:n}=e,r=Y(S);r&&(Md(t)&&(r.scrollLeft=t),Md(n)&&(r.scrollTop=n)),re()});let me=()=>{let{direction:t}=e,{scrollLeft:n,scrollTop:r,updateRequested:i}=Y(E),a=Y(S);if(i&&a){if(t===`rtl`)switch(oO()){case RD:a.scrollLeft=-n;break;case zD:a.scrollLeft=n;break;default:{let{clientWidth:e,scrollWidth:t}=a;a.scrollLeft=t-e-n;break}}else a.scrollLeft=Math.max(0,n);a.scrollTop=Math.max(0,r)}},{resetAfterColumnIndex:he,resetAfterRowIndex:z,resetAfter:ge}=b.proxy;_({windowRef:S,innerRef:T,getItemStyleCache:D,touchStartX:se,touchStartY:ce,handleTouchStart:le,handleTouchMove:ue,scrollTo:oe,scrollToItem:de,states:E,resetAfterColumnIndex:he,resetAfterRowIndex:z,resetAfter:ge});let _e=()=>{let{scrollbarAlwaysOn:t,scrollbarStartGap:n,scrollbarEndGap:r,totalColumn:i,totalRow:a}=e,o=Y(A),s=Y(O),c=Y(N),l=Y(M),{scrollLeft:u,scrollTop:d}=Y(E);return{horizontalScrollbar:Je(mO,{ref:C,alwaysOn:t,startGap:n,endGap:r,class:y.e(`horizontal`),clientSize:o,layout:`horizontal`,onScroll:F,ratio:o*100/c,scrollFrom:u/(c-o),total:a,visible:!0}),verticalScrollbar:Je(mO,{ref:w,alwaysOn:t,startGap:n,endGap:r,class:y.e(`vertical`),clientSize:s,layout:`vertical`,onScroll:ae,ratio:s*100/l,scrollFrom:d/(l-s),total:i,visible:!0})}},ve=()=>{let[t,n]=Y(ee),[r,i]=Y(j),{data:a,totalColumn:o,totalRow:s,useIsScrolling:c,itemKey:l}=e,u=[];if(s>0&&o>0)for(let e=r;e<=i;e++)for(let r=t;r<=n;r++){let t=l({columnIndex:r,data:a,rowIndex:e});u.push(Je(R,{key:t},v.default?.({columnIndex:r,data:a,isScrolling:c?Y(E).isScrolling:void 0,style:fe(e,r),rowIndex:e})))}return u},B=()=>{let t=L(e.innerElement),n=ve();return[Je(t,k(e.innerProps,{style:Y(ne),ref:T}),P(t)?n:{default:()=>n})]};return()=>{let t=L(e.containerElement),{horizontalScrollbar:n,verticalScrollbar:r}=_e(),i=B();return Je(`div`,{key:0,class:y.e(`wrapper`),role:e.role},[Je(t,{class:e.className,style:Y(te),onScroll:ie,ref:S},P(t)?i:{default:()=>i}),n,r])}}}),DO=`ElFixedSizeGrid`,OO=EO({name:`ElFixedSizeGrid`,getColumnPosition:({columnWidth:e},t)=>[e,t*e],getRowPosition:({rowHeight:e},t)=>[e,t*e],getEstimatedTotalHeight:({totalRow:e,rowHeight:t})=>t*e,getEstimatedTotalWidth:({totalColumn:e,columnWidth:t})=>t*e,getColumnOffset:({totalColumn:e,columnWidth:t,width:n},r,i,a,o,s)=>{n=Number(n);let c=Math.max(0,e*t-n),l=Math.min(c,r*t),u=Math.max(0,r*t-n+s+t);switch(i===`smart`&&(i=a>=u-n&&a<=l+n?ND:FD),i){case PD:return l;case`end`:return u;case FD:{let e=Math.round(u+(l-u)/2);return ec+Math.floor(n/2)?c:e}case ND:default:return a>=u&&a<=l?a:u>l||a{t=Number(t);let c=Math.max(0,n*e-t),l=Math.min(c,r*e),u=Math.max(0,r*e-t+s+e);switch(i===`smart`&&(i=a>=u-t&&a<=l+t?ND:FD),i){case PD:return l;case`end`:return u;case FD:{let e=Math.round(u+(l-u)/2);return ec+Math.floor(t/2)?c:e}case ND:default:return a>=u&&a<=l?a:u>l||aMath.max(0,Math.min(t-1,Math.floor(n/e))),getColumnStopIndexForStartIndex:({columnWidth:e,totalColumn:t,width:n},r,i)=>{let a=r*e,o=Math.ceil((n+i-a)/e);return Math.max(0,Math.min(t-1,r+o-1))},getRowStartIndexForOffset:({rowHeight:e,totalRow:t},n)=>Math.max(0,Math.min(t-1,Math.floor(n/e))),getRowStopIndexForStartIndex:({rowHeight:e,totalRow:t,height:n},r,i)=>{let a=r*e,o=Math.ceil((n+i-a)/e);return Math.max(0,Math.min(t-1,r+o-1))},initCache:()=>void 0,clearCache:!0,validateProps:({columnWidth:e,rowHeight:t})=>{Md(e)||qd(DO,` + "columnWidth" must be passed as number, + instead ${typeof e} was given. + `),Md(t)||qd(DO,` + "columnWidth" must be passed as number, + instead ${typeof t} was given. + `)}}),{max:kO,min:AO,floor:jO}=Math,MO=`ElDynamicSizeGrid`,NO={column:`columnWidth`,row:`rowHeight`},PO={column:`lastVisitedColumnIndex`,row:`lastVisitedRowIndex`},FO=(e,t,n,r)=>{let[i,a,o]=[n[r],e[NO[r]],n[PO[r]]];if(t>o){let e=0;if(o>=0){let t=i[o];e=t.offset+t.size}for(let n=o+1;n<=t;n++){let t=a(n);i[n]={offset:e,size:t},e+=t}n[PO[r]]=t}return i[t]},IO=(e,t,n,r,i,a)=>{for(;n<=r;){let o=n+jO((r-n)/2),s=FO(e,o,t,a).offset;if(s===i)return o;s{let a=i===`column`?e.totalColumn:e.totalRow,o=1;for(;n{let[i,a]=[t[r],t[PO[r]]];return(a>0?i[a].offset:0)>=n?IO(e,t,0,a,n,r):LO(e,t,kO(0,a),n,r)},zO=({totalRow:e},{estimatedRowHeight:t,lastVisitedRowIndex:n,row:r})=>{let i=0;if(n>=e&&(n=e-1),n>=0){let e=r[n];i=e.offset+e.size}let a=(e-n-1)*t;return i+a},BO=({totalColumn:e},{column:t,estimatedColumnWidth:n,lastVisitedColumnIndex:r})=>{let i=0;if(r>e&&(r=e-1),r>=0){let e=t[r];i=e.offset+e.size}let a=(e-r-1)*n;return i+a},VO={column:BO,row:zO},HO=(e,t,n,r,i,a,o)=>{let[s,c]=[a===`row`?e.height:e.width,VO[a]],l=FO(e,t,i,a),u=kO(0,AO(c(e,i)-s,l.offset)),d=kO(0,l.offset-s+o+l.size);switch(n===`smart`&&(n=r>=d-s&&r<=u+s?ND:FD),n){case PD:return u;case`end`:return d;case FD:return Math.round(d+(u-d)/2);case ND:default:return r>=d&&r<=u?r:d>u||r{let r=FO(e,t,n,`column`);return[r.size,r.offset]},getRowPosition:(e,t,n)=>{let r=FO(e,t,n,`row`);return[r.size,r.offset]},getColumnOffset:(e,t,n,r,i,a)=>HO(e,t,n,r,i,`column`,a),getRowOffset:(e,t,n,r,i,a)=>HO(e,t,n,r,i,`row`,a),getColumnStartIndexForOffset:(e,t,n)=>RO(e,n,t,`column`),getColumnStopIndexForStartIndex:(e,t,n,r)=>{let i=FO(e,t,r,`column`),a=n+e.width,o=i.offset+i.size,s=t;for(;sRO(e,n,t,`row`),getRowStopIndexForStartIndex:(e,t,n,r)=>{let{totalRow:i,height:a}=e,o=FO(e,t,r,`row`),s=n+a,c=o.size+o.offset,l=t;for(;l{let n=({columnIndex:n,rowIndex:r},i)=>{i=Ad(i)?!0:i,Md(n)&&(t.value.lastVisitedColumnIndex=Math.min(t.value.lastVisitedColumnIndex,n-1)),Md(r)&&(t.value.lastVisitedRowIndex=Math.min(t.value.lastVisitedRowIndex,r-1)),e.exposed?.getItemStyleCache.value(-1,null,null),i&&e.proxy?.$forceUpdate()};Object.assign(e.proxy,{resetAfterColumnIndex:(e,t)=>{n({columnIndex:e},t)},resetAfterRowIndex:(e,t)=>{n({rowIndex:e},t)},resetAfter:n})},initCache:({estimatedColumnWidth:e=50,estimatedRowHeight:t=50})=>({column:{},estimatedColumnWidth:e,estimatedRowHeight:t,lastVisitedColumnIndex:-1,lastVisitedRowIndex:-1,row:{}}),clearCache:!1,validateProps:({columnWidth:e,rowHeight:t})=>{n(e)||qd(MO,` + "columnWidth" must be passed as function, + instead ${typeof e} was given. + `),n(t)||qd(MO,` + "rowHeight" must be passed as function, + instead ${typeof t} was given. + `)}}),WO={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:xv,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Mv([`ariaControls`])},GO={[br]:e=>P(e)||Md(e)||jd(e),change:e=>P(e)||Md(e)||jd(e)},KO=Symbol(`checkboxGroupContextKey`),qO=Q({modelValue:{type:Z(Array),default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:xv,fill:String,textColor:String,tag:{type:String,default:`div`},validateEvent:{type:Boolean,default:!0},options:{type:Z(Array)},props:{type:Z(Object),default:()=>YO},type:{type:String,values:[`checkbox`,`button`],default:`checkbox`},...Mv([`ariaLabel`])}),JO={[br]:e=>A(e),change:e=>A(e)},YO={label:`label`,value:`value`,disabled:`disabled`},XO=({model:e,isChecked:t})=>{let n=l(KO,void 0),r=l(ob,void 0),i=K(()=>{let r=n?.max?.value,i=n?.min?.value;return!Ad(r)&&e.value.length>=r&&!t.value||!Ad(i)&&e.value.length<=i&&t.value});return{isDisabled:lb(K(()=>n===void 0?r?.disabled??i.value:n.disabled?.value||i.value)),isLimitDisabled:i}},ZO=(e,{model:t,isLimitExceeded:n,hasOwnLabel:r,isDisabled:i,isLabeledByFormItem:a})=>{let o=l(KO,void 0),{formItem:s}=ub(),{emit:c}=Xe();function u(t){return[!0,e.trueValue,e.trueLabel].includes(t)?e.trueValue??e.trueLabel??!0:e.falseValue??e.falseLabel??!1}function d(e,t){c(xr,u(e),t)}function f(e){if(n.value)return;let t=e.target;c(xr,u(t.checked),e)}async function p(o){n.value||!r.value&&!i.value&&a.value&&(o.composedPath().some(e=>e.tagName===`LABEL`)||(t.value=u([!1,e.falseValue,e.falseLabel].includes(t.value)),await U(),d(t.value,o)))}let m=K(()=>o?.validateEvent||e.validateEvent);return M(()=>e.modelValue,()=>{m.value&&s?.validate(`change`).catch(ge)}),{handleChange:f,onClickRoot:p}},QO=e=>{let t=q(!1),{emit:n,vnode:r}=Xe(),i=l(KO,void 0),a=K(()=>Ad(i)===!1),o=q(!1),s=K(()=>{let e=r.props??{};return`modelValue`in e||`model-value`in e}),c=K({get(){return a.value?i?.modelValue?.value:s.value?e.modelValue:t.value},set(e){a.value&&A(e)?(o.value=i?.max?.value!==void 0&&e.length>i?.max.value&&e.length>c.value.length,o.value===!1&&i?.changeEvent?.(e)):(n(br,e),t.value=e)}});return{model:c,isGroup:a,isLimitExceeded:o}},$O=(e,t,{model:n})=>{let r=l(KO,void 0),i=q(!1),a=K(()=>Fd(e.value)?e.label:e.value),o=K(()=>{let t=n.value;return jd(t)?t:A(t)?E(a.value)?t.map(Me).some(e=>sd(e,a.value)):t.map(Me).includes(a.value):t==null?!!t:t===e.trueValue||t===e.trueLabel});return{checkboxButtonSize:cb(K(()=>r?.size?.value),{prop:!0}),isChecked:o,isFocused:i,checkboxSize:cb(K(()=>r?.size?.value)),hasOwnLabel:K(()=>!!t.default||!Fd(a.value)),actualValue:a}},ek=(e,t)=>{let{formItem:n}=ub(),{model:r,isGroup:i,isLimitExceeded:a}=QO(e),{isFocused:o,isChecked:s,checkboxButtonSize:c,checkboxSize:l,hasOwnLabel:u,actualValue:d}=$O(e,t,{model:r}),{isDisabled:f}=XO({model:r,isChecked:s}),{inputId:p,isLabeledByFormItem:m}=db(e,{formItemContext:n,disableIdGeneration:u,disableIdManagement:i}),{handleChange:h,onClickRoot:g}=ZO(e,{model:r,isLimitExceeded:a,hasOwnLabel:u,isDisabled:f,isLabeledByFormItem:m});return(()=>{function t(){A(r.value)&&!r.value.includes(d.value)?r.value.push(d.value):r.value=e.trueValue??e.trueLabel??!0}e.checked&&t()})(),Zf({from:`label act as value`,replacement:`value`,version:`3.0.0`,scope:`el-checkbox`,ref:`https://element-plus.org/en-US/component/checkbox.html`},K(()=>i.value&&Fd(e.value))),Zf({from:`true-label`,replacement:`true-value`,version:`3.0.0`,scope:`el-checkbox`,ref:`https://element-plus.org/en-US/component/checkbox.html`},K(()=>!!e.trueLabel)),Zf({from:`false-label`,replacement:`false-value`,version:`3.0.0`,scope:`el-checkbox`,ref:`https://element-plus.org/en-US/component/checkbox.html`},K(()=>!!e.falseLabel)),{inputId:p,isLabeledByFormItem:m,isChecked:s,isDisabled:f,isFocused:o,checkboxButtonSize:c,checkboxSize:l,hasOwnLabel:u,model:r,actualValue:d,handleChange:h,onClickRoot:g}},tk=[`id`,`indeterminate`,`name`,`tabindex`,`disabled`],nk=z({name:`ElCheckbox`,__name:`checkbox`,props:WO,emits:GO,setup(e){let t=e,{inputId:n,isLabeledByFormItem:r,isChecked:i,isDisabled:a,isFocused:o,checkboxSize:s,hasOwnLabel:c,model:l,actualValue:u,handleChange:d,onClickRoot:f}=ek(t,le()),p=K(()=>t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":t.trueValue??t.trueLabel??!0,"false-value":t.falseValue??t.falseLabel??!1}:{value:u.value}),m=$(`checkbox`),h=K(()=>[m.b(),m.m(s.value),m.is(`disabled`,a.value),m.is(`bordered`,t.border),m.is(`checked`,i.value)]),g=K(()=>[m.e(`input`),m.is(`disabled`,a.value),m.is(`checked`,i.value),m.is(`indeterminate`,t.indeterminate),m.is(`focus`,o.value)]);return(t,i)=>(N(),H(L(!Y(c)&&Y(r)?`span`:`label`),{for:!Y(c)&&Y(r)?null:Y(n),class:F(h.value),"aria-controls":e.indeterminate?e.ariaControls:null,"aria-checked":e.indeterminate?`mixed`:void 0,"aria-label":e.ariaLabel,onClick:Y(f)},{default:V(()=>[B(`span`,{class:F(g.value)},[Ge(B(`input`,k({id:Y(n),"onUpdate:modelValue":i[0]||=e=>he(l)?l.value=e:null,class:Y(m).e(`original`),type:`checkbox`,indeterminate:e.indeterminate,name:e.name,tabindex:e.tabindex,disabled:Y(a)},p.value,{onChange:i[1]||=(...e)=>Y(d)&&Y(d)(...e),onFocus:i[2]||=e=>o.value=!0,onBlur:i[3]||=e=>o.value=!1,onClick:i[4]||=kn(()=>{},[`stop`])}),null,16,tk),[[Sn,Y(l)]]),B(`span`,{class:F(Y(m).e(`inner`))},null,2)],2),Y(c)?(N(),W(`span`,{key:0,class:F(Y(m).e(`label`))},[I(t.$slots,`default`),t.$slots.default?G(`v-if`,!0):(N(),W(R,{key:0},[Ke(S(e.label),1)],64))],2)):G(`v-if`,!0)]),_:3},8,[`for`,`class`,`aria-controls`,`aria-checked`,`aria-label`,`onClick`]))}}),rk=[`name`,`tabindex`,`disabled`],ik=z({name:`ElCheckboxButton`,__name:`checkbox-button`,props:WO,emits:GO,setup(e){let t=e,{isFocused:n,isChecked:r,isDisabled:i,checkboxButtonSize:a,model:o,actualValue:s,handleChange:c}=ek(t,le()),u=K(()=>t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":t.trueValue??t.trueLabel??!0,"false-value":t.falseValue??t.falseLabel??!1}:{value:s.value}),d=l(KO,void 0),f=$(`checkbox`),p=K(()=>{let e=d?.fill?.value??``;return{backgroundColor:e,borderColor:e,color:d?.textColor?.value??``,boxShadow:e?`-1px 0 0 0 ${e}`:void 0}}),h=K(()=>[f.b(`button`),f.bm(`button`,a.value),f.is(`disabled`,i.value),f.is(`checked`,r.value),f.is(`focus`,n.value)]);return(t,a)=>(N(),W(`label`,{class:F(h.value)},[Ge(B(`input`,k({"onUpdate:modelValue":a[0]||=e=>he(o)?o.value=e:null,class:Y(f).be(`button`,`original`),type:`checkbox`,name:e.name,tabindex:e.tabindex,disabled:Y(i)},u.value,{onChange:a[1]||=(...e)=>Y(c)&&Y(c)(...e),onFocus:a[2]||=e=>n.value=!0,onBlur:a[3]||=e=>n.value=!1,onClick:a[4]||=kn(()=>{},[`stop`])}),null,16,rk),[[Sn,Y(o)]]),t.$slots.default||e.label?(N(),W(`span`,{key:0,class:F(Y(f).be(`button`,`inner`)),style:m(Y(r)?p.value:void 0)},[I(t.$slots,`default`,{},()=>[Ke(S(e.label),1)])],6)):G(`v-if`,!0)],2))}}),ak=z({name:`ElCheckboxGroup`,__name:`checkbox-group`,props:qO,emits:JO,setup(e,{emit:t}){let n=e,i=t,a=$(`checkbox`),o=lb(),{formItem:s}=ub(),{inputId:c,isLabeledByFormItem:l}=db(n,{formItemContext:s}),u=async e=>{i(br,e),await U(),i(xr,e)},d=K({get(){return n.modelValue},set(e){u(e)}}),f=K(()=>({...YO,...n.props})),p=e=>{let{label:t,value:n,disabled:r}=f.value,i={label:e[t],value:e[n],disabled:e[r]};return{...vd(e,[t,n,r]),...i}},m=K(()=>n.type===`button`?ik:nk);return Qe(KO,{...Sd(Se(n),[`size`,`min`,`max`,`validateEvent`,`fill`,`textColor`]),disabled:o,modelValue:d,changeEvent:u}),M(()=>n.modelValue,(e,t)=>{n.validateEvent&&!sd(e,t)&&s?.validate(`change`).catch(ge)}),(t,n)=>(N(),H(L(e.tag),{id:Y(c),class:F(Y(a).b(`group`)),role:`group`,"aria-label":Y(l)?void 0:e.ariaLabel||`checkbox-group`,"aria-labelledby":Y(l)?Y(s)?.labelId:void 0},{default:V(()=>[I(t.$slots,`default`,{},()=>[(N(!0),W(R,null,r(e.options,(e,t)=>(N(),H(L(m.value),k({key:t},{ref_for:!0},p(e)),null,16))),128))])]),_:3},8,[`id`,`class`,`aria-label`,`aria-labelledby`]))}}),ok=Pv(nk,{CheckboxButton:ik,CheckboxGroup:ak}),sk=Lv(ik),ck=Lv(ak),lk=Q({modelValue:{type:[String,Number,Boolean],default:void 0},size:xv,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),uk=Q({...lk,border:Boolean}),dk={[br]:e=>P(e)||Md(e)||jd(e),[xr]:e=>P(e)||Md(e)||jd(e)},fk=Symbol(`radioGroupKey`),pk=Q({...lk}),mk={label:`label`,value:`value`,disabled:`disabled`},hk=Q({id:{type:String,default:void 0},size:xv,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:``},textColor:{type:String,default:``},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:Z(Array)},props:{type:Z(Object),default:()=>mk},type:{type:String,values:[`radio`,`button`],default:`radio`},...Mv([`ariaLabel`])}),gk=dk,_k=(e,t)=>{let n=q(),r=l(fk,void 0),i=K(()=>!!r),a=K(()=>Fd(e.value)?e.label:e.value),o=K({get(){return i.value?r.modelValue:e.modelValue},set(o){i.value?r.changeEvent(o):t&&t(`update:modelValue`,o),n.value.checked=e.modelValue===a.value}}),s=cb(K(()=>r?.size)),c=lb(K(()=>r?.disabled)),u=q(!1),d=K(()=>c.value||i.value&&o.value!==a.value?-1:0);return Zf({from:`label act as value`,replacement:`value`,version:`3.0.0`,scope:`el-radio`,ref:`https://element-plus.org/en-US/component/radio.html`},K(()=>i.value&&Fd(e.value))),{radioRef:n,isGroup:i,radioGroup:r,focus:u,size:s,disabled:c,tabIndex:d,modelValue:o,actualValue:a}},vk=[`value`,`name`,`disabled`,`checked`],yk=z({name:`ElRadio`,__name:`radio`,props:uk,emits:dk,setup(e,{emit:t}){let n=e,r=t,i=$(`radio`),{radioRef:a,radioGroup:o,focus:s,size:c,disabled:l,modelValue:u,actualValue:d}=_k(n,r);function f(){U(()=>r(xr,u.value))}return(t,n)=>(N(),W(`label`,{class:F([Y(i).b(),Y(i).is(`disabled`,Y(l)),Y(i).is(`focus`,Y(s)),Y(i).is(`bordered`,e.border),Y(i).is(`checked`,Y(u)===Y(d)),Y(i).m(Y(c))])},[B(`span`,{class:F([Y(i).e(`input`),Y(i).is(`disabled`,Y(l)),Y(i).is(`checked`,Y(u)===Y(d))])},[Ge(B(`input`,{ref_key:`radioRef`,ref:a,"onUpdate:modelValue":n[0]||=e=>he(u)?u.value=e:null,class:F(Y(i).e(`original`)),value:Y(d),name:e.name||Y(o)?.name,disabled:Y(l),checked:Y(u)===Y(d),type:`radio`,onFocus:n[1]||=e=>s.value=!0,onBlur:n[2]||=e=>s.value=!1,onChange:f,onClick:n[3]||=kn(()=>{},[`stop`])},null,42,vk),[[wn,Y(u)]]),B(`span`,{class:F(Y(i).e(`inner`))},null,2)],2),B(`span`,{class:F(Y(i).e(`label`)),onKeydown:n[4]||=kn(()=>{},[`stop`])},[I(t.$slots,`default`,{},()=>[Ke(S(e.label),1)])],34)],2))}}),bk=[`value`,`name`,`disabled`],xk=z({name:`ElRadioButton`,__name:`radio-button`,props:pk,setup(e){let t=e,n=$(`radio`),{radioRef:r,focus:i,size:a,disabled:o,modelValue:s,radioGroup:c,actualValue:l}=_k(t),u=K(()=>({backgroundColor:c?.fill||``,borderColor:c?.fill||``,boxShadow:c?.fill?`-1px 0 0 0 ${c.fill}`:``,color:c?.textColor||``}));return(t,d)=>(N(),W(`label`,{class:F([Y(n).b(`button`),Y(n).is(`active`,Y(s)===Y(l)),Y(n).is(`disabled`,Y(o)),Y(n).is(`focus`,Y(i)),Y(n).bm(`button`,Y(a))])},[Ge(B(`input`,{ref_key:`radioRef`,ref:r,"onUpdate:modelValue":d[0]||=e=>he(s)?s.value=e:null,class:F(Y(n).be(`button`,`original-radio`)),value:Y(l),type:`radio`,name:e.name||Y(c)?.name,disabled:Y(o),onFocus:d[1]||=e=>i.value=!0,onBlur:d[2]||=e=>i.value=!1,onClick:d[3]||=kn(()=>{},[`stop`])},null,42,bk),[[wn,Y(s)]]),B(`span`,{class:F(Y(n).be(`button`,`inner`)),style:m(Y(s)===Y(l)?u.value:{}),onKeydown:d[4]||=kn(()=>{},[`stop`])},[I(t.$slots,`default`,{},()=>[Ke(S(e.label),1)])],38)],2))}}),Sk=[`id`,`aria-label`,`aria-labelledby`],Ck=z({name:`ElRadioGroup`,__name:`radio-group`,props:hk,emits:gk,setup(e,{emit:t}){let n=e,i=t,a=$(`radio`),o=rg(),s=q(),{formItem:c}=ub(),{inputId:l,isLabeledByFormItem:u}=db(n,{formItemContext:c}),f=e=>{i(br,e),U(()=>i(xr,e))};d(()=>{let e=s.value.querySelectorAll(`[type=radio]`),t=e[0];!Array.from(e).some(e=>e.checked)&&t&&(t.tabIndex=0)});let p=K(()=>n.name||o.value),m=K(()=>({...mk,...n.props})),h=e=>{let{label:t,value:n,disabled:r}=m.value,i={label:e[t],value:e[n],disabled:e[r]};return{...vd(e,[t,n,r]),...i}},g=K(()=>n.type===`button`?xk:yk);return Qe(fk,ve({...Se(n),changeEvent:f,name:p})),M(()=>n.modelValue,(e,t)=>{n.validateEvent&&!sd(e,t)&&c?.validate(`change`).catch(ge)}),(t,n)=>(N(),W(`div`,{id:Y(l),ref_key:`radioGroupRef`,ref:s,class:F(Y(a).b(`group`)),role:`radiogroup`,"aria-label":Y(u)?void 0:e.ariaLabel||`radio-group`,"aria-labelledby":Y(u)?Y(c).labelId:void 0},[I(t.$slots,`default`,{},()=>[(N(!0),W(R,null,r(e.options,(e,t)=>(N(),H(L(g.value),k({key:t},{ref_for:!0},h(e)),null,16))),128))])],10,Sk))}}),wk=Pv(yk,{RadioButton:xk,RadioGroup:Ck}),Tk=Lv(Ck),Ek=Lv(xk),Dk=Symbol();function Ok(e){return!!(A(e)?e.every(({type:e})=>e===Te):e?.type===Te)}var kk=z({name:`NodeContent`,props:{node:{type:Object,required:!0}},setup(e){let t=$(`cascader-node`),{renderLabelFn:n}=l(Dk),{node:r}=e,{data:i,label:a}=r,o=()=>{let e=n?.({node:r,data:i});return Ok(e)?a:e??a};return()=>J(`span`,{class:t.e(`label`)},[o()])}}),Ak=[`id`,`aria-haspopup`,`aria-owns`,`aria-expanded`,`tabindex`],jk=z({name:`ElCascaderNode`,__name:`node`,props:{node:{type:Object,required:!0},menuId:{type:String,required:!1}},emits:[`expand`],setup(e,{emit:t}){let n=e,r=t,i=l(Dk),a=$(`cascader-node`),o=K(()=>i.isHoverMenu),s=K(()=>i.config.multiple),c=K(()=>i.config.checkStrictly),u=K(()=>i.config.showPrefix),d=K(()=>i.checkedNodes[0]?.uid),f=K(()=>n.node.isDisabled),p=K(()=>n.node.isLeaf),m=K(()=>c.value&&!p.value||!f.value),h=K(()=>_(i.expandingNode)),g=K(()=>c.value&&i.checkedNodes.some(_)),_=e=>{let{level:t,uid:r}=n.node;return e?.pathNodes[t-1]?.uid===r},v=()=>{h.value||i.expandNode(n.node)},y=e=>{let{node:t}=n;e!==t.checked&&i.handleCheckChange(t,e)},b=()=>{i.lazyLoad(n.node,()=>{p.value||v()})},x=e=>{o.value&&(S(),!p.value&&r(`expand`,e))},S=()=>{let{node:e}=n;!m.value||e.loading||(e.loaded?v():b())},C=()=>{p.value&&!f.value&&!c.value&&!s.value?T(!0):(i.config.checkOnClickNode&&(s.value||c.value)||p.value&&i.config.checkOnClickLeaf)&&!f.value?w(!n.node.checked):o.value||S()},w=e=>{c.value?(y(e),n.node.loaded&&v()):T(e)},T=e=>{n.node.loaded?(y(e),!c.value&&v()):b()};return(t,n)=>(N(),W(`li`,{id:`${e.menuId}-${e.node.uid}`,role:`menuitem`,"aria-haspopup":!p.value,"aria-owns":p.value?void 0:e.menuId,"aria-expanded":h.value,tabindex:m.value?-1:void 0,class:F([Y(a).b(),Y(a).is(`selectable`,c.value),Y(a).is(`active`,e.node.checked),Y(a).is(`disabled`,!m.value),h.value&&`in-active-path`,g.value&&`in-checked-path`]),onMouseenter:x,onFocus:x,onClick:C},[G(` prefix `),s.value&&u.value?(N(),H(Y(ok),{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:f.value,onClick:n[0]||=kn(()=>{},[`stop`]),"onUpdate:modelValue":w},null,8,[`model-value`,`indeterminate`,`disabled`])):c.value&&u.value?(N(),H(Y(wk),{key:1,"model-value":d.value,label:e.node.uid,disabled:f.value,"onUpdate:modelValue":w,onClick:n[1]||=kn(()=>{},[`stop`])},{default:V(()=>[G(` + Add an empty element to avoid render label, + do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 + `),n[2]||=B(`span`,null,null,-1)]),_:1},8,[`model-value`,`label`,`disabled`])):p.value&&e.node.checked?(N(),H(Y(By),{key:2,class:F(Y(a).e(`prefix`))},{default:V(()=>[J(Y(Jv))]),_:1},8,[`class`])):G(`v-if`,!0),G(` content `),J(Y(kk),{node:e.node},null,8,[`node`]),G(` postfix `),p.value?G(`v-if`,!0):(N(),W(R,{key:3},[e.node.loading?(N(),H(Y(By),{key:0,class:F([Y(a).is(`loading`),Y(a).e(`postfix`)])},{default:V(()=>[J(Y(dy))]),_:1},8,[`class`])):(N(),H(Y(By),{key:1,class:F([`arrow-right`,Y(a).e(`postfix`)])},{default:V(()=>[J(Y(Hv))]),_:1},8,[`class`]))],64))],42,Ak))}}),Mk=z({name:`ElCascaderMenu`,__name:`menu`,props:{nodes:{type:Array,required:!0},index:{type:Number,required:!0},virtualScroll:{type:Boolean,required:!1,default:!1},itemSize:{type:Number,required:!1,default:34},height:{type:Number,required:!1,default:204}},setup(e,{expose:t}){let n=e,i=Xe(),a=$(`cascader-menu`),{t:o}=Dp(),s=rg(),c,u,d=l(Dk),f=q(),p=q(),h=K(()=>!n.nodes.length),g=K(()=>!d.initialLoaded),_=K(()=>`${s.value}-${n.index}`),v=()=>{let e;if(d.expandingNode){let{level:t,pathNodes:r}=d.expandingNode;n.index0&&(e=d.checkedNodes[0]?.pathNodes[n.index]?.uid)}else d.checkedNodes.length>0&&n.indext.uid===e)},y=e=>e?n.nodes.findIndex(t=>`${_.value}-${t.uid}`===e):-1,b=e=>{let t=Ts(e,0,n.nodes.length-1);p.value?.scrollToItem(t)},x=e=>{if(!n.nodes.length)return;let t=Ts(e,0,n.nodes.length-1);b(t),U(()=>{let e=i.vnode.el?.querySelector(`#${_.value}-${n.nodes[t].uid}`);e&&cp(e)})},C=e=>{c=e.target},w=e=>{if(!(!d.isHoverMenu||!c||!f.value))if(c.contains(e.target)){T();let t=i.vnode.el,{left:r}=t.getBoundingClientRect(),{offsetWidth:o,offsetHeight:s}=t,l=e.clientX-r,u=c.offsetTop,d=u+c.offsetHeight,m=n.virtualScroll?p.value?.states?.scrollOffset||0:t.querySelector(`.${a.e(`wrap`)}`)?.scrollTop||0;f.value.innerHTML=` + + + `}else u||=window.setTimeout(E,d.config.hoverThreshold)},T=()=>{u&&=(clearTimeout(u),void 0)},E=()=>{f.value&&(f.value.innerHTML=``,T())};return t({getActiveNodeIndex:v,getNodeIndexById:y,scrollToItem:b,focusNodeAt:x,virtualListRef:p,get $el(){return i.vnode.el}}),(t,n)=>e.virtualScroll?(N(),W(`div`,{key:_.value,class:F(Y(a).b()),onMousemove:w,onMouseleave:E},[J(Y(gO),{ref_key:`virtualListRef`,ref:p,height:e.height,"item-size":e.itemSize,data:e.nodes,total:e.nodes.length,"class-name":Y(a).e(`list`),"inner-element":`ul`,"inner-props":{role:`menu`,class:Y(a).is(`empty`,h.value)}},{default:V(({data:e,index:t,style:n})=>[(N(),H(jk,{key:e[t].uid,node:e[t],"menu-id":_.value,style:m(n),onExpand:C},null,8,[`node`,`menu-id`,`style`]))]),_:1},8,[`height`,`item-size`,`data`,`total`,`class-name`,`inner-props`]),g.value?(N(),W(`div`,{key:0,class:F(Y(a).e(`empty-text`))},[J(Y(By),{size:14,class:F(Y(a).is(`loading`))},{default:V(()=>[J(Y(dy))]),_:1},8,[`class`]),Ke(` `+S(Y(o)(`el.cascader.loading`)),1)],2)):h.value?(N(),W(`div`,{key:1,class:F(Y(a).e(`empty-text`))},[I(t.$slots,`empty`,{},()=>[Ke(S(Y(o)(`el.cascader.noData`)),1)])],2)):Y(d)?.isHoverMenu?(N(),W(R,{key:2},[G(` eslint-disable vue/html-self-closing `),(N(),W(`svg`,{ref_key:`hoverZone`,ref:f,class:F(Y(a).e(`hover-zone`))},null,2))],2112)):G(`v-if`,!0),G(` eslint-enable vue/html-self-closing `)],34)):(N(),H(Y(tC),{key:_.value,tag:`ul`,role:`menu`,class:F(Y(a).b()),"wrap-class":Y(a).e(`wrap`),"view-class":[Y(a).e(`list`),Y(a).is(`empty`,h.value)],onMousemove:w,onMouseleave:E},{default:V(()=>[(N(!0),W(R,null,r(e.nodes,e=>(N(),H(jk,{key:e.uid,node:e,"menu-id":_.value,onExpand:C},null,8,[`node`,`menu-id`]))),128)),g.value?(N(),W(`div`,{key:0,class:F(Y(a).e(`empty-text`))},[J(Y(By),{size:14,class:F(Y(a).is(`loading`))},{default:V(()=>[J(Y(dy))]),_:1},8,[`class`]),Ke(` `+S(Y(o)(`el.cascader.loading`)),1)],2)):h.value?(N(),W(`div`,{key:1,class:F(Y(a).e(`empty-text`))},[I(t.$slots,`empty`,{},()=>[Ke(S(Y(o)(`el.cascader.noData`)),1)])],2)):Y(d)?.isHoverMenu?(N(),W(R,{key:2},[G(` eslint-disable vue/html-self-closing `),(N(),W(`svg`,{ref_key:`hoverZone`,ref:f,class:F(Y(a).e(`hover-zone`))},null,2))],2112)):G(`v-if`,!0),G(` eslint-enable vue/html-self-closing `)]),_:3},8,[`class`,`wrap-class`,`view-class`]))}}),Nk=0,Pk=e=>{let t=[e],{parent:n}=e;for(;n;)t.unshift(n),n=n.parent;return t},Fk=class e{constructor(t,n,r,i=!1){this.data=t,this.config=n,this.parent=r,this.root=i,this.uid=Nk++,this.checked=!1,this.indeterminate=!1,this.loading=!1;let{value:a,label:o,children:s}=n,c=t[s],l=Pk(this);this.level=i?0:r?r.level+1:1,this.value=t[a],this.label=t[o],this.pathNodes=l,this.pathValues=l.map(e=>e.value),this.pathLabels=l.map(e=>e.label),this.childrenData=c,this.children=(c||[]).map(t=>new e(t,n,this)),this.loaded=!n.lazy||this.isLeaf||!Nd(c),this.text=``}get isDisabled(){let{data:e,parent:t,config:r}=this,{disabled:i,checkStrictly:a}=r;return(n(i)?i(e,this):!!e[i])||!a&&!!t?.isDisabled}get isLeaf(){let{data:e,config:t,childrenData:r,loaded:i}=this,{lazy:a,leaf:o}=t,s=n(o)?o(e,this):e[o];return Ad(s)?a&&!i?!1:!(A(r)&&r.length):!!s}get valueByOption(){return this.config.emitPath?this.pathValues:this.value}appendChild(t){let{childrenData:n,children:r}=this,i=new e(t,this.config,this);return A(n)?n.push(t):this.childrenData=[t],r.push(i),i}calcText(e,t){let n=e?this.pathLabels.join(t):this.label;return this.text=n,n}broadcast(e){this.children.forEach(t=>{t&&(t.broadcast(e),t.onParentCheck?.(e))})}emit(){let{parent:e}=this;e&&(e.onChildCheck?.(),e.emit())}onParentCheck(e){this.isDisabled||this.setCheckState(e)}onChildCheck(){let{children:e}=this,t=e.filter(e=>!e.isDisabled),n=t.length?t.every(e=>e.checked):!1;this.setCheckState(n)}setCheckState(e){let t=this.children.length,n=this.children.reduce((e,t)=>e+(t.checked?1:t.indeterminate?.5:0),0);this.checked=this.loaded&&this.children.filter(e=>!e.isDisabled).every(e=>e.loaded&&e.checked)&&e,this.indeterminate=this.loaded&&n!==t&&n>0}doCheck(e){if(this.checked===e)return;let{checkStrictly:t,multiple:n}=this.config;t||!n?this.checked=e:(this.broadcast(e),this.setCheckState(e),this.emit())}},Ik=(e,t)=>e.reduce((e,n)=>(n.isLeaf?e.push(n):(!t&&e.push(n),e=e.concat(Ik(n.children,t))),e),[]),Lk=class{constructor(e,t){this.config=t;let n=(e||[]).map(e=>new Fk(e,this.config));this.nodes=n,this.allNodes=Ik(n,!1),this.leafNodes=Ik(n,!0)}getNodes(){return this.nodes}getFlattedNodes(e){return e?this.leafNodes:this.allNodes}appendNode(e,t){let n=t?t.appendChild(e):new Fk(e,this.config);t||this.nodes.push(n),this.appendAllNodesAndLeafNodes(n)}appendNodes(e,t){e.length>0?e.forEach(e=>this.appendNode(e,t)):t&&t.isLeaf&&this.leafNodes.push(t)}appendAllNodesAndLeafNodes(e){this.allNodes.push(e),e.isLeaf&&this.leafNodes.push(e),e.children&&e.children.forEach(e=>{this.appendAllNodesAndLeafNodes(e)})}getNodeByValue(e,t=!1){return Fd(e)?null:this.getFlattedNodes(t).find(t=>sd(t.value,e)||sd(t.pathValues,e))||null}getSameNode(e){return e&&this.getFlattedNodes(!1).find(({value:t,level:n})=>sd(e.value,t)&&e.level===n)||null}},Rk=e=>{if(!e)return 0;let t=e.id.split(`-`);return Number(t[t.length-2])},zk=e=>{if(!e)return;let t=e.querySelector(`input`);t?t.click():ap(e)&&e.click()},Bk=(e,t)=>{let n=t.slice(0),r=n.map(e=>e.uid),i=e.reduce((e,t)=>{let i=r.indexOf(t.uid);return i>-1&&(e.push(t),n.splice(i,1),r.splice(i,1)),e},[]);return i.push(...n),i},Vk=Pv(z({name:`ElCascaderPanel`,__name:`index`,props:wD,emits:ED,setup(e,{expose:t,emit:n}){let i=e,a=n,o=!1,s=$(`cascader`),c=DD(i),l=le(),u,f=q(!0),p=q(!1),m=q([]),h=q(),g=q([]),_=q(),v=q([]),y=K(()=>c.value.expandTrigger===`hover`),b=K(()=>i.renderLabel||l.default),x=K(()=>i.virtualScroll),S=K(()=>i.itemSize),C=K(()=>i.height),w=()=>{let{options:e}=i,t=c.value;o=!1,u=new Lk(e,t),g.value=[u.getNodes()],t.lazy&&Nd(i.options)?(f.value=!1,T(void 0,e=>{e&&(u=new Lk(e,t),g.value=[u.getNodes()]),f.value=!0,te(!1,!0)})):te(!1,!0)},T=(e,t)=>{let n=c.value;e||=new Fk({},n,void 0,!0),e.loading=!0,n.lazyLoad(e,n=>{let r=e,i=r.root?null:r;r.loading=!1,r.loaded=!0,r.childrenData=r.childrenData||[],n&&u?.appendNodes(n,i),n&&t?.(n),e.level===0&&(p.value=!0)},()=>{e.loading=!1,e.loaded=!1,e.level===0&&(f.value=!0)})},E=(e,t)=>{let{level:n}=e,r=g.value.slice(0,n),i;e.isLeaf?i=e.pathNodes[n-2]:(i=e,r.push(e.children)),_.value?.uid!==i?.uid&&(_.value=e,g.value=r,!t&&a(`expand-change`,e?.pathValues||[]))},O=(e,t,n=!0)=>{let{checkStrictly:r,multiple:i}=c.value,s=v.value[0];o=!0,!i&&s?.doCheck(!1),e.doCheck(t),P(),n&&!i&&!r&&a(`close`),!n&&!i&&k(e)},k=e=>{e&&(e=e.parent,k(e),e&&E(e))},A=e=>u?.getFlattedNodes(e),ee=e=>A(e)?.filter(({checked:e})=>e!==!1),j=()=>{v.value.forEach(e=>e.doCheck(!1)),P(),g.value=g.value.slice(0,1),_.value=void 0,a(`expand-change`,[])},P=()=>{let{checkStrictly:e,multiple:t}=c.value,n=v.value,r=Bk(n,ee(!e)),i=r.map(e=>e.valueByOption);v.value=r,h.value=t?i:i[0]??null},te=(e=!1,t=!1)=>{let{modelValue:n}=i,{lazy:r,multiple:a,checkStrictly:s}=c.value,l=!s;if(!(!f.value||o||!t&&sd(n,h.value)))if(r&&!e){let e=pb(id(hb(n))).map(e=>u?.getNodeByValue(e)).filter(e=>!!e&&!e.loaded&&!e.loading);e.length?e.forEach(e=>{T(e,()=>te(!1,t))}):te(!0,t)}else ne(pb((a?hb(n):[n]).map(e=>u?.getNodeByValue(e,l))),t),h.value=Ml(n??void 0)},ne=(e,t=!0)=>{let{checkStrictly:n}=c.value,r=v.value,i=e.filter(e=>!!e&&(n||e.isLeaf)),a=u?.getSameNode(_.value),o=t&&a||i[0];o?o.pathNodes.forEach(e=>E(e,!0)):_.value=void 0,r.forEach(e=>e.doCheck(!1)),ve(i).forEach(e=>e.doCheck(!0)),v.value=i,U(re)},re=()=>{nf&&m.value.forEach(e=>{let t=e?.$el;if(t)if(x.value){let t=e?.getActiveNodeIndex?.();t!==void 0&&t>=0&&e?.scrollToItem?.(t)}else{let e=t.querySelector(`.${s.namespace.value}-scrollbar__wrap`),n=t.querySelector(`.${s.b(`node`)}.in-active-path`);if(!n){let e=t.querySelectorAll(`.${s.b(`node`)}.${s.is(`active`)}`);n=e[e.length-1]}zp(e,n)}})},ie=e=>{let t=e.target,n=Kp(e);switch(n){case X.up:case X.down:{e.preventDefault();let r=n===X.up?-1:1;if(x.value){let e=Rk(t),n=m.value[e];if(n){let i=n.getNodeIndexById(t.id);if(i>=0){let t=g.value[e]??[],a=t.length,o=i+r;for(;o>=0&&o{sd(e,t)||w()},{immediate:!0}),M(()=>i.options,w,{deep:!0}),M(()=>i.modelValue,()=>{o=!1,te()},{deep:!0}),M(()=>h.value,e=>{sd(e,i.modelValue)||(a(br,e),a(xr,e))}),D(()=>m.value=[]),d(()=>!Nd(i.modelValue)&&te()),t({menuList:m,menus:g,checkedNodes:v,handleKeyDown:ie,handleCheckChange:O,getFlattedNodes:A,getCheckedNodes:ee,clearCheckedNodes:j,calculateCheckedValue:P,scrollToExpandingNode:re,loadLazyRootNodes:()=>{p.value||!f.value||w()}}),(t,n)=>(N(),W(`div`,{class:F([Y(s).b(`panel`),Y(s).is(`bordered`,e.border)]),onKeydown:ie},[(N(!0),W(R,null,r(g.value,(e,n)=>(N(),H(Mk,{key:n,ref_for:!0,ref:e=>m.value[n]=e,index:n,nodes:[...e],"virtual-scroll":x.value,"item-size":S.value,height:C.value},{empty:V(()=>[I(t.$slots,`empty`)]),_:3},8,[`index`,`nodes`,`virtual-scroll`,`item-size`,`height`]))),128))],34))}})),Hk=Q({...SD,size:xv,placeholder:String,disabled:{type:Boolean,default:void 0},clearable:Boolean,clearIcon:{type:Ny,default:Qv},filterable:Boolean,filterMethod:{type:Z(Function),default:(e,t)=>e.text.includes(t)},separator:{type:String,default:` / `},showAllLevels:{type:Boolean,default:!0},collapseTags:Boolean,maxCollapseTags:{type:Number,default:1},collapseTagsTooltip:Boolean,maxCollapseTagsTooltipHeight:{type:[String,Number]},debounce:{type:Number,default:300},beforeFilter:{type:Z(Function),default:()=>!0},placement:{type:Z(String),values:fm,default:`bottom-start`},fallbackPlacements:{type:Z(Array),default:[`bottom-start`,`bottom`,`top-start`,`top`,`right`,`left`]},popperClass:fS.popperClass,popperStyle:fS.popperStyle,teleported:fS.teleported,effect:{type:Z(String),default:`light`},tagType:{...nE.type,default:`info`},tagEffect:{...nE.effect,default:`light`},validateEvent:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},showCheckedStrategy:{type:String,values:[`parent`,`child`],default:`child`},checkOnClickNode:Boolean,showPrefix:{type:Boolean,default:!0},fitInputWidth:{type:[Boolean,Number],default:!1},...kv}),Uk=e=>!0,Wk={[br]:Uk,[xr]:Uk,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,visibleChange:e=>jd(e),expandChange:e=>!!e,removeTag:e=>!!e},Gk=[`placeholder`],Kk=[`onClick`],qk=[`id`,`data-suggestion-index`,`onClick`],Jk=34,Yk=Pv(z({name:`ElCascader`,__name:`cascader`,props:Hk,emits:Wk,setup(e,{expose:t,emit:n}){let i={modifiers:[{name:`arrowPosition`,enabled:!0,phase:`main`,fn:({state:e})=>{let{modifiersData:t,placement:n}=e;[`right`,`left`,`bottom`,`top`].includes(n)||t.arrow&&(t.arrow.x=35)},requires:[`arrow`]}]},a=e,o=n,s=y(),c=le(),l=0,u=0,p=$(`cascader`),h=$(`input`),g={small:7,default:11,large:15},{t:_}=Dp(),{formItem:v}=ub(),b=lb(),{valueOnClear:x}=Av(a),{isComposing:C,handleComposition:w}=Tv({afterComposition(e){let t=e.target?.value;at(t)}}),T=q(),E=q(),D=q(),O=q(),k=q(),A=q(),ee=q(),j=q(!1),P=q(!1),te=q(!1),ne=q(``),re=q(``),ie=q([]),ae=q([]),oe=q(`100%`),se=K(()=>!!c[`suggestion-item`]),ce=K(()=>Ts(ae.value.length*a.itemSize,a.itemSize,a.height)),ue=K(()=>a.props.multiple?a.collapseTags?ie.value.slice(0,a.maxCollapseTags):ie.value:[]),de=K(()=>a.props.multiple&&a.collapseTags?ie.value.slice(a.maxCollapseTags):[]),fe=K(()=>s.style),pe=K(()=>a.placeholder??_(`el.cascader.placeholder`)),me=K(()=>re.value||ie.value.length>0||C.value?``:pe.value),he=cb(),z=K(()=>he.value===`small`?`small`:`default`),_e=K(()=>!!a.props.multiple),ve=K(()=>!a.filterable||_e.value),ye=K(()=>_e.value?re.value:ne.value),be=K(()=>k.value?.checkedNodes||[]),{wrapperRef:Se,isFocused:Ce,handleBlur:we}=wv(D,{disabled:b,beforeBlur(e){return T.value?.isFocusInsideContent(e)||E.value?.isFocusInsideContent(e)},afterBlur(){a.validateEvent&&v?.validate?.(`blur`).catch(ge)}}),Te=K(()=>!a.clearable||b.value||te.value||!P.value&&!Ce.value?!1:!!be.value.length),Ee=K(()=>{let{showAllLevels:e,separator:t}=a,n=be.value;return n.length?_e.value?``:n[0].calcText(e,t):``}),De=K(()=>v?.validateState||``),Oe=K({get(){return Ml(a.modelValue)},set(e){let t=e??x.value;o(br,t),o(xr,t),a.validateEvent&&v?.validate(`change`).catch(ge)}}),ke=K(()=>[p.b(),p.m(he.value),p.is(`disabled`,b.value),s.class]),Ae=K(()=>[h.e(`icon`),`icon-arrow-down`,p.is(`reverse`,j.value)]),je=K(()=>p.is(`focus`,Ce.value)),Me=K(()=>T.value?.popperRef?.contentRef),Ne=e=>{Ce.value&&we(new FocusEvent(`blur`,e)),Pe(!1)},Pe=e=>{b.value||(e??=!j.value,e!==j.value&&(j.value=e,D.value?.input?.setAttribute(`aria-expanded`,`${e}`),e?(Fe(),k.value&&U(k.value.scrollToExpandingNode)):a.filterable&&$e(),o(`visibleChange`,e)))},Fe=()=>{U(()=>{T.value?.updatePopper()})},Ie=()=>{te.value=!1},Le=e=>{let{showAllLevels:t,separator:n}=a;return{node:e,key:e.uid,text:e.calcText(t,n),hitState:!1,closable:!b.value&&!e.isDisabled}},Re=e=>{let t=e.node;t.doCheck(!1),k.value?.calculateCheckedValue(),o(`removeTag`,t.valueByOption)},ze=()=>{switch(a.showCheckedStrategy){case`child`:return be.value;case`parent`:{let e=Ye(!1),t=e.map(e=>e.value);return e.filter(e=>!e.parent||!t.includes(e.parent.value))}default:return[]}},Be=()=>{if(!_e.value)return;let e=ze(),t=[];e.forEach(e=>t.push(Le(e))),ie.value=t},Ve=()=>{let{filterMethod:e,showAllLevels:t,separator:n}=a,r=k.value?.getFlattedNodes(!a.props.checkStrictly)?.filter(r=>r.isDisabled?!1:(r.calcText(t,n),e(r,ye.value)));_e.value&&ie.value.forEach(e=>{e.hitState=!1}),te.value=!0,ae.value=r,U(()=>{a.virtualScroll&&ae.value.length>0&&ee.value?.scrollToItem(0),qe()}),Fe()},He=e=>{let t=A.value;return e?t?.querySelector(e)??void 0:t},Ue=()=>{let e;e=te.value&&A.value?He(`.${p.e(`suggestion-item`)}`):k.value?.$el.querySelector(`.${p.b(`node`)}[tabindex="-1"]`),e&&(e.focus(),!te.value&&e.getAttribute(`aria-haspopup`)===`true`&&e.click())},We=e=>{let t=He();if(!t)return;let n=Md(a.fitInputWidth)?`${a.fitInputWidth}px`:`${e}px`,r=e=>{a.fitInputWidth===!1?(e.style.width=``,e.style.minWidth=n):(e.style.width=n,e.style.minWidth=``)};if(r(t),a.virtualScroll){oe.value=a.fitInputWidth===!1?se.value?`${e}px`:`${Math.max(e,Je())}px`:n;return}let i=He(`.${p.e(`suggestion-list`)}`);i&&r(i)},Ke=()=>{if(!c.prefix)return 0;let e=D.value?.$el.querySelector(`.${h.e(`prefix`)}`);if(!e)return 0;let t=e.getBoundingClientRect().width;return t<=0?0:t+g[he.value||`default`]},qe=()=>{let e=D.value?.input,t=D.value?.$el;if(!nf||!e||!t)return;A.value&&We(t.getBoundingClientRect().width);let n=O.value;if(n){let t=ie.value.length>0?`${Math.max(n.offsetHeight,l)-2}px`:`${l}px`;e.style.height=t,n.style.left=`${Ke()}px`,Fe()}},Je=()=>{if(se.value||!ae.value.length)return 0;let e=document.createElement(`canvas`).getContext(`2d`);if(!e)return 0;let t=He(`.${p.e(`suggestion-item`)}`);if(!t||!nf)return 0;let n=getComputedStyle(t),r=Number.parseFloat(n.paddingLeft)+Number.parseFloat(n.paddingRight);e.font=`bold ${n.fontSize} ${n.fontFamily}`;let i=0,a=!1;for(let t of ae.value){let n=t.text||``,r=e.measureText(n);i=Math.max(i,r.width),t.checked&&!a&&(a=!0)}return i+r+(a?Jk:0)},Ye=e=>k.value?.getCheckedNodes(e),Xe=e=>{Fe(),o(`expandChange`,e)},Ze=e=>{if(!C.value)switch(Kp(e)){case X.enter:case X.numpadEnter:Pe();break;case X.down:Pe(!0),U(Ue),e.preventDefault();break;case X.esc:j.value===!0&&(e.preventDefault(),e.stopPropagation(),Pe(!1));break;case X.tab:Pe(!1);break}},Qe=()=>{k.value?.clearCheckedNodes(),!j.value&&a.filterable&&$e(),Pe(!1),o(`clear`)},$e=()=>{let{value:e}=Ee;ne.value=e,re.value=e},et=e=>{let{checked:t}=e;_e.value?k.value?.handleCheckChange(e,!t,!1):(!t&&k.value?.handleCheckChange(e,!0,!1),Pe(!1))},tt=e=>{let t=e.closest(`[data-suggestion-index]`)?.dataset.suggestionIndex;if(!t)return-1;let n=Number.parseInt(t,10);return Number.isNaN(n)||n<0||n>=ae.value.length?-1:n},nt=e=>{let t=e.target,n=Kp(e);switch(n){case X.up:case X.down:{e.preventDefault();let r=n===X.up?-1:1;if(a.virtualScroll&&ee.value){let e=tt(t);if(e>=0){let t=ae.value.length,n=(e+r+t)%t;ee.value.scrollToItem(n),U(()=>{let e=He(`#suggestion-${ae.value[n].uid}`);e&&cp(e)});return}}cp(op(t,r,`.${p.e(`suggestion-item`)}[tabindex="-1"]`));break}case X.enter:case X.numpadEnter:t.click();break}},rt=()=>{let e=ie.value[ie.value.length-1];u=re.value?0:u+1,!(!e||!u||a.collapseTags&&ie.value.length>1)&&(e.hitState?Re(e):e.hitState=!0)},it=bf(()=>{let{value:e}=ye;if(!e)return;let t=a.beforeFilter(e);f(t)?t.then(Ve).catch(()=>{}):t===!1?Ie():Ve()},K(()=>a.debounce)),at=(e,t)=>{if(!j.value&&Pe(!0),!t?.isComposing)if(e)it();else{let e=a.beforeFilter(``);f(e)&&e.catch(()=>{}),Ie()}},ot=e=>Number.parseFloat(Vf(h.cssVarName(`input-height`),e).value)-2;return M(te,Fe),M([be,b,()=>a.collapseTags,()=>a.maxCollapseTags],Be),M(ie,()=>{U(()=>qe())}),M(he,async()=>{await U();let e=D.value.input;l=ot(e)||l,qe()}),M(Ee,$e,{immediate:!0}),M(()=>j.value,e=>{e&&a.props.lazy&&a.props.lazyLoad&&k.value?.loadLazyRootNodes()}),d(()=>{let e=D.value.input,t=D.value.$el,n=ot(e);l=e.offsetHeight||n,Uf(t,qe)}),t({getCheckedNodes:Ye,cascaderPanelRef:k,togglePopperVisible:Pe,contentRef:Me,presentText:Ee,focus:()=>{D.value?.focus()},blur:()=>{D.value?.blur()}}),(t,n)=>(N(),H(Y(ES),{ref_key:`tooltipRef`,ref:T,visible:j.value,teleported:e.teleported,"popper-class":[Y(p).e(`dropdown`),e.popperClass],"popper-style":e.popperStyle,"popper-options":i,"fallback-placements":e.fallbackPlacements,"stop-popper-mouse-event":!1,"gpu-acceleration":!1,placement:e.placement,transition:`${Y(p).namespace.value}-zoom-in-top`,effect:e.effect,pure:``,persistent:e.persistent,onHide:Ie},{default:V(()=>[Ge((N(),W(`div`,{ref_key:`wrapperRef`,ref:Se,class:F(ke.value),style:m(fe.value),onClick:n[8]||=()=>Pe(ve.value?void 0:!0),onKeydown:Ze,onMouseenter:n[9]||=e=>P.value=!0,onMouseleave:n[10]||=e=>P.value=!1},[J(Y(zS),{ref_key:`inputRef`,ref:D,modelValue:ne.value,"onUpdate:modelValue":n[1]||=e=>ne.value=e,placeholder:me.value,readonly:ve.value,disabled:Y(b),"validate-event":!1,size:Y(he),class:F(je.value),tabindex:_e.value&&e.filterable&&!Y(b)?-1:void 0,onCompositionstart:Y(w),onCompositionupdate:Y(w),onCompositionend:Y(w),onInput:at},xe({suffix:V(()=>[Te.value?(N(),H(Y(By),{key:`clear`,class:F([Y(h).e(`icon`),`icon-circle-close`]),onClick:kn(Qe,[`stop`])},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`])):(N(),H(Y(By),{key:`arrow-down`,class:F(Ae.value),onClick:n[0]||=kn(e=>Pe(),[`stop`])},{default:V(()=>[J(Y(Bv))]),_:1},8,[`class`]))]),_:2},[t.$slots.prefix?{name:`prefix`,fn:V(()=>[I(t.$slots,`prefix`)]),key:`0`}:void 0]),1032,[`modelValue`,`placeholder`,`readonly`,`disabled`,`size`,`class`,`tabindex`,`onCompositionstart`,`onCompositionupdate`,`onCompositionend`]),_e.value?(N(),W(`div`,{key:0,ref_key:`tagWrapper`,ref:O,class:F([Y(p).e(`tags`),Y(p).is(`validate`,!!De.value)])},[I(t.$slots,`tag`,{data:ie.value,deleteTag:Re},()=>[(N(!0),W(R,null,r(ue.value,t=>(N(),H(Y(oE),{key:t.key,type:e.tagType,size:z.value,effect:e.tagEffect,hit:t.hitState,closable:t.closable,"disable-transitions":``,onClose:e=>Re(t)},{default:V(()=>[B(`span`,null,S(t.text),1)]),_:2},1032,[`type`,`size`,`effect`,`hit`,`closable`,`onClose`]))),128))]),e.collapseTags&&ie.value.length>e.maxCollapseTags?(N(),H(Y(ES),{key:0,ref_key:`tagTooltipRef`,ref:E,disabled:j.value||!e.collapseTagsTooltip,"fallback-placements":[`bottom`,`top`,`right`,`left`],placement:`bottom`,"popper-class":e.popperClass,"popper-style":e.popperStyle,effect:e.effect,persistent:e.persistent},{default:V(()=>[J(Y(oE),{closable:!1,size:z.value,type:e.tagType,effect:e.tagEffect,"disable-transitions":``},{default:V(()=>[B(`span`,{class:F(Y(p).e(`tags-text`))},` + `+S(ie.value.length-e.maxCollapseTags),3)]),_:1},8,[`size`,`type`,`effect`])]),content:V(()=>[J(Y(tC),{"max-height":e.maxCollapseTagsTooltipHeight},{default:V(()=>[B(`div`,{class:F(Y(p).e(`collapse-tags`))},[(N(!0),W(R,null,r(de.value,(t,n)=>(N(),W(`div`,{key:n,class:F(Y(p).e(`collapse-tag`))},[(N(),H(Y(oE),{key:t.key,class:`in-tooltip`,type:e.tagType,size:z.value,effect:e.tagEffect,hit:t.hitState,closable:t.closable,"disable-transitions":``,onClose:e=>Re(t)},{default:V(()=>[B(`span`,null,S(t.text),1)]),_:2},1032,[`type`,`size`,`effect`,`hit`,`closable`,`onClose`]))],2))),128))],2)]),_:1},8,[`max-height`])]),_:1},8,[`disabled`,`popper-class`,`popper-style`,`effect`,`persistent`])):G(`v-if`,!0),e.filterable&&!Y(b)?Ge((N(),W(`input`,{key:1,"onUpdate:modelValue":n[2]||=e=>re.value=e,type:`text`,class:F(Y(p).e(`search-input`)),placeholder:Ee.value?``:pe.value,onInput:n[3]||=e=>at(re.value,e),onClick:n[4]||=kn(e=>Pe(!0),[`stop`]),onKeydown:jn(rt,[`delete`]),onCompositionstart:n[5]||=(...e)=>Y(w)&&Y(w)(...e),onCompositionupdate:n[6]||=(...e)=>Y(w)&&Y(w)(...e),onCompositionend:n[7]||=(...e)=>Y(w)&&Y(w)(...e)},null,42,Gk)),[[xn,re.value]]):G(`v-if`,!0)],2)):G(`v-if`,!0)],38)),[[Y(eT),Ne,Me.value]])]),content:V(()=>[t.$slots.header?(N(),W(`div`,{key:0,class:F(Y(p).e(`header`)),onClick:n[11]||=kn(()=>{},[`stop`])},[I(t.$slots,`header`)],2)):G(`v-if`,!0),Ge(J(Y(Vk),{ref_key:`cascaderPanelRef`,ref:k,modelValue:Oe.value,"onUpdate:modelValue":n[12]||=e=>Oe.value=e,options:e.options,props:a.props,border:!1,"render-label":t.$slots.default,"virtual-scroll":e.virtualScroll,"item-size":e.itemSize,height:e.height,onExpandChange:Xe,onClose:n[13]||=e=>t.$nextTick(()=>Pe(!1))},{empty:V(()=>[I(t.$slots,`empty`)]),_:3},8,[`modelValue`,`options`,`props`,`render-label`,`virtual-scroll`,`item-size`,`height`]),[[jt,!te.value]]),e.filterable?(N(),W(R,{key:1},[e.virtualScroll?Ge((N(),W(`div`,{key:1,ref_key:`suggestionPanel`,ref:A,class:F(Y(p).e(`suggestion-panel`)),onKeydown:nt},[Ge(J(Y(gO),{ref_key:`suggestionVirtualListRef`,ref:ee,height:ce.value,"item-size":e.itemSize,data:ae.value,total:ae.value.length,"class-name":Y(p).e(`suggestion-list`),"inner-element":`ul`,"inner-width":oe.value},{default:V(({data:e,index:n,style:r})=>[(N(),W(`li`,{id:`suggestion-${e[n].uid}`,key:e[n].uid,"data-suggestion-index":n,class:F([Y(p).e(`suggestion-item`),Y(p).is(`checked`,e[n].checked)]),tabindex:-1,style:m(r),onClick:t=>et(e[n])},[I(t.$slots,`suggestion-item`,{item:e[n]},()=>[B(`span`,null,S(e[n].text),1),e[n].checked?(N(),H(Y(By),{key:0},{default:V(()=>[J(Y(Jv))]),_:1})):G(`v-if`,!0)])],14,qk))]),_:3},8,[`height`,`item-size`,`data`,`total`,`class-name`,`inner-width`]),[[jt,ae.value.length]]),ae.value.length?G(`v-if`,!0):I(t.$slots,`empty`,{key:0},()=>[B(`ul`,{class:F(Y(p).e(`suggestion-list`))},[B(`li`,{class:F(Y(p).e(`empty-text`))},S(Y(_)(`el.cascader.noMatch`)),3)],2)])],34)),[[jt,te.value]]):Ge((N(),H(Y(tC),{key:0,ref:e=>A.value=e?.$el,tag:`ul`,class:F(Y(p).e(`suggestion-panel`)),"wrap-class":Y(p).e(`suggestion-wrap`),"view-class":Y(p).e(`suggestion-list`),onKeydown:nt},{default:V(()=>[ae.value.length?(N(!0),W(R,{key:0},r(ae.value,e=>(N(),W(`li`,{key:e.uid,class:F([Y(p).e(`suggestion-item`),Y(p).is(`checked`,e.checked)]),tabindex:-1,onClick:t=>et(e)},[I(t.$slots,`suggestion-item`,{item:e},()=>[B(`span`,null,S(e.text),1),e.checked?(N(),H(Y(By),{key:0},{default:V(()=>[J(Y(Jv))]),_:1})):G(`v-if`,!0)])],10,Kk))),128)):I(t.$slots,`empty`,{key:1},()=>[B(`li`,{class:F(Y(p).e(`empty-text`))},S(Y(_)(`el.cascader.noMatch`)),3)])]),_:3},8,[`class`,`wrap-class`,`view-class`])),[[jt,te.value]])],64)):G(`v-if`,!0),t.$slots.footer?(N(),W(`div`,{key:2,class:F(Y(p).e(`footer`)),onClick:n[14]||=kn(()=>{},[`stop`])},[I(t.$slots,`footer`)],2)):G(`v-if`,!0)]),_:3},8,[`visible`,`teleported`,`popper-class`,`popper-style`,`fallback-placements`,`placement`,`transition`,`effect`,`persistent`]))}})),Xk=Pv(z({name:`ElCheckTag`,__name:`check-tag`,props:Q({checked:Boolean,disabled:Boolean,type:{type:String,values:[`primary`,`success`,`info`,`warning`,`danger`],default:`primary`}}),emits:{"update:checked":e=>jd(e),[xr]:e=>jd(e)},setup(e,{emit:t}){let n=e,r=t,i=$(`check-tag`),a=K(()=>[i.b(),i.is(`checked`,n.checked),i.is(`disabled`,n.disabled),i.m(n.type||`primary`)]),o=()=>{if(n.disabled)return;let e=!n.checked;r(xr,e),r(`update:checked`,e)};return(e,t)=>(N(),W(`span`,{class:F(a.value),onClick:o},[I(e.$slots,`default`)],2))}})),Zk=Q({tag:{type:String,default:`div`},span:{type:Number,default:24},offset:{type:Number,default:0},pull:{type:Number,default:0},push:{type:Number,default:0},xs:{type:Z([Number,Object]),default:()=>DS({})},sm:{type:Z([Number,Object]),default:()=>DS({})},md:{type:Z([Number,Object]),default:()=>DS({})},lg:{type:Z([Number,Object]),default:()=>DS({})},xl:{type:Z([Number,Object]),default:()=>DS({})}}),Qk=Q({tag:{type:String,default:`div`},gutter:{type:Number,default:0},justify:{type:String,values:[`start`,`center`,`end`,`space-around`,`space-between`,`space-evenly`],default:`start`},align:{type:String,values:[`top`,`middle`,`bottom`]}}),$k=Symbol(`rowContextKey`),eA=Pv(z({name:`ElRow`,__name:`row`,props:Qk,setup(e){let t=e,n=$(`row`);Qe($k,{gutter:K(()=>t.gutter)});let r=K(()=>{let e={};return t.gutter&&(e.marginRight=e.marginLeft=`-${t.gutter/2}px`),e}),i=K(()=>[n.b(),n.is(`justify-${t.justify}`,t.justify!==`start`),n.is(`align-${t.align}`,!!t.align)]);return(t,n)=>(N(),H(L(e.tag),{class:F(i.value),style:m(r.value)},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`class`,`style`]))}})),tA=Pv(z({name:`ElCol`,__name:`col`,props:Zk,setup(e){let t=e,{gutter:n}=l($k,{gutter:K(()=>0)}),r=$(`col`),i=K(()=>{let e={};return n.value&&(e.paddingLeft=e.paddingRight=`${n.value/2}px`),e}),a=K(()=>{let e=[];return[`span`,`offset`,`pull`,`push`].forEach(n=>{let i=t[n];Md(i)&&(n===`span`?e.push(r.b(`${t[n]}`)):i>0&&e.push(r.b(`${n}-${t[n]}`)))}),[`xs`,`sm`,`md`,`lg`,`xl`].forEach(n=>{Md(t[n])?e.push(r.b(`${n}-${t[n]}`)):E(t[n])&&Object.entries(t[n]).forEach(([t,i])=>{e.push(t===`span`?r.b(`${n}-${i}`):r.b(`${n}-${t}-${i}`))})}),n.value&&e.push(r.is(`guttered`)),[r.b(),e]});return(t,n)=>(N(),H(L(e.tag),{class:F(a.value),style:m(i.value)},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`class`,`style`]))}})),nA=e=>Md(e)||P(e)||A(e),rA=Q({accordion:Boolean,modelValue:{type:Z([Array,String,Number]),default:()=>DS([])},expandIconPosition:{type:Z([String]),default:`right`},beforeCollapse:{type:Z(Function)}}),iA={[br]:nA,[xr]:nA},aA=Symbol(`collapseContextKey`),oA=Q({title:{type:String,default:``},name:{type:Z([String,Number]),default:void 0},icon:{type:Ny,default:Hv},disabled:Boolean}),sA=Pv(z({name:`ElCollapseTransition`,__name:`collapse-transition`,setup(e){let t=$(`collapse-transition`),n=e=>{e.style.maxHeight=``,e.style.overflow=e.dataset.oldOverflow,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom},r={beforeEnter(e){e.dataset||={},e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.style.height&&(e.dataset.elExistsHeight=e.style.height),e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0},enter(e){requestAnimationFrame(()=>{e.dataset.oldOverflow=e.style.overflow,e.dataset.elExistsHeight?e.style.maxHeight=e.dataset.elExistsHeight:e.scrollHeight===0?e.style.maxHeight=0:e.style.maxHeight=`${e.scrollHeight}px`,e.style.paddingTop=e.dataset.oldPaddingTop,e.style.paddingBottom=e.dataset.oldPaddingBottom,e.style.overflow=`hidden`})},afterEnter(e){e.style.maxHeight=``,e.style.overflow=e.dataset.oldOverflow},enterCancelled(e){n(e)},beforeLeave(e){e.dataset||={},e.dataset.oldPaddingTop=e.style.paddingTop,e.dataset.oldPaddingBottom=e.style.paddingBottom,e.dataset.oldOverflow=e.style.overflow,e.style.maxHeight=`${e.scrollHeight}px`,e.style.overflow=`hidden`},leave(e){e.scrollHeight!==0&&(e.style.maxHeight=0,e.style.paddingTop=0,e.style.paddingBottom=0)},afterLeave(e){n(e)},leaveCancelled(e){n(e)}};return(e,n)=>(N(),H(pt,k({name:Y(t).b()},Re(r)),{default:V(()=>[I(e.$slots,`default`)]),_:3},16,[`name`]))}})),cA=`ElCollapse`,lA=(e,t)=>{let n=q(Cs(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(br,i),t(xr,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return M(()=>e.modelValue,()=>n.value=Cs(e.modelValue),{deep:!0}),Qe(aA,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[f(r),jd(r)].includes(!0)||qd(cA,"beforeCollapse must return type `Promise` or `boolean`"),f(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{Jd(cA,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},uA=e=>{let t=$(`collapse`);return{rootKls:K(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},dA=z({name:`ElCollapse`,__name:`collapse`,props:rA,emits:iA,setup(e,{expose:t,emit:n}){let r=e,{activeNames:i,setActiveNames:a}=lA(r,n),{rootKls:o}=uA(r);return t({activeNames:i,setActiveNames:a}),(e,t)=>(N(),W(`div`,{class:F(Y(o))},[I(e.$slots,`default`)],2))}}),fA=e=>{let t=l(aA),{namespace:n}=$(`collapse`),r=q(!1),i=q(!1),a=ng(),o=K(()=>a.current++),s=K(()=>e.name??`${n.value}-id-${a.prefix}-${Y(o)}`);return{focusing:r,id:o,isActive:K(()=>t?.activeNames.value.includes(Y(s))),handleFocus:()=>{setTimeout(()=>{i.value?i.value=!1:r.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(Y(s)),r.value=!1,i.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(Y(s)))}}},pA=(e,{focusing:t,isActive:n,id:r})=>{let i=$(`collapse`),a=K(()=>[i.b(`item`),i.is(`active`,Y(n)),i.is(`disabled`,e.disabled)]),o=K(()=>[i.be(`item`,`header`),i.is(`active`,Y(n)),{focusing:Y(t)&&!e.disabled}]),s=K(()=>[i.be(`item`,`arrow`),i.is(`active`,Y(n))]);return{itemTitleKls:K(()=>[i.be(`item`,`title`)]),arrowKls:s,headKls:o,rootKls:a,itemWrapperKls:K(()=>i.be(`item`,`wrap`)),itemContentKls:K(()=>i.be(`item`,`content`)),scopedContentId:K(()=>i.b(`content-${Y(r)}`)),scopedHeadId:K(()=>i.b(`head-${Y(r)}`))}},mA=[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`aria-disabled`],hA=[`id`,`aria-hidden`,`aria-labelledby`],gA=z({name:`ElCollapseItem`,__name:`collapse-item`,props:oA,setup(e,{expose:t}){let n=e,{focusing:r,id:i,isActive:a,handleFocus:o,handleHeaderClick:s,handleEnterClick:c}=fA(n),{arrowKls:l,headKls:u,rootKls:d,itemTitleKls:f,itemWrapperKls:p,itemContentKls:m,scopedContentId:h,scopedHeadId:g}=pA(n,{focusing:r,isActive:a,id:i});return t({isActive:a}),(t,n)=>(N(),W(`div`,{class:F(Y(d))},[B(`div`,{id:Y(g),class:F(Y(u)),"aria-expanded":Y(a),"aria-controls":Y(h),"aria-describedby":Y(h),tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,role:`button`,onClick:n[0]||=(...e)=>Y(s)&&Y(s)(...e),onKeydown:n[1]||=jn(kn((...e)=>Y(c)&&Y(c)(...e),[`stop`]),[`space`,`enter`]),onFocus:n[2]||=(...e)=>Y(o)&&Y(o)(...e),onBlur:n[3]||=e=>r.value=!1},[B(`span`,{class:F(Y(f))},[I(t.$slots,`title`,{isActive:Y(a)},()=>[Ke(S(e.title),1)])],2),I(t.$slots,`icon`,{isActive:Y(a)},()=>[J(Y(By),{class:F(Y(l))},{default:V(()=>[(N(),H(L(e.icon)))]),_:1},8,[`class`])])],42,mA),J(Y(sA),null,{default:V(()=>[Ge(B(`div`,{id:Y(h),role:`region`,class:F(Y(p)),"aria-hidden":!Y(a),"aria-labelledby":Y(g)},[B(`div`,{class:F(Y(m))},[I(t.$slots,`default`)],2)],10,hA),[[jt,Y(a)]])]),_:3})],2))}}),_A=Pv(dA,{CollapseItem:gA}),vA=Lv(gA),yA=Q({modelValue:{type:Z(String),default:void 0},border:{type:Boolean,default:!0},showAlpha:Boolean,colorFormat:{type:Z(String)},disabled:Boolean,predefine:{type:Z(Array)},validateEvent:{type:Boolean,default:!0},hueSliderClass:{type:Z([String,Array,Object])},hueSliderStyle:{type:Z([String,Array,Object,Boolean]),default:void 0}}),bA={[br]:e=>P(e)||cd(e)},xA=Symbol(`colorCommonPickerKey`),SA=Symbol(`colorPickerPanelContextKey`),CA=Q({color:{type:Z(Object),required:!0},vertical:Boolean,disabled:Boolean}),wA=CA,TA=e=>{let t=0,n=e;for(;n;)t+=n.offsetTop,n=n.offsetParent;return t},EA=(e,t)=>Math.abs(TA(e)-TA(t)),DA=e=>{let t,n;return e.type===`touchend`?(n=e.changedTouches[0].clientY,t=e.changedTouches[0].clientX):e.type.startsWith(`touch`)?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},OA=!1;function kA(e,t){if(!nf)return;let n=function(e){t.drag?.(e)},r=function(e){document.removeEventListener(`mousemove`,n),document.removeEventListener(`mouseup`,r),document.removeEventListener(`touchmove`,n),document.removeEventListener(`touchend`,r),document.onselectstart=null,document.ondragstart=null,OA=!1,t.end?.(e)},i=function(e){OA||(document.onselectstart=()=>!1,document.ondragstart=()=>!1,document.addEventListener(`mousemove`,n),document.addEventListener(`mouseup`,r),document.addEventListener(`touchmove`,n),document.addEventListener(`touchend`,r),OA=!0,t.start?.(e))};e.addEventListener(`mousedown`,i),e.addEventListener(`touchstart`,i,{passive:!1})}var AA=(e,{key:t,minValue:n,maxValue:r})=>{let i=Xe(),a=Le(),o=Le(),s=K(()=>e.color.get(t));function c(t){e.disabled||(t.target!==a.value&&l(t),a.value?.focus())}function l(n){if(!o.value||!a.value||e.disabled)return;let s=i.vnode.el.getBoundingClientRect(),{clientX:c,clientY:l}=DA(n),u;if(e.vertical){let e=l-s.top;e=Math.max(a.value.offsetHeight/2,e),e=Math.min(e,s.height-a.value.offsetHeight/2),u=Math.round((e-a.value.offsetHeight/2)/(s.height-a.value.offsetHeight)*r)}else{let e=c-s.left;e=Math.max(a.value.offsetWidth/2,e),e=Math.min(e,s.width-a.value.offsetWidth/2),u=Math.round((e-a.value.offsetWidth/2)/(s.width-a.value.offsetWidth)*r)}e.color.set(t,u)}function u(i){if(e.disabled)return;let{shiftKey:a}=i,o=Kp(i),s=a?10:1,c=t===`hue`?-1:1,l=!0;switch(o){case X.left:case X.down:d(-s*c);break;case X.right:case X.up:d(s*c);break;case X.home:e.color.set(t,t===`hue`?r:n);break;case X.end:e.color.set(t,t===`hue`?n:r);break;case X.pageDown:d(-4*c);break;case X.pageUp:d(4*c);break;default:l=!1;break}l&&i.preventDefault()}function d(i){let a=s.value+i;a=ar?r:a,e.color.set(t,a)}return{thumb:a,bar:o,currentValue:s,handleDrag:l,handleClick:c,handleKeydown:u}},jA=(e,{namespace:t,maxValue:n,bar:r,thumb:i,currentValue:a,handleDrag:o,getBackground:s})=>{let c=Xe(),l=$(t),u=q(0),f=q(0),p=q();function m(){if(!i.value||e.vertical)return 0;let t=c.vnode.el,r=a.value;return t?Math.round(r*(t.offsetWidth-i.value.offsetWidth/2)/n):0}function h(){if(!i.value)return 0;let t=c.vnode.el;if(!e.vertical)return 0;let r=a.value;return t?Math.round(r*(t.offsetHeight-i.value.offsetHeight/2)/n):0}function g(){u.value=m(),f.value=h(),p.value=s?.()}d(()=>{if(!r.value||!i.value)return;let e={drag:e=>{o(e)},end:e=>{o(e)}};kA(r.value,e),kA(i.value,e),g()}),M(a,()=>g()),M(()=>e.color.value,()=>g());let _=K(()=>[l.b(),l.is(`vertical`,e.vertical),l.is(`disabled`,e.disabled)]),v=K(()=>l.e(`bar`)),y=K(()=>l.e(`thumb`));return{rootKls:_,barKls:v,barStyle:K(()=>({background:p.value})),thumbKls:y,thumbStyle:K(()=>({left:bp(u.value),top:bp(f.value)})),thumbLeft:u,thumbTop:f,update:g}},MA=[`aria-label`,`aria-valuenow`,`aria-valuetext`,`aria-orientation`,`tabindex`,`aria-disabled`],NA=0,PA=100,FA=z({name:`ElColorAlphaSlider`,__name:`alpha-slider`,props:CA,setup(e,{expose:t}){let n=e,{currentValue:r,bar:i,thumb:a,handleDrag:o,handleClick:s,handleKeydown:c}=AA(n,{key:`alpha`,minValue:NA,maxValue:PA}),{rootKls:l,barKls:u,barStyle:d,thumbKls:f,thumbStyle:p,update:h}=jA(n,{namespace:`color-alpha-slider`,maxValue:PA,currentValue:r,bar:i,thumb:a,handleDrag:o,getBackground:y}),{t:g}=Dp(),_=K(()=>g(`el.colorpicker.alphaLabel`)),v=K(()=>g(`el.colorpicker.alphaDescription`,{alpha:r.value,color:n.color.value}));function y(){if(n.color&&n.color.value){let{r:e,g:t,b:r}=n.color.toRgb();return`linear-gradient(to right, rgba(${e}, ${t}, ${r}, 0) 0%, rgba(${e}, ${t}, ${r}, 1) 100%)`}return``}return t({update:h,bar:i,thumb:a}),(t,n)=>(N(),W(`div`,{class:F(Y(l))},[B(`div`,{ref_key:`bar`,ref:i,class:F(Y(u)),style:m(Y(d)),onClick:n[0]||=(...e)=>Y(s)&&Y(s)(...e)},null,6),B(`div`,{ref_key:`thumb`,ref:a,class:F(Y(f)),style:m(Y(p)),"aria-label":_.value,"aria-valuenow":Y(r),"aria-valuetext":v.value,"aria-orientation":e.vertical?`vertical`:`horizontal`,"aria-valuemin":NA,"aria-valuemax":PA,role:`slider`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,onKeydown:n[1]||=(...e)=>Y(c)&&Y(c)(...e)},null,46,MA)],2))}}),IA=[`aria-label`,`aria-valuenow`,`aria-valuetext`,`aria-orientation`,`tabindex`,`aria-disabled`],LA=0,RA=360,zA=z({name:`ElColorHueSlider`,__name:`hue-slider`,props:wA,setup(e,{expose:t}){let n=e,{currentValue:r,bar:i,thumb:a,handleDrag:o,handleClick:s,handleKeydown:c}=AA(n,{key:`hue`,minValue:LA,maxValue:RA}),{rootKls:l,barKls:u,thumbKls:d,thumbStyle:f,thumbTop:p,update:h}=jA(n,{namespace:`color-hue-slider`,maxValue:RA,currentValue:r,bar:i,thumb:a,handleDrag:o}),{t:g}=Dp(),_=K(()=>g(`el.colorpicker.hueLabel`)),v=K(()=>g(`el.colorpicker.hueDescription`,{hue:r.value,color:n.color.value}));return t({bar:i,thumb:a,thumbTop:p,update:h}),(t,n)=>(N(),W(`div`,{class:F(Y(l))},[B(`div`,{ref_key:`bar`,ref:i,class:F(Y(u)),onClick:n[0]||=(...e)=>Y(s)&&Y(s)(...e)},null,2),B(`div`,{ref_key:`thumb`,ref:a,class:F(Y(d)),style:m(Y(f)),"aria-label":_.value,"aria-valuenow":Y(r),"aria-valuetext":v.value,"aria-orientation":e.vertical?`vertical`:`horizontal`,"aria-valuemin":LA,"aria-valuemax":RA,role:`slider`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,onKeydown:n[1]||=(...e)=>Y(c)&&Y(c)(...e)},null,46,IA)],2))}}),BA=Q({colors:{type:Z(Array),required:!0},color:{type:Z(Object),required:!0},enableAlpha:{type:Boolean,required:!0},disabled:Boolean}),VA=class{constructor(e={}){this._hue=0,this._saturation=100,this._value=100,this._alpha=100,this._tiny=new gw,this._isValid=!1,this.enableAlpha=!1,this.format=``,this.value=``;for(let t in e)Ye(e,t)&&(this[t]=e[t]);e.value?this.fromString(e.value):this.doOnChange()}set(e,t){if(arguments.length===1&&typeof e==`object`){for(let t in e)Ye(e,t)&&this.set(t,e[t]);return}this[`_${e}`]=t,this._isValid=!0,this.doOnChange()}get(e){return[`hue`,`saturation`,`value`,`alpha`].includes(e)?Math.round(this[`_${e}`]):this[`_${e}`]}toRgb(){return this._isValid?this._tiny.toRgb():{r:255,g:255,b:255,a:0}}fromString(e){let t=new gw(e);if(this._isValid=t.isValid,t.isValid){let{h:e,s:n,v:r,a:i}=t.toHsv();this._hue=e,this._saturation=n*100,this._value=r*100,this._alpha=i*100}else this._hue=0,this._saturation=100,this._value=100,this._alpha=100;this.doOnChange()}clear(){this._isValid=!1,this.value=``,this._hue=0,this._saturation=100,this._value=100,this._alpha=100}compare(e){let t=new gw({h:e._hue,s:e._saturation/100,v:e._value/100,a:e._alpha/100});return this._tiny.equals(t)}doOnChange(){let{_hue:e,_saturation:t,_value:n,_alpha:r,format:i,enableAlpha:a}=this,o=i||(a?`rgb`:`hex`);i===`hex`&&a&&(o=`hex8`),this._tiny=new gw({h:e,s:t/100,v:n/100,a:r/100}),this.value=this._isValid?this._tiny.toString(o):``}},HA=t=>{let{currentColor:n}=l(SA),r=q(a(t.colors,t.color));M(()=>n.value,e=>{let n=new VA({value:e,enableAlpha:t.enableAlpha});r.value.forEach(e=>{e.selected=n.compare(e)})}),e(()=>{r.value=a(t.colors,t.color)});function i(e){t.color.fromString(t.colors[e])}function a(e,n){return e.map(e=>{let r=new VA({value:e,enableAlpha:t.enableAlpha});return r.selected=r.compare(n),r})}return{rgbaColors:r,handleSelect:i}},UA=e=>{let t=$(`color-predefine`),n=K(()=>[t.b(),t.is(`disabled`,e.disabled)]),r=K(()=>t.e(`colors`));function i(e){return[t.e(`color-selector`),t.is(`alpha`,e.get(`alpha`)<100),{selected:e.selected}]}return{rootKls:n,colorsKls:r,colorSelectorKls:i}},WA=[`disabled`,`aria-label`,`onClick`],GA=z({name:`ElColorPredefine`,__name:`predefine`,props:BA,setup(e){let t=e,{rgbaColors:n,handleSelect:i}=HA(t),{rootKls:a,colorsKls:o,colorSelectorKls:s}=UA(t),{t:c}=Dp(),l=e=>c(`el.colorpicker.predefineDescription`,{value:e});return(t,c)=>(N(),W(`div`,{class:F(Y(a))},[B(`div`,{class:F(Y(o))},[(N(!0),W(R,null,r(Y(n),(t,n)=>(N(),W(`button`,{key:e.colors[n],type:`button`,disabled:e.disabled,"aria-label":l(t.value),class:F(Y(s)(t)),onClick:e=>Y(i)(n)},[B(`div`,{style:m({backgroundColor:t.value})},null,4)],10,WA))),128))],2)],2))}}),KA=Q({color:{type:Z(Object),required:!0},disabled:Boolean}),qA=e=>{let t=Xe(),n=q(),r=q(0),i=q(0),a=q(`hsl(0, 100%, 50%)`),o=K(()=>e.color.get(`saturation`)),s=K(()=>e.color.get(`value`)),c=K(()=>e.color.get(`hue`));function l(t){e.disabled||(t.target!==n.value&&u(t),n.value?.focus({preventScroll:!0}))}function u(n){if(e.disabled)return;let a=t.vnode.el.getBoundingClientRect(),{clientX:o,clientY:s}=DA(n),c=o-a.left,l=s-a.top;c=Math.max(0,c),c=Math.min(c,a.width),l=Math.max(0,l),l=Math.min(l,a.height),i.value=c,r.value=l,e.color.set({saturation:c/a.width*100,value:100-l/a.height*100})}function d(t){if(e.disabled)return;let{shiftKey:n}=t,r=Kp(t),i=n?10:1,a=!0;switch(r){case X.left:f(-i);break;case X.right:f(i);break;case X.up:p(i);break;case X.down:p(-i);break;default:a=!1;break}a&&t.preventDefault()}function f(t){let n=o.value+t;n=n<0?0:n>100?100:n,e.color.set(`saturation`,n)}function p(t){let n=s.value+t;n=n<0?0:n>100?100:n,e.color.set(`value`,n)}return{cursorRef:n,cursorTop:r,cursorLeft:i,background:a,saturation:o,brightness:s,hue:c,handleClick:l,handleDrag:u,handleKeydown:d}},JA=(e,{cursorTop:t,cursorLeft:n,background:r,handleDrag:i})=>{let a=Xe(),o=$(`color-svpanel`);function s(){let i=e.color.get(`saturation`),o=e.color.get(`value`),{clientWidth:s,clientHeight:c}=a.vnode.el;n.value=i*s/100,t.value=(100-o)*c/100,r.value=`hsl(${e.color.get(`hue`)}, 100%, 50%)`}return d(()=>{kA(a.vnode.el,{drag:e=>{i(e)},end:e=>{i(e)}}),s()}),M([()=>e.color.get(`hue`),()=>e.color.get(`value`),()=>e.color.value],()=>s()),{rootKls:K(()=>o.b()),cursorKls:K(()=>o.e(`cursor`)),rootStyle:K(()=>({backgroundColor:r.value})),cursorStyle:K(()=>({top:bp(t.value),left:bp(n.value)})),update:s}},YA=[`tabindex`,`aria-disabled`,`aria-label`,`aria-valuenow`,`aria-valuetext`],XA=z({name:`ElSvPanel`,__name:`sv-panel`,props:KA,setup(e,{expose:t}){let n=e,{cursorRef:r,cursorTop:i,cursorLeft:a,background:o,saturation:s,brightness:c,handleClick:l,handleDrag:u,handleKeydown:d}=qA(n),{rootKls:f,cursorKls:p,rootStyle:h,cursorStyle:g,update:_}=JA(n,{cursorTop:i,cursorLeft:a,background:o,handleDrag:u}),{t:v}=Dp(),y=K(()=>v(`el.colorpicker.svLabel`)),b=K(()=>v(`el.colorpicker.svDescription`,{saturation:s.value,brightness:c.value,color:n.color.value}));return t({update:_}),(t,n)=>(N(),W(`div`,{class:F(Y(f)),style:m(Y(h)),onClick:n[1]||=(...e)=>Y(l)&&Y(l)(...e)},[B(`div`,{ref_key:`cursorRef`,ref:r,class:F(Y(p)),style:m(Y(g)),tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,role:`slider`,"aria-valuemin":`0,0`,"aria-valuemax":`100,100`,"aria-label":y.value,"aria-valuenow":`${Y(s)},${Y(c)}`,"aria-valuetext":b.value,onKeydown:n[0]||=(...e)=>Y(d)&&Y(d)(...e)},null,46,YA)],6))}}),ZA=(e,t)=>{let n=ve(new VA({enableAlpha:e.showAlpha,format:e.colorFormat||``,value:e.modelValue}));return M(()=>[e.colorFormat,e.showAlpha],()=>{n.enableAlpha=e.showAlpha,n.format=e.colorFormat||n.format,n.doOnChange(),t(br,n.value)}),{color:n}},QA=Pv(z({name:`ElColorPickerPanel`,__name:`color-picker-panel`,props:yA,emits:bA,setup(e,{expose:t,emit:n}){let r=e,i=n,a=$(`color-picker-panel`),{formItem:o}=ub(),s=lb(),c=q(),u=q(),f=q(),p=q(),h=q(``),{color:g}=l(xA,()=>ZA(r,i),!0);function _(){g.fromString(h.value),g.value!==h.value&&(h.value=g.value)}function v(){r.validateEvent&&o?.validate?.(`blur`).catch(ge)}function y(){c.value?.update(),u.value?.update(),f.value?.update()}return d(()=>{r.modelValue&&(h.value=g.value),U(y)}),M(()=>r.modelValue,e=>{e!==g.value&&(e?g.fromString(e):g.clear())}),M(()=>g.value,e=>{i(br,e),h.value=e,r.validateEvent&&o?.validate(`change`).catch(ge)}),Qe(SA,{currentColor:K(()=>g.value)}),t({color:g,inputRef:p,update:y}),(t,n)=>(N(),W(`div`,{class:F([Y(a).b(),Y(a).is(`disabled`,Y(s)),Y(a).is(`border`,e.border)]),onFocusout:v},[B(`div`,{class:F(Y(a).e(`wrapper`))},[J(zA,{ref_key:`hueRef`,ref:c,color:Y(g),vertical:``,disabled:Y(s),class:F([`hue-slider`,e.hueSliderClass]),style:m(e.hueSliderStyle)},null,8,[`color`,`disabled`,`class`,`style`]),J(XA,{ref_key:`svRef`,ref:u,color:Y(g),disabled:Y(s)},null,8,[`color`,`disabled`])],2),e.showAlpha?(N(),H(FA,{key:0,ref_key:`alphaRef`,ref:f,color:Y(g),disabled:Y(s)},null,8,[`color`,`disabled`])):G(`v-if`,!0),e.predefine?(N(),H(GA,{key:1,ref:`predefine`,"enable-alpha":e.showAlpha,color:Y(g),colors:e.predefine,disabled:Y(s)},null,8,[`enable-alpha`,`color`,`colors`,`disabled`])):G(`v-if`,!0),B(`div`,{class:F(Y(a).e(`footer`))},[J(Y(zS),{ref_key:`inputRef`,ref:p,modelValue:h.value,"onUpdate:modelValue":n[0]||=e=>h.value=e,"validate-event":!1,size:`small`,disabled:Y(s),onChange:_},null,8,[`modelValue`,`disabled`]),I(t.$slots,`footer`)],2)],34))}})),$A=Q({persistent:{type:Boolean,default:!0},modelValue:{type:Z(String),default:void 0},id:String,showAlpha:Boolean,colorFormat:{type:Z(String)},disabled:{type:Boolean,default:void 0},clearable:{type:Boolean,default:!0},size:xv,popperClass:fS.popperClass,popperStyle:fS.popperStyle,tabindex:{type:[String,Number],default:0},teleported:fS.teleported,appendTo:fS.appendTo,predefine:{type:Z(Array)},validateEvent:{type:Boolean,default:!0},...kv,...Mv([`ariaLabel`])}),ej={[br]:e=>P(e)||cd(e),[xr]:e=>P(e)||cd(e),activeChange:e=>P(e)||cd(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0},tj=[`id`,`aria-label`,`aria-labelledby`,`aria-description`,`aria-disabled`,`tabindex`],nj=Pv(z({name:`ElColorPicker`,__name:`color-picker`,props:$A,emits:ej,setup(e,{expose:t,emit:n}){let r=e,i=n,{t:a}=Dp(),o=$(`color`),{formItem:s}=ub(),c=cb(),l=lb(),{valueOnClear:u,isEmptyValue:d}=Av(r,null),f=ZA(r,i),{inputId:p,isLabeledByFormItem:h}=db(r,{formItemContext:s}),g=q(),_=q(),v=q(),y=q(!1),b=q(!1),x=!0,{isFocused:C,handleFocus:w,handleBlur:T}=wv(_,{disabled:l,beforeBlur(e){return g.value?.isFocusInsideContent(e)},afterBlur(){ne(!1),I(),r.validateEvent&&s?.validate?.(`blur`).catch(ge)}}),E=yf(()=>v.value?.color??f.color),D=K(()=>Sd(r,Object.keys(yA))),O=K(()=>!r.modelValue&&!b.value?`transparent`:te(E,r.showAlpha)),A=K(()=>!r.modelValue&&!b.value?``:E.value),ee=K(()=>h.value?void 0:r.ariaLabel||a(`el.colorpicker.defaultLabel`)),j=K(()=>h.value?s?.labelId:void 0),P=K(()=>[o.b(`picker`),o.is(`disabled`,l.value),o.bm(`picker`,c.value),o.is(`focused`,C.value)]);function te(e,t){let{r:n,g:r,b:i,a}=e.toRgb();return t?`rgba(${n}, ${r}, ${i}, ${a})`:`rgb(${n}, ${r}, ${i})`}function ne(e){y.value=e}let re=Hu(ne,100,{leading:!0});function ie(){l.value||ne(!0)}function ae(){re(!1),I()}function I(){U(()=>{r.modelValue?E.fromString(r.modelValue):(E.value=``,U(()=>{b.value=!1}))})}function oe(){l.value||(y.value&&I(),re(!y.value))}function L(){let e=d(E.value)?u.value:E.value;i(br,e),i(xr,e),r.validateEvent&&s?.validate(`change`).catch(ge),re(!1),U(()=>{let e=new VA({enableAlpha:r.showAlpha,format:r.colorFormat||``,value:r.modelValue});E.compare(e)||I()})}function se(){re(!1),i(br,u.value),i(xr,u.value),r.modelValue!==u.value&&r.validateEvent&&s?.validate(`change`).catch(ge),I(),i(`clear`)}function ce(){v?.value?.inputRef?.focus()}function le(){y.value&&(ae(),C.value&&fe())}function ue(e){e.preventDefault(),e.stopPropagation(),ne(!1),I()}function de(e){switch(Kp(e)){case X.enter:case X.numpadEnter:case X.space:e.preventDefault(),e.stopPropagation(),ie();break;case X.esc:ue(e);break}}function fe(){_.value.focus()}function pe(){_.value.blur()}return M(()=>A.value,e=>{x&&i(`activeChange`,e),x=!0}),M(()=>E.value,()=>{!r.modelValue&&!b.value&&(b.value=!0)}),M(()=>r.modelValue,e=>{e?e&&e!==E.value&&(x=!1,E.fromString(e)):b.value=!1}),M(()=>y.value,()=>{v.value&&U(v.value.update)}),Qe(xA,f),t({color:E,show:ie,hide:ae,focus:fe,blur:pe}),(t,n)=>(N(),H(Y(ES),{ref_key:`popper`,ref:g,visible:y.value,"show-arrow":!1,"fallback-placements":[`bottom`,`top`,`right`,`left`],offset:0,"gpu-acceleration":!1,"popper-class":[Y(o).be(`picker`,`panel`),e.popperClass],"popper-style":e.popperStyle,"stop-popper-mouse-event":!1,pure:``,loop:``,role:`dialog`,effect:`light`,trigger:`click`,teleported:e.teleported,transition:`${Y(o).namespace.value}-zoom-in-top`,persistent:e.persistent,"append-to":e.appendTo,onShow:ce,onHide:n[2]||=e=>ne(!1)},{content:V(()=>[Ge((N(),H(Y(QA),k({ref_key:`pickerPanelRef`,ref:v},D.value,{border:!1,"validate-event":!1,onKeydown:jn(ue,[`esc`])}),{footer:V(()=>[B(`div`,null,[e.clearable?(N(),H(Y(xw),{key:0,class:F(Y(o).be(`footer`,`link-btn`)),text:``,size:`small`,onClick:se},{default:V(()=>[Ke(S(Y(a)(`el.colorpicker.clear`)),1)]),_:1},8,[`class`])):G(`v-if`,!0),J(Y(xw),{plain:``,size:`small`,class:F(Y(o).be(`footer`,`btn`)),onClick:L},{default:V(()=>[Ke(S(Y(a)(`el.colorpicker.confirm`)),1)]),_:1},8,[`class`])])]),_:1},16)),[[Y(eT),le,_.value]])]),default:V(()=>[B(`div`,k({id:Y(p),ref_key:`triggerRef`,ref:_},t.$attrs,{class:P.value,role:`button`,"aria-label":ee.value,"aria-labelledby":j.value,"aria-description":Y(a)(`el.colorpicker.description`,{color:e.modelValue||``}),"aria-disabled":Y(l),tabindex:Y(l)?void 0:e.tabindex,onKeydown:de,onFocus:n[0]||=(...e)=>Y(w)&&Y(w)(...e),onBlur:n[1]||=(...e)=>Y(T)&&Y(T)(...e)}),[B(`div`,{class:F(Y(o).be(`picker`,`trigger`)),onClick:oe},[B(`span`,{class:F([Y(o).be(`picker`,`color`),Y(o).is(`alpha`,e.showAlpha)])},[B(`span`,{class:F(Y(o).be(`picker`,`color-inner`)),style:m({backgroundColor:O.value})},[Ge(J(Y(By),{class:F([Y(o).be(`picker`,`icon`),Y(o).is(`icon-arrow-down`)])},{default:V(()=>[J(Y(Bv))]),_:1},8,[`class`]),[[jt,e.modelValue||b.value]]),Ge(J(Y(By),{class:F([Y(o).be(`picker`,`empty`),Y(o).is(`icon-close`)])},{default:V(()=>[J(Y(ey))]),_:1},8,[`class`]),[[jt,!e.modelValue&&!b.value]])],6)],2)],2)],16,tj)]),_:1},8,[`visible`,`popper-class`,`popper-style`,`teleported`,`transition`,`persistent`,`append-to`]))}})),rj=z({name:`ElContainer`,__name:`container`,props:{direction:{type:String,required:!1}},setup(e){let t=e,n=le(),r=$(`container`),i=K(()=>t.direction===`vertical`?!0:t.direction===`horizontal`?!1:n&&n.default?n.default().some(e=>{let t=e.type.name;return t===`ElHeader`||t===`ElFooter`}):!1);return(e,t)=>(N(),W(`section`,{class:F([Y(r).b(),Y(r).is(`vertical`,i.value)])},[I(e.$slots,`default`)],2))}}),ij=z({name:`ElAside`,__name:`aside`,props:{width:{type:[String,null],required:!1,default:null}},setup(e){let t=e,n=$(`aside`),r=K(()=>t.width?n.cssVarBlock({width:t.width}):{});return(e,t)=>(N(),W(`aside`,{class:F(Y(n).b()),style:m(r.value)},[I(e.$slots,`default`)],6))}}),aj=z({name:`ElFooter`,__name:`footer`,props:{height:{type:[String,null],required:!1,default:null}},setup(e){let t=e,n=$(`footer`),r=K(()=>t.height?n.cssVarBlock({height:t.height}):{});return(e,t)=>(N(),W(`footer`,{class:F(Y(n).b()),style:m(r.value)},[I(e.$slots,`default`)],6))}}),oj=z({name:`ElHeader`,__name:`header`,props:{height:{type:[String,null],required:!1,default:null}},setup(e){let t=e,n=$(`header`),r=K(()=>t.height?n.cssVarBlock({height:t.height}):{});return(e,t)=>(N(),W(`header`,{class:F(Y(n).b()),style:m(r.value)},[I(e.$slots,`default`)],6))}}),sj=z({name:`ElMain`,__name:`main`,setup(e){let t=$(`main`);return(e,n)=>(N(),W(`main`,{class:F(Y(t).b())},[I(e.$slots,`default`)],2))}}),cj=Pv(rj,{Aside:ij,Footer:aj,Header:oj,Main:sj}),lj=Lv(ij),uj=Lv(aj),dj=Lv(oj),fj=Lv(sj),pj=Q({format:{type:String,default:`HH:mm:ss`},prefix:String,suffix:String,title:String,value:{type:Z([Number,Object]),default:0},valueStyle:{type:Z([String,Object,Array,Boolean]),default:void 0}}),mj={finish:()=>!0,[xr]:e=>Md(e)},hj=Pv(z({name:`ElStatistic`,__name:`statistic`,props:Q({decimalSeparator:{type:String,default:`.`},groupSeparator:{type:String,default:`,`},precision:{type:Number,default:0},formatter:Function,value:{type:Z([Number,Object]),default:0},prefix:String,suffix:String,title:String,valueStyle:{type:Z([String,Object,Array,Boolean]),default:void 0}}),setup(e,{expose:t}){let r=e,i=$(`statistic`),a=K(()=>{let{value:e,formatter:t,precision:i,decimalSeparator:a,groupSeparator:o}=r;if(n(t))return t(e);if(!Md(e)||Number.isNaN(e))return e;let[s,c=``]=String(e).split(`.`);return c=c.padEnd(i,`0`).slice(0,i>0?i:0),s=s.replace(/\B(?=(\d{3})+(?!\d))/g,o),[s,c].join(c?a:``)});return t({displayValue:a}),(t,n)=>(N(),W(`div`,{class:F(Y(i).b())},[t.$slots.title||e.title?(N(),W(`div`,{key:0,class:F(Y(i).e(`head`))},[I(t.$slots,`title`,{},()=>[Ke(S(e.title),1)])],2)):G(`v-if`,!0),B(`div`,{class:F(Y(i).e(`content`))},[t.$slots.prefix||e.prefix?(N(),W(`div`,{key:0,class:F(Y(i).e(`prefix`))},[I(t.$slots,`prefix`,{},()=>[B(`span`,null,S(e.prefix),1)])],2)):G(`v-if`,!0),B(`span`,{class:F(Y(i).e(`number`)),style:m(e.valueStyle)},S(a.value),7),t.$slots.suffix||e.suffix?(N(),W(`div`,{key:1,class:F(Y(i).e(`suffix`))},[I(t.$slots,`suffix`,{},()=>[B(`span`,null,S(e.suffix),1)])],2)):G(`v-if`,!0)],2)],2))}})),gj=[[`Y`,1e3*60*60*24*365],[`M`,1e3*60*60*24*30],[`D`,1e3*60*60*24],[`H`,1e3*60*60],[`m`,1e3*60],[`s`,1e3],[`S`,1]],_j=e=>Md(e)?new Date(e).getTime():e.valueOf(),vj=(e,t)=>{let n=e;return gj.reduce((e,[t,r])=>{let i=RegExp(`${t}+(?![^\\[\\]]*\\])`,`g`);if(i.test(e)){let t=Math.floor(n/r);return n-=t*r,e.replace(i,e=>String(t).padStart(e.length,`0`))}return e},t).replace(/\[([^\]]*)]/g,`$1`)},yj=Pv(z({name:`ElCountdown`,__name:`countdown`,props:pj,emits:mj,setup(e,{expose:t,emit:n}){let i=e,a=n,o,s=q(0),c=K(()=>vj(s.value,i.format)),l=e=>vj(e,i.format),u=()=>{o&&=(Pp(o),void 0)},f=()=>{let e=_j(i.value),t=()=>{let n=e-Date.now();a(xr,n),n<=0?(n=0,u(),a(`finish`)):o=Np(t),s.value=n};o=Np(t)};return d(()=>{s.value=_j(i.value)-Date.now(),M(()=>[i.value,i.format],()=>{u(),f()},{immediate:!0})}),T(()=>{u()}),t({displayValue:c}),(t,n)=>(N(),H(Y(hj),{value:s.value,title:e.title,prefix:e.prefix,suffix:e.suffix,"value-style":e.valueStyle,formatter:l},xe({_:2},[r(t.$slots,(e,n)=>({name:n,fn:V(()=>[I(t.$slots,n)])}))]),1032,[`value`,`title`,`prefix`,`suffix`,`value-style`]))}})),bj=Q({valueFormat:String,dateFormat:String,timeFormat:String,disabled:{type:Boolean,default:void 0},modelValue:{type:Z([Date,Array,String,Number]),default:``},defaultValue:{type:Z([Date,Array])},defaultTime:{type:Z([Date,Array])},isRange:Boolean,...Uw,disabledDate:{type:Function},cellClassName:{type:Function},shortcuts:{type:Array,default:()=>[]},arrowControl:Boolean,unlinkPanels:Boolean,showNow:{type:Boolean,default:!0},showConfirm:Boolean,showFooter:Boolean,showWeekNumber:Boolean,type:{type:Z(String),default:`date`},clearable:{type:Boolean,default:!0},border:{type:Boolean,default:!0},editable:{type:Boolean,default:!0}}),xj=Symbol(`rootPickerContextKey`),Sj=`ElIsDefaultFormat`,Cj=[`date`,`dates`,`year`,`years`,`month`,`months`,`week`,`range`],wj=Q({cellClassName:{type:Z(Function)},disabledDate:{type:Z(Function)},date:{type:Z(Object),required:!0},minDate:{type:Z(Object)},maxDate:{type:Z(Object)},parsedValue:{type:Z([Object,Array])},rangeState:{type:Z(Object),default:()=>({endDate:null,selecting:!1})},disabled:Boolean}),Tj=Q({type:{type:Z(String),required:!0,values:vr},dateFormat:String,timeFormat:String,showNow:{type:Boolean,default:!0},showConfirm:Boolean,showFooter:{type:Boolean,default:!0},showWeekNumber:Boolean,border:Boolean,disabled:Boolean,editable:{type:Boolean,default:!0}}),Ej=Q({unlinkPanels:Boolean,visible:{type:Boolean,default:!0},showConfirm:Boolean,showFooter:{type:Boolean,default:!0},border:Boolean,disabled:Boolean,parsedValue:{type:Z(Array)},singlePanel:Boolean}),Dj=e=>({type:String,values:Cj,default:e}),Oj=Q({...Tj,parsedValue:{type:Z([Object,Array])},visible:{type:Boolean,default:!0},format:{type:String,default:``}}),kj=e=>{if(!A(e))return!1;let[t,n]=e;return Mw.default.isDayjs(t)&&Mw.default.isDayjs(n)&&(0,Mw.default)(t).isValid()&&(0,Mw.default)(n).isValid()&&t.isSameOrBefore(n)},Aj=(e,{lang:t,step:n=1,unit:r,unlinkPanels:i})=>{let a;if(A(e)){let[a,o]=e.map(e=>(0,Mw.default)(e).locale(t));return i||(o=a.add(n,r)),[a,o]}else a=e?(0,Mw.default)(e):(0,Mw.default)();return a=a.locale(t),[a,a.add(n,r)]},jj=(e,t,{columnIndexOffset:n,startDate:r,nextEndDate:i,now:a,unit:o,relativeDateGetter:s,setCellMetadata:c,setRowMetadata:l})=>{for(let u=0;u{let i=(0,Mw.default)().locale(r).startOf(`month`).month(n).year(t).hour(e.hour()).minute(e.minute()).second(e.second());return Pw(i.daysInMonth()).map(e=>i.add(e,`day`).toDate())},Nj=(e,t,n,r,i)=>{let a=(0,Mw.default)().year(t).month(n).startOf(`month`).hour(e.hour()).minute(e.minute()).second(e.second()),o=Mj(e,t,n,r).find(e=>!i?.(e));return o?(0,Mw.default)(o).locale(r):a.locale(r)},Pj=(e,t,n)=>{let r=e.year();if(!n?.(e.toDate()))return e.locale(t);let i=e.month();if(!Mj(e,r,i,t).every(n))return Nj(e,r,i,t,n);for(let i=0;i<12;i++)if(!Mj(e,r,i,t).every(n))return Nj(e,r,i,t,n);return e},Fj=(e,t,n,r)=>{if(A(e))return e.map(e=>Fj(e,t,n,r));if(P(e)){let n=r?.value?(0,Mw.default)(e):(0,Mw.default)(e,t);if(!n.isValid())return n}return(0,Mw.default)(e,t).locale(n)},Ij=Q({...wj,showWeekNumber:Boolean,selectionMode:Dj(`date`)}),Lj=[`changerange`,`pick`,`select`],Rj=(e=``)=>[`normal`,`today`].includes(e),zj=(e,t)=>{let{lang:n}=Dp(),r=q(),i=q(),a=q(),o=q(),s=q([[],[],[],[],[],[]]),c=!1,l=e.date.$locale().weekStart||7,u=e.date.locale(`en`).localeData().weekdaysShort().map(e=>e.toLowerCase()),d=K(()=>l>3?7-l:-l),f=K(()=>{let t=e.date.startOf(`month`);return t.subtract(t.day()||7,`day`)}),p=K(()=>u.concat(u).slice(l,l+7)),m=K(()=>fs(Y(b)).some(e=>e.isCurrent)),h=K(()=>{let t=e.date.startOf(`month`);return{startOfMonthDay:t.day()||7,dateCountOfMonth:t.daysInMonth(),dateCountOfLastMonth:t.subtract(1,`month`).daysInMonth()}}),g=K(()=>e.selectionMode===`dates`?hb(e.parsedValue):[]),_=(e,{count:t,rowIndex:n,columnIndex:r})=>{let{startOfMonthDay:i,dateCountOfMonth:a,dateCountOfLastMonth:o}=Y(h),s=Y(d);if(n>=0&&n<=1){let a=i+s<0?7+i+s:i+s;if(r+n*7>=a)return e.text=t,!0;e.text=o-(a-r%7)+1+n*7,e.type=`prev-month`}else return t<=a?e.text=t:(e.text=t-a,e.type=`next-month`),!0;return!1},v=(t,{columnIndex:n,rowIndex:r},i)=>{let{disabledDate:a,cellClassName:o}=e,s=Y(g),c=_(t,{count:i,rowIndex:r,columnIndex:n}),l=t.dayjs.toDate();return t.selected=s.find(e=>e.isSame(t.dayjs,`day`)),t.isSelected=!!t.selected,t.isCurrent=S(t),t.disabled=a?.(l),t.customClass=o?.(l),c},y=t=>{if(e.selectionMode===`week`){let[n,r]=e.showWeekNumber?[1,7]:[0,6],i=te(t[n+1]);t[n].inRange=i,t[n].start=i,t[r].inRange=i,t[r].end=i}},b=K(()=>{let{minDate:t,maxDate:r,rangeState:i,showWeekNumber:a}=e,o=Y(d),c=Y(s),l=1;if(jj({row:6,column:7},c,{startDate:t,columnIndexOffset:+!!a,nextEndDate:i.endDate||r||i.selecting&&t||null,now:(0,Mw.default)().locale(Y(n)).startOf(`day`),unit:`day`,relativeDateGetter:e=>Y(f).add(e-o,`day`),setCellMetadata:(...e)=>{v(...e,l)&&(l+=1)},setRowMetadata:y}),a)for(let e=0;e<6;e++)c[e][1].dayjs&&(c[e][0]={type:`week`,text:c[e][1].dayjs.week()});return c});M(()=>e.date,async()=>{Y(r)?.contains(document.activeElement)&&(await U(),await x())});let x=async()=>Y(i)?.focus(),S=t=>e.selectionMode===`date`&&Rj(t.type)&&C(t,e.parsedValue),C=(t,r)=>r?(0,Mw.default)(r).locale(Y(n)).isSame(e.date.date(Number(t.text)),`day`):!1,w=(t,n)=>{let r=Y(h).startOfMonthDay,i=Y(d),a=r+i<0?7+r+i:r+i,o=t*7+(n-+!!e.showWeekNumber);return e.date.startOf(`month`).subtract(a,`day`).add(o,`day`)},T=n=>{if(!e.rangeState.selecting)return;let r=n.target;if(r.tagName===`SPAN`&&(r=r.parentNode?.parentNode),r.tagName===`DIV`&&(r=r.parentNode),r.tagName!==`TD`)return;let i=r.parentNode.rowIndex-1,s=r.cellIndex;Y(b)[i][s].disabled||(i!==Y(a)||s!==Y(o))&&(a.value=i,o.value=s,t(`changerange`,{selecting:!0,endDate:w(i,s)}))},E=e=>!Y(m)&&e?.text===1&&Rj(e.type)||e.isCurrent,D=t=>{c||Y(m)||e.selectionMode!==`date`||P(t,!0)},O=e=>{e.target.closest(`td`)&&(c=!0)},k=e=>{e.target.closest(`td`)&&(c=!1)},ee=n=>{!e.rangeState.selecting||!e.minDate?(t(`pick`,{minDate:n,maxDate:null}),t(`select`,!0)):(n>=e.minDate?t(`pick`,{minDate:e.minDate,maxDate:n}):t(`pick`,{minDate:n,maxDate:e.minDate}),t(`select`,!1))},j=e=>{let n=e.week(),r=`${e.year()}w${n}`;t(`pick`,{year:e.year(),week:n,value:r,date:e.startOf(`week`)})},N=(n,r)=>{t(`pick`,r?hb(e.parsedValue).filter(e=>e?.valueOf()!==n.valueOf()):hb(e.parsedValue).concat([n]))},P=(n,r=!1)=>{if(e.disabled)return;let i=n.target.closest(`td`);if(!i)return;let a=i.parentNode.rowIndex-1,o=i.cellIndex,s=Y(b)[a][o];if(s.disabled||s.type===`week`)return;let c=w(a,o);switch(e.selectionMode){case`range`:ee(c);break;case`date`:t(`pick`,c,r);break;case`week`:j(c);break;case`dates`:N(c,!!s.selected);break;default:break}},te=t=>{if(e.selectionMode!==`week`)return!1;let n=e.date.startOf(`day`);if(t.type===`prev-month`&&(n=n.subtract(1,`month`)),t.type===`next-month`&&(n=n.add(1,`month`)),n=n.date(Number.parseInt(t.text,10)),e.parsedValue&&!A(e.parsedValue)){let t=(e.parsedValue.day()-l+7)%7-1;return e.parsedValue.subtract(t,`day`).isSame(n,`day`)}return!1};return{WEEKS:p,rows:b,tbodyRef:r,currentCellRef:i,focus:x,isCurrent:S,isWeekActive:te,isSelectedCell:E,handlePickDate:P,handleMouseUp:k,handleMouseDown:O,handleMouseMove:T,handleFocus:D}},Bj=(e,{isCurrent:t,isWeekActive:n})=>{let r=$(`date-table`),{t:i}=Dp();return{tableKls:K(()=>[r.b(),r.is(`week-mode`,e.selectionMode===`week`&&!e.disabled)]),tableLabel:K(()=>i(`el.datepicker.dateTablePrompt`)),weekHeaderClass:r.e(`week-header`),getCellClasses:n=>{let r=[];return Rj(n.type)&&!n.disabled?(r.push(`available`),n.type===`today`&&r.push(`today`)):r.push(n.type),t(n)&&r.push(`current`),n.inRange&&(Rj(n.type)||e.selectionMode===`week`)&&(r.push(`in-range`),n.start&&r.push(`start-date`),n.end&&r.push(`end-date`)),(n.disabled||e.disabled)&&r.push(`disabled`),n.selected&&r.push(`selected`),n.customClass&&r.push(n.customClass),r.join(` `)},getRowKls:e=>[r.e(`row`),{current:n(e)}],t:i}},Vj=z({name:`ElDatePickerCell`,props:Q({cell:{type:Z(Object)}}),setup(e){let t=$(`date-table-cell`),{slots:n}=l(xj);return()=>{let{cell:r}=e;return I(n,`default`,{...r},()=>[J(`div`,{class:t.b()},[J(`span`,{class:t.e(`text`)},[r?.renderText??r?.text])])])}}}),Hj=[`aria-label`],Uj=[`aria-label`],Wj=[`aria-current`,`aria-selected`,`tabindex`,`aria-disabled`],Gj=z({__name:`basic-date-table`,props:Ij,emits:Lj,setup(e,{expose:t,emit:n}){let i=e,{WEEKS:a,rows:o,tbodyRef:s,currentCellRef:c,focus:l,isCurrent:u,isWeekActive:d,isSelectedCell:f,handlePickDate:p,handleMouseUp:m,handleMouseDown:h,handleMouseMove:g,handleFocus:_}=zj(i,n),{tableLabel:v,tableKls:y,getCellClasses:b,getRowKls:x,weekHeaderClass:C,t:w}=Bj(i,{isCurrent:u,isWeekActive:d}),E=!1;return T(()=>{E=!0}),t({focus:l}),(e,t)=>(N(),W(`table`,{"aria-label":Y(v),class:F(Y(y)),cellspacing:`0`,cellpadding:`0`,role:`grid`,onClick:t[1]||=(...e)=>Y(p)&&Y(p)(...e),onMousemove:t[2]||=(...e)=>Y(g)&&Y(g)(...e),onMousedown:t[3]||=(...e)=>Y(h)&&Y(h)(...e),onMouseup:t[4]||=(...e)=>Y(m)&&Y(m)(...e)},[B(`tbody`,{ref_key:`tbodyRef`,ref:s},[B(`tr`,null,[e.showWeekNumber?(N(),W(`th`,{key:0,scope:`col`,class:F(Y(C))},null,2)):G(`v-if`,!0),(N(!0),W(R,null,r(Y(a),(e,t)=>(N(),W(`th`,{key:t,"aria-label":Y(w)(`el.datepicker.weeksFull.`+e),scope:`col`},S(Y(w)(`el.datepicker.weeks.`+e)),9,Uj))),128))]),(N(!0),W(R,null,r(Y(o),(n,i)=>(N(),W(`tr`,{key:i,class:F(Y(x)(e.showWeekNumber?n[2]:n[1]))},[(N(!0),W(R,null,r(n,(n,r)=>(N(),W(`td`,{key:`${i}.${r}`,ref_for:!0,ref:e=>!Y(E)&&Y(f)(n)&&(c.value=e),class:F(Y(b)(n)),"aria-current":n.isCurrent?`date`:void 0,"aria-selected":n.isCurrent,tabindex:e.disabled?void 0:Y(f)(n)?0:-1,"aria-disabled":e.disabled,onFocus:t[0]||=(...e)=>Y(_)&&Y(_)(...e)},[J(Y(Vj),{cell:n},null,8,[`cell`])],42,Wj))),128))],2))),128))],512)],42,Hj))}}),Kj=Q({...wj,selectionMode:Dj(`month`)}),qj=[`aria-label`],Jj=[`aria-selected`,`aria-label`,`tabindex`,`onKeydown`],Yj=z({__name:`basic-month-table`,props:Kj,emits:[`changerange`,`pick`,`select`],setup(e,{expose:t,emit:n}){let i=e,a=n,o=$(`month-table`),{t:s,lang:c}=Dp(),l=q(),u=q(),d=q(i.date.locale(`en`).localeData().monthsShort().map(e=>e.toLowerCase())),f=q([[],[],[]]),p=q(),m=q(),h=K(()=>{let e=f.value,t=(0,Mw.default)().locale(c.value).startOf(`month`);for(let n=0;n<3;n++){let r=e[n];for(let e=0;e<4;e++){let a=r[e]||={row:n,column:e,type:`normal`,inRange:!1,start:!1,end:!1,text:-1,disabled:!1,isSelected:!1,customClass:void 0,date:void 0,dayjs:void 0,isCurrent:void 0,selected:void 0,renderText:void 0,timestamp:void 0};a.type=`normal`;let o=n*4+e,s=i.date.startOf(`year`).month(o),c=i.rangeState.endDate||i.maxDate||i.rangeState.selecting&&i.minDate||null;a.inRange=!!(i.minDate&&s.isSameOrAfter(i.minDate,`month`)&&c&&s.isSameOrBefore(c,`month`))||!!(i.minDate&&s.isSameOrBefore(i.minDate,`month`)&&c&&s.isSameOrAfter(c,`month`)),i.minDate?.isSameOrAfter(c)?(a.start=!!(c&&s.isSame(c,`month`)),a.end=i.minDate&&s.isSame(i.minDate,`month`)):(a.start=!!(i.minDate&&s.isSame(i.minDate,`month`)),a.end=!!(c&&s.isSame(c,`month`))),t.isSame(s)&&(a.type=`today`);let l=s.toDate();a.text=o,a.disabled=i.disabledDate?.(l)||!1,a.date=l,a.customClass=i.cellClassName?.(l),a.dayjs=s,a.timestamp=s.valueOf(),a.isSelected=v(a)}}return e}),g=()=>{u.value?.focus()},_=e=>{let t={},n=i.date.year(),r=new Date,a=e.text;return t.disabled=i.disabled||(i.disabledDate?Mj(i.date,n,a,c.value).every(i.disabledDate):!1),t.current=hb(i.parsedValue).some(e=>Mw.default.isDayjs(e)&&e.year()===n&&e.month()===a),t.today=r.getFullYear()===n&&r.getMonth()===a,e.customClass&&(t[e.customClass]=!0),e.inRange&&(t[`in-range`]=!0,e.start&&(t[`start-date`]=!0),e.end&&(t[`end-date`]=!0)),t},v=e=>{let t=i.date.year(),n=e.text;return hb(i.date).some(e=>e.year()===t&&e.month()===n)},y=e=>{if(!i.rangeState.selecting)return;let t=e.target;if(t.tagName===`SPAN`&&(t=t.parentNode?.parentNode),t.tagName===`DIV`&&(t=t.parentNode),t.tagName!==`TD`)return;let n=t.parentNode.rowIndex,r=t.cellIndex;h.value[n][r].disabled||(n!==p.value||r!==m.value)&&(p.value=n,m.value=r,a(`changerange`,{selecting:!0,endDate:i.date.startOf(`year`).month(n*4+r)}))},b=e=>{if(i.disabled)return;let t=e.target?.closest(`td`);if(t?.tagName!==`TD`||hp(t,`disabled`))return;let n=t.cellIndex,r=t.parentNode.rowIndex*4+n,o=i.date.startOf(`year`).month(r);if(i.selectionMode===`months`){if(e.type===`keydown`){a(`pick`,hb(i.parsedValue),!1);return}let n=Nj(i.date,i.date.year(),r,c.value,i.disabledDate);a(`pick`,hp(t,`current`)?hb(i.parsedValue).filter(e=>e?.year()!==n.year()||e?.month()!==n.month()):hb(i.parsedValue).concat([(0,Mw.default)(n)]))}else i.selectionMode===`range`?i.rangeState.selecting?(i.minDate&&o>=i.minDate?a(`pick`,{minDate:i.minDate,maxDate:o}):a(`pick`,{minDate:o,maxDate:i.minDate}),a(`select`,!1)):(a(`pick`,{minDate:o,maxDate:null}),a(`select`,!0)):a(`pick`,r)};return M(()=>i.date,async()=>{l.value?.contains(document.activeElement)&&(await U(),u.value?.focus())}),t({focus:g}),(e,t)=>(N(),W(`table`,{role:`grid`,"aria-label":Y(s)(`el.datepicker.monthTablePrompt`),class:F(Y(o).b()),onClick:b,onMousemove:y},[B(`tbody`,{ref_key:`tbodyRef`,ref:l},[(N(!0),W(R,null,r(h.value,(e,t)=>(N(),W(`tr`,{key:t},[(N(!0),W(R,null,r(e,(e,t)=>(N(),W(`td`,{key:t,ref_for:!0,ref:t=>e.isSelected&&(u.value=t),class:F(_(e)),"aria-selected":!!e.isSelected,"aria-label":Y(s)(`el.datepicker.month${+e.text+1}`),tabindex:e.isSelected?0:-1,onKeydown:[jn(kn(b,[`prevent`,`stop`]),[`space`]),jn(kn(b,[`prevent`,`stop`]),[`enter`])]},[J(Y(Vj),{cell:{...e,renderText:Y(s)(`el.datepicker.months.`+d.value[e.text])}},null,8,[`cell`])],42,Jj))),128))]))),128))],512)],42,qj))}}),Xj=Q({...wj,selectionMode:Dj(`year`)}),Zj=[`aria-label`],Qj=[`aria-selected`,`aria-label`,`tabindex`,`onKeydown`],$j=z({__name:`basic-year-table`,props:Xj,emits:[`changerange`,`pick`,`select`],setup(e,{expose:t,emit:n}){let i=(e,t)=>{let n=(0,Mw.default)(String(e)).locale(t).startOf(`year`);return Pw(n.endOf(`year`).dayOfYear()).map(e=>n.add(e,`day`).toDate())},a=e,o=n,s=$(`year-table`),{t:c,lang:l}=Dp(),u=q(),d=q(),f=K(()=>Math.floor(a.date.year()/10)*10),p=q([[],[],[]]),m=q(),h=q(),g=K(()=>{let e=p.value,t=(0,Mw.default)().locale(l.value).startOf(`year`);for(let n=0;n<3;n++){let r=e[n];for(let e=0;e<4&&!(n*4+e>=10);e++){let i=r[e];i||={row:n,column:e,type:`normal`,inRange:!1,start:!1,end:!1,text:-1,disabled:!1,isSelected:!1,customClass:void 0,date:void 0,dayjs:void 0,isCurrent:void 0,selected:void 0,renderText:void 0,timestamp:void 0},i.type=`normal`;let o=n*4+e+f.value,s=(0,Mw.default)().year(o),c=a.rangeState.endDate||a.maxDate||a.rangeState.selecting&&a.minDate||null;i.inRange=!!(a.minDate&&s.isSameOrAfter(a.minDate,`year`)&&c&&s.isSameOrBefore(c,`year`))||!!(a.minDate&&s.isSameOrBefore(a.minDate,`year`)&&c&&s.isSameOrAfter(c,`year`)),a.minDate?.isSameOrAfter(c)?(i.start=!!(c&&s.isSame(c,`year`)),i.end=!!(a.minDate&&s.isSame(a.minDate,`year`))):(i.start=!!(a.minDate&&s.isSame(a.minDate,`year`)),i.end=!!(c&&s.isSame(c,`year`))),t.isSame(s)&&(i.type=`today`),i.text=o;let l=s.toDate();i.disabled=a.disabledDate?.(l)||!1,i.date=l,i.customClass=a.cellClassName?.(l),i.dayjs=s,i.timestamp=s.valueOf(),i.isSelected=y(i),r[e]=i}}return e}),_=()=>{d.value?.focus()},v=e=>{let t={},n=(0,Mw.default)().locale(l.value),r=e.text;return t.disabled=a.disabled||(a.disabledDate?i(r,l.value).every(a.disabledDate):!1),t.today=n.year()===r,t.current=hb(a.parsedValue).some(e=>e.year()===r),e.customClass&&(t[e.customClass]=!0),e.inRange&&(t[`in-range`]=!0,e.start&&(t[`start-date`]=!0),e.end&&(t[`end-date`]=!0)),t},y=e=>{let t=e.text;return hb(a.date).some(e=>e.year()===t)},b=e=>{if(a.disabled)return;let t=e.target?.closest(`td`);if(!t||!t.textContent||hp(t,`disabled`))return;let n=t.cellIndex,r=t.parentNode.rowIndex*4+n+f.value,i=(0,Mw.default)().year(r);if(a.selectionMode===`range`)a.rangeState.selecting?(a.minDate&&i>=a.minDate?o(`pick`,{minDate:a.minDate,maxDate:i}):o(`pick`,{minDate:i,maxDate:a.minDate}),o(`select`,!1)):(o(`pick`,{minDate:i,maxDate:null}),o(`select`,!0));else if(a.selectionMode===`years`){if(e.type===`keydown`){o(`pick`,hb(a.parsedValue),!1);return}let n=Pj(i.startOf(`year`),l.value,a.disabledDate);o(`pick`,hp(t,`current`)?hb(a.parsedValue).filter(e=>e?.year()!==r):hb(a.parsedValue).concat([n]))}else o(`pick`,r)},x=e=>{if(!a.rangeState.selecting)return;let t=e.target?.closest(`td`);if(!t)return;let n=t.parentNode.rowIndex,r=t.cellIndex;g.value[n][r].disabled||(n!==m.value||r!==h.value)&&(m.value=n,h.value=r,o(`changerange`,{selecting:!0,endDate:(0,Mw.default)().year(f.value).add(n*4+r,`year`)}))};return M(()=>a.date,async()=>{u.value?.contains(document.activeElement)&&(await U(),d.value?.focus())}),t({focus:_}),(e,t)=>(N(),W(`table`,{role:`grid`,"aria-label":Y(c)(`el.datepicker.yearTablePrompt`),class:F(Y(s).b()),onClick:b,onMousemove:x},[B(`tbody`,{ref_key:`tbodyRef`,ref:u},[(N(!0),W(R,null,r(g.value,(e,t)=>(N(),W(`tr`,{key:t},[(N(!0),W(R,null,r(e,(e,n)=>(N(),W(`td`,{key:`${t}_${n}`,ref_for:!0,ref:t=>e.isSelected&&(d.value=t),class:F([`available`,v(e)]),"aria-selected":e.isSelected,"aria-label":String(e.text),tabindex:e.isSelected?0:-1,onKeydown:[jn(kn(b,[`prevent`,`stop`]),[`space`]),jn(kn(b,[`prevent`,`stop`]),[`enter`])]},[J(Y(Vj),{cell:e},null,8,[`cell`])],42,Qj))),128))]))),128))],512)],42,Zj))}}),eM=[`disabled`,`onClick`],tM=[`aria-label`,`disabled`],nM=[`aria-label`,`disabled`],rM=[`tabindex`,`aria-disabled`],iM=[`tabindex`,`aria-disabled`],aM=[`aria-label`,`disabled`],oM=[`aria-label`,`disabled`],sM=z({__name:`panel-date-pick`,props:Oj,emits:[`pick`,`set-picker-option`,`panel-change`],setup(e,{emit:t}){let i=(e,t,n)=>!0,a=e,o=t,s=$(`picker-panel`),c=$(`date-picker`),u=y(),d=le(),{t:f,lang:p}=Dp(),m=l(Ew),h=l(Sj,void 0),{shortcuts:g,disabledDate:_,cellClassName:v,defaultTime:b}=m.props,x=we(m.props,`defaultValue`),C=q(),w=q((0,Mw.default)().locale(p.value)),T=q(!1),E=!1,D=K(()=>(0,Mw.default)(b).locale(p.value)),O=K(()=>w.value.month()),k=K(()=>w.value.year()),ee=q([]),j=q(null),P=q(null),te=e=>ee.value.length>0?i(e,ee.value,a.format||`HH:mm:ss`):!0,ne=e=>b&&!De.value&&!T.value&&!E?D.value.year(e.year()).month(e.month()).date(e.date()):_e.value?e.millisecond(0):e.startOf(`day`),re=(e,...t)=>{e?A(e)?o(`pick`,e.map(ne),...t):o(`pick`,ne(e),...t):o(`pick`,e,...t),j.value=null,P.value=null,T.value=!1,E=!1},ie=async(e,t)=>{if(ue.value===`date`&&Mw.default.isDayjs(e)){let n=mb(a.parsedValue),r=n?n.year(e.year()).month(e.month()).date(e.date()):e;te(r)||(r=ee.value[0][0].year(e.year()).month(e.month()).date(e.date())),w.value=r,re(r,_e.value||t)}else ue.value===`week`?re(e.date):ue.value===`dates`&&re(e,!0)},ae=e=>{let t=e?`add`:`subtract`;w.value=w.value[t](1,`month`),Ue(`month`)},oe=e=>{let t=w.value,n=e?`add`:`subtract`;w.value=L.value===`year`?t[n](10,`year`):t[n](1,`year`),Ue(`year`)},L=q(`date`),se=K(()=>{let e=f(`el.datepicker.year`);if(L.value===`year`){let t=Math.floor(k.value/10)*10;return e?`${t} ${e} - ${t+9} ${e}`:`${t} - ${t+9}`}return`${k.value} ${e}`}),ce=e=>{let t=n(e.value)?e.value():e.value;if(t){E=!0,re((0,Mw.default)(t).locale(p.value));return}e.onClick&&e.onClick({attrs:u,slots:d,emit:o})},ue=K(()=>{let{type:e}=a;return[`week`,`month`,`months`,`year`,`years`,`dates`].includes(e)?e:`date`}),de=K(()=>ue.value===`dates`||ue.value===`months`||ue.value===`years`),fe=K(()=>ue.value===`date`?L.value:ue.value),pe=K(()=>!!g.length),me=async(e,t)=>{ue.value===`month`?(w.value=Nj(w.value,w.value.year(),e,p.value,_),re(w.value,!1)):ue.value===`months`?re(e,t??!0):(w.value=Nj(w.value,w.value.year(),e,p.value,_),L.value=`date`,[`month`,`year`,`date`,`week`].includes(ue.value)&&(re(w.value,!0),await U(),ze())),Ue(`month`)},he=async(e,t)=>{ue.value===`year`?(w.value=Pj(w.value.startOf(`year`).year(e),p.value,_),re(w.value,!1)):ue.value===`years`?re(e,t??!0):(w.value=Pj(w.value.year(e),p.value,_),L.value=`month`,[`month`,`year`,`date`,`week`].includes(ue.value)&&(re(w.value,!0),await U(),ze())),Ue(`year`)},z=lb(),ge=async e=>{z.value||(L.value=e,await U(),ze())},_e=K(()=>a.type===`datetime`||a.type===`datetimerange`),ve=K(()=>{let e=_e.value||ue.value===`dates`,t=ue.value===`years`,n=ue.value===`months`,r=L.value===`date`,i=L.value===`year`,a=L.value===`month`;return e&&r||t&&i||n&&a}),ye=K(()=>!de.value&&a.showNow||a.showConfirm),be=K(()=>_?a.parsedValue?A(a.parsedValue)?_(a.parsedValue[0].toDate()):_(a.parsedValue.toDate()):!0:!1),xe=()=>{if(de.value)re(a.parsedValue);else{let e=mb(a.parsedValue);if(!e){let t=(0,Mw.default)(b).locale(p.value),n=Re();e=t.year(n.year()).month(n.month()).date(n.date())}w.value=e,re(e)}},Se=K(()=>_?_((0,Mw.default)().locale(p.value).toDate()):!1),Ce=()=>{let e=(0,Mw.default)().locale(p.value).toDate();T.value=!0,(!_||!_(e))&&te(e)&&(w.value=(0,Mw.default)().locale(p.value),re(w.value))},Te=K(()=>a.timeFormat||Iw(a.format)||`HH:mm:ss`),Ee=K(()=>a.dateFormat||Fw(a.format)||`YYYY-MM-DD`),De=K(()=>{if(P.value)return P.value;if(!(!a.parsedValue&&!x.value))return(mb(a.parsedValue)||w.value).format(Te.value)}),Oe=K(()=>{if(j.value)return j.value;if(!(!a.parsedValue&&!x.value))return(mb(a.parsedValue)||w.value).format(Ee.value)}),ke=q(!1),Ae=()=>{ke.value=!0},je=()=>{ke.value=!1},Me=e=>({hour:e.hour(),minute:e.minute(),second:e.second(),year:e.year(),month:e.month(),date:e.date()}),Ne=(e,t,n)=>{let{hour:r,minute:i,second:o}=Me(e),s=mb(a.parsedValue);w.value=s?s.hour(r).minute(i).second(o):e,re(w.value,!0),n||(ke.value=t)},Pe=e=>{let t=(0,Mw.default)(e,Te.value).locale(p.value);if(t.isValid()&&te(t)){let{year:e,month:n,date:r}=Me(w.value);w.value=t.year(e).month(n).date(r),P.value=null,ke.value=!1,re(w.value,!0)}},Fe=e=>{let t=Fj(e,Ee.value,p.value,h);if(t.isValid()){if(_&&_(t.toDate()))return;let{hour:e,minute:n,second:r}=Me(w.value);w.value=t.hour(e).minute(n).second(r),j.value=null,re(w.value,!0)}},Ie=e=>Mw.default.isDayjs(e)&&e.isValid()&&(_?!_(e.toDate()):!0),Le=e=>Fj(e,a.format,p.value,h),Re=()=>{let e=(0,Mw.default)(x.value).locale(p.value);if(!x.value){let e=D.value;return(0,Mw.default)().hour(e.hour()).minute(e.minute()).second(e.second()).locale(p.value)}return e},ze=()=>{[`week`,`month`,`year`,`date`].includes(ue.value)&&C.value?.focus()},Be=()=>{ze(),ue.value===`week`&&He(X.down)},Ve=e=>{let t=Kp(e);[X.up,X.down,X.left,X.right,X.home,X.end,X.pageUp,X.pageDown].includes(t)&&(He(t),e.stopPropagation(),e.preventDefault()),[X.enter,X.space,X.numpadEnter].includes(t)&&j.value===null&&P.value===null&&(e.preventDefault(),re(w.value,!1))},He=e=>{let{up:t,down:r,left:i,right:a,home:s,end:c,pageUp:l,pageDown:u}=X,d={year:{[t]:-4,[r]:4,[i]:-1,[a]:1,offset:(e,t)=>e.setFullYear(e.getFullYear()+t)},month:{[t]:-4,[r]:4,[i]:-1,[a]:1,offset:(e,t)=>e.setMonth(e.getMonth()+t)},week:{[t]:-1,[r]:1,[i]:-1,[a]:1,offset:(e,t)=>e.setDate(e.getDate()+t*7)},date:{[t]:-7,[r]:7,[i]:-1,[a]:1,[s]:e=>-e.getDay(),[c]:e=>-e.getDay()+6,[l]:e=>-new Date(e.getFullYear(),e.getMonth(),0).getDate(),[u]:e=>new Date(e.getFullYear(),e.getMonth()+1,0).getDate(),offset:(e,t)=>e.setDate(e.getDate()+t)}},f=w.value.toDate();for(;Math.abs(w.value.diff(f,`year`,!0))<1;){let t=d[fe.value];if(!t)return;if(t.offset(f,n(t[e])?t[e](f):t[e]??0),_&&_(f))break;let r=(0,Mw.default)(f).locale(p.value);w.value=r,o(`pick`,r,!0);break}},Ue=e=>{o(`panel-change`,w.value.toDate(),e,L.value)};return M(()=>ue.value,e=>{if([`month`,`year`].includes(e)){L.value=e;return}else if(e===`years`){L.value=`year`;return}else if(e===`months`){L.value=`month`;return}L.value=`date`},{immediate:!0}),M(()=>x.value,e=>{e&&(w.value=Re())},{immediate:!0}),M(()=>a.parsedValue,e=>{if(e){if(de.value||A(e))return;w.value=e}else w.value=Re()},{immediate:!0}),o(`set-picker-option`,[`isValidValue`,Ie]),o(`set-picker-option`,[`parseUserInput`,Le]),o(`set-picker-option`,[`handleFocusPicker`,Be]),(e,t)=>(N(),W(`div`,{class:F([Y(s).b(),Y(c).b(),Y(s).is(`border`,e.border),Y(s).is(`disabled`,Y(z)),{"has-sidebar":e.$slots.sidebar||pe.value,"has-time":_e.value}])},[B(`div`,{class:F(Y(s).e(`body-wrapper`))},[I(e.$slots,`sidebar`,{class:F(Y(s).e(`sidebar`))}),pe.value?(N(),W(`div`,{key:0,class:F(Y(s).e(`sidebar`))},[(N(!0),W(R,null,r(Y(g),(e,t)=>(N(),W(`button`,{key:t,type:`button`,disabled:Y(z),class:F(Y(s).e(`shortcut`)),onClick:t=>ce(e)},S(e.text),11,eM))),128))],2)):G(`v-if`,!0),B(`div`,{class:F(Y(s).e(`body`))},[_e.value?(N(),W(`div`,{key:0,class:F(Y(c).e(`time-header`))},[B(`span`,{class:F(Y(c).e(`editor-wrap`))},[J(Y(zS),{placeholder:Y(f)(`el.datepicker.selectDate`),"model-value":Oe.value,size:`small`,"validate-event":!1,disabled:Y(z),readonly:!e.editable,onInput:t[0]||=e=>j.value=e,onChange:Fe},null,8,[`placeholder`,`model-value`,`disabled`,`readonly`])],2),Ge((N(),W(`span`,{class:F(Y(c).e(`editor-wrap`))},[J(Y(zS),{placeholder:Y(f)(`el.datepicker.selectTime`),"model-value":De.value,size:`small`,"validate-event":!1,disabled:Y(z),readonly:!e.editable,onFocus:Ae,onInput:t[1]||=e=>P.value=e,onChange:Pe},null,8,[`placeholder`,`model-value`,`disabled`,`readonly`]),J(Y(XT),{visible:ke.value,format:Te.value,"parsed-value":w.value,onPick:Ne},null,8,[`visible`,`format`,`parsed-value`])],2)),[[Y(eT),je]])],2)):G(`v-if`,!0),Ge(B(`div`,{class:F([Y(c).e(`header`),(L.value===`year`||L.value===`month`)&&Y(c).em(`header`,`bordered`)])},[B(`span`,{class:F(Y(c).e(`prev-btn`))},[B(`button`,{type:`button`,"aria-label":Y(f)(`el.datepicker.prevYear`),class:F([`d-arrow-left`,Y(s).e(`icon-btn`)]),disabled:Y(z),onClick:t[2]||=e=>oe(!1)},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,tM),Ge(B(`button`,{type:`button`,"aria-label":Y(f)(`el.datepicker.prevMonth`),class:F([Y(s).e(`icon-btn`),`arrow-left`]),disabled:Y(z),onClick:t[3]||=e=>ae(!1)},[I(e.$slots,`prev-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1})])],10,nM),[[jt,L.value===`date`]])],2),B(`span`,{role:`button`,class:F(Y(c).e(`header-label`)),"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,onKeydown:t[4]||=jn(e=>ge(`year`),[`enter`]),onClick:t[5]||=e=>ge(`year`)},S(se.value),43,rM),Ge(B(`span`,{role:`button`,"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,class:F([Y(c).e(`header-label`),{active:L.value===`month`}]),onKeydown:t[6]||=jn(e=>ge(`month`),[`enter`]),onClick:t[7]||=e=>ge(`month`)},S(Y(f)(`el.datepicker.month${O.value+1}`)),43,iM),[[jt,L.value===`date`]]),B(`span`,{class:F(Y(c).e(`next-btn`))},[Ge(B(`button`,{type:`button`,"aria-label":Y(f)(`el.datepicker.nextMonth`),class:F([Y(s).e(`icon-btn`),`arrow-right`]),disabled:Y(z),onClick:t[8]||=e=>ae(!0)},[I(e.$slots,`next-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})])],10,aM),[[jt,L.value===`date`]]),B(`button`,{type:`button`,"aria-label":Y(f)(`el.datepicker.nextYear`),class:F([Y(s).e(`icon-btn`),`d-arrow-right`]),disabled:Y(z),onClick:t[9]||=e=>oe(!0)},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,oM)],2)],2),[[jt,L.value!==`time`]]),B(`div`,{class:F(Y(s).e(`content`)),onKeydown:Ve},[L.value===`date`?(N(),H(Gj,{key:0,ref_key:`currentViewRef`,ref:C,"selection-mode":ue.value,date:w.value,"parsed-value":e.parsedValue,"disabled-date":Y(_),disabled:Y(z),"cell-class-name":Y(v),"show-week-number":e.showWeekNumber,onPick:ie},null,8,[`selection-mode`,`date`,`parsed-value`,`disabled-date`,`disabled`,`cell-class-name`,`show-week-number`])):G(`v-if`,!0),L.value===`year`?(N(),H($j,{key:1,ref_key:`currentViewRef`,ref:C,"selection-mode":ue.value,date:w.value,"disabled-date":Y(_),disabled:Y(z),"parsed-value":e.parsedValue,"cell-class-name":Y(v),onPick:he},null,8,[`selection-mode`,`date`,`disabled-date`,`disabled`,`parsed-value`,`cell-class-name`])):G(`v-if`,!0),L.value===`month`?(N(),H(Yj,{key:2,ref_key:`currentViewRef`,ref:C,"selection-mode":ue.value,date:w.value,"parsed-value":e.parsedValue,"disabled-date":Y(_),disabled:Y(z),"cell-class-name":Y(v),onPick:me},null,8,[`selection-mode`,`date`,`parsed-value`,`disabled-date`,`disabled`,`cell-class-name`])):G(`v-if`,!0)],34)],2)],2),e.showFooter&&ve.value&&ye.value?(N(),W(`div`,{key:0,class:F(Y(s).e(`footer`))},[Ge(J(Y(xw),{text:``,size:`small`,class:F(Y(s).e(`link-btn`)),disabled:Se.value,onClick:Ce},{default:V(()=>[Ke(S(Y(f)(`el.datepicker.now`)),1)]),_:1},8,[`class`,`disabled`]),[[jt,!de.value&&e.showNow]]),e.showConfirm?(N(),H(Y(xw),{key:0,plain:``,size:`small`,class:F(Y(s).e(`link-btn`)),disabled:be.value,onClick:xe},{default:V(()=>[Ke(S(Y(f)(`el.datepicker.confirm`)),1)]),_:1},8,[`class`,`disabled`])):G(`v-if`,!0)],2)):G(`v-if`,!0)],2))}}),cM=Q({...Tj,...Ej}),lM=e=>{let{emit:t}=Xe(),r=y(),i=le();return a=>{let o=n(a.value)?a.value():a.value;if(o){t(`pick`,[(0,Mw.default)(o[0]).locale(e.value),(0,Mw.default)(o[1]).locale(e.value)]);return}a.onClick&&a.onClick({attrs:r,slots:i,emit:t})}},uM=(e,{defaultValue:t,defaultTime:n,leftDate:r,rightDate:i,step:a,unit:o,sortDates:s})=>{let{emit:c}=Xe(),{pickerNs:u}=l(xj),d=$(`date-range-picker`),{t:f,lang:p}=Dp(),m=lM(p),h=q(),g=q(),_=q({endDate:null,selecting:!1}),v=e=>{_.value=e},y=(e=!1)=>{let t=Y(h),n=Y(g);kj([t,n])&&c(`pick`,[t,n],e)},b=e=>{_.value.selecting=e,e||(_.value.endDate=null)},x=e=>{if(A(e)&&e.length===2){let[t,n]=e;h.value=t,r.value=t,g.value=n,s(Y(h),Y(g))}else S()},S=()=>{let[s,c]=Aj(Y(t),{lang:Y(p),step:a,unit:o,unlinkPanels:e.unlinkPanels}),l=e=>e.diff(e.startOf(`d`),`ms`),u=Y(n);if(u){let e=0,t=0;if(A(u)){let[n,r]=u.map(Mw.default);e=l(n),t=l(r)}else{let n=l((0,Mw.default)(u));e=n,t=n}s=s.startOf(`d`).add(e,`ms`),c=c.startOf(`d`).add(t,`ms`)}h.value=void 0,g.value=void 0,r.value=s,i.value=c};return M(t,e=>{e&&S()},{immediate:!0}),M(()=>e.parsedValue,e=>{(!e?.length||!sd(e,[h.value,g.value]))&&x(e)},{immediate:!0}),M(()=>e.visible,()=>{e.visible&&x(e.parsedValue)},{immediate:!0}),{minDate:h,maxDate:g,rangeState:_,lang:p,ppNs:u,drpNs:d,handleChangeRange:v,handleRangeConfirm:y,handleShortcutClick:m,onSelect:b,parseValue:x,t:f}},dM=(e,t,n,r)=>{let i=q(`date`),a=q(),o=q(`date`),s=q(),{disabledDate:c}=l(Ew).props,{t:u,lang:d}=Dp(),f=K(()=>n.value.year()),p=K(()=>n.value.month()),m=K(()=>r.value.year()),h=K(()=>r.value.month());function g(e,t){let n=u(`el.datepicker.year`);if(e.value===`year`){let e=Math.floor(t.value/10)*10;return n?`${e} ${n} - ${e+9} ${n}`:`${e} - ${e+9}`}return`${t.value} ${n}`}function _(e){e?.focus()}async function v(t,n){if(e.disabled)return;let r=t===`left`?i:o,c=t===`left`?a:s;r.value=n,await U(),_(c.value)}async function y(t,l,u){if(e.disabled)return;let f=l===`left`,p=f?n:r,m=f?r:n,h=f?i:o,g=f?a:s;t===`year`&&(p.value=Pj(p.value.year(u),d.value,c)),t===`month`&&(p.value=Nj(p.value,p.value.year(),u,d.value,c)),e.unlinkPanels||(m.value=l===`left`?p.value.add(1,`month`):p.value.subtract(1,`month`)),h.value=t===`year`?`month`:`date`,await U(),_(g.value),b(t)}function b(e){t(`panel-change`,[n.value.toDate(),r.value.toDate()],e)}function x(e,t,n){let r=n?`add`:`subtract`;return e===`year`?t[r](10,`year`):t[r](1,`year`)}return{leftCurrentView:i,rightCurrentView:o,leftCurrentViewRef:a,rightCurrentViewRef:s,leftYear:f,rightYear:m,leftMonth:p,rightMonth:h,leftYearLabel:K(()=>g(i,f)),rightYearLabel:K(()=>g(o,m)),showLeftPicker:e=>v(`left`,e),showRightPicker:e=>v(`right`,e),handleLeftYearPick:e=>y(`year`,`left`,e),handleRightYearPick:e=>y(`year`,`right`,e),handleLeftMonthPick:e=>y(`month`,`left`,e),handleRightMonthPick:e=>y(`month`,`right`,e),handlePanelChange:b,adjustDateByView:x}},fM=[`disabled`,`onClick`],pM=[`aria-label`,`disabled`],mM=[`aria-label`,`disabled`],hM=[`disabled`,`aria-label`],gM=[`disabled`,`aria-label`],_M=[`tabindex`,`aria-disabled`],vM=[`tabindex`,`aria-disabled`],yM=[`disabled`,`aria-label`],bM=[`disabled`,`aria-label`],xM=[`aria-label`,`disabled`],SM=[`disabled`,`aria-label`],CM=[`tabindex`,`aria-disabled`],wM=[`tabindex`,`aria-disabled`],TM=`month`,EM=z({__name:`panel-date-range`,props:cM,emits:[`pick`,`set-picker-option`,`calendar-change`,`panel-change`,`clear`],setup(e,{emit:t}){let n=e,i=t,a=l(Ew),o=l(Sj,void 0),{disabledDate:s,cellClassName:c,defaultTime:u,clearable:d}=a.props,f=we(a.props,`format`),p=we(a.props,`shortcuts`),m=we(a.props,`defaultValue`),{lang:h}=Dp(),g=q((0,Mw.default)().locale(h.value)),_=q((0,Mw.default)().locale(h.value).add(1,TM)),{minDate:v,maxDate:y,rangeState:b,ppNs:x,drpNs:C,handleChangeRange:w,handleRangeConfirm:T,handleShortcutClick:E,onSelect:D,parseValue:O,t:k}=uM(n,{defaultValue:m,defaultTime:u,leftDate:g,rightDate:_,unit:TM,sortDates:tt});M(()=>n.visible,e=>{!e&&b.value.selecting&&(O(n.parsedValue),D(!1))});let A=q({min:null,max:null}),ee=q({min:null,max:null}),{leftCurrentView:j,rightCurrentView:P,leftCurrentViewRef:te,rightCurrentViewRef:ne,leftYear:re,rightYear:ie,leftMonth:ae,rightMonth:oe,leftYearLabel:L,rightYearLabel:se,showLeftPicker:ce,showRightPicker:le,handleLeftYearPick:ue,handleRightYearPick:de,handleLeftMonthPick:fe,handleRightMonthPick:pe,handlePanelChange:me,adjustDateByView:he}=dM(n,i,g,_),z=K(()=>!!p.value.length),ge=K(()=>A.value.min===null?v.value?v.value.format(xe.value):``:A.value.min),_e=K(()=>A.value.max===null?y.value||v.value?(y.value||v.value).format(xe.value):``:A.value.max),ve=K(()=>ee.value.min===null?v.value?v.value.format(be.value):``:ee.value.min),ye=K(()=>ee.value.max===null?y.value||v.value?(y.value||v.value).format(be.value):``:ee.value.max),be=K(()=>n.timeFormat||Iw(f.value||``)||`HH:mm:ss`),xe=K(()=>n.dateFormat||Fw(f.value||``)||`YYYY-MM-DD`),Se=e=>kj(e)&&(s?!s(e[0].toDate())&&!s(e[1].toDate()):!0),Ce=()=>{g.value=he(j.value,g.value,!1),n.unlinkPanels||(_.value=g.value.add(1,`month`)),me(`year`)},Te=()=>{g.value=g.value.subtract(1,`month`),n.unlinkPanels||(_.value=g.value.add(1,`month`)),me(`month`)},Ee=()=>{n.unlinkPanels?_.value=he(P.value,_.value,!0):(g.value=he(P.value,g.value,!0),_.value=g.value.add(1,`month`)),me(`year`)},De=()=>{n.unlinkPanels?_.value=_.value.add(1,`month`):(g.value=g.value.add(1,`month`),_.value=g.value.add(1,`month`)),me(`month`)},Oe=()=>{g.value=he(j.value,g.value,!0),me(`year`)},ke=()=>{g.value=g.value.add(1,`month`),me(`month`)},Ae=()=>{_.value=he(P.value,_.value,!1),me(`year`)},je=()=>{_.value=_.value.subtract(1,`month`),me(`month`)},Me=K(()=>{let e=(ae.value+1)%12,t=+(ae.value+1>=12);return n.singlePanel||n.unlinkPanels&&new Date(re.value+t,e)n.singlePanel||n.unlinkPanels&&ie.value*12+oe.value-(re.value*12+ae.value+1)>=12),Pe=lb(),Fe=K(()=>!(v.value&&y.value&&!b.value.selecting&&kj([v.value,y.value])&&!Pe.value)),Ie=K(()=>n.type===`datetime`||n.type===`datetimerange`),Le=(e,t)=>{if(e)return u?(0,Mw.default)(u[t]||u).locale(h.value).year(e.year()).month(e.month()).date(e.date()):e},Re=(e,t=!0)=>{let n=e.minDate,r=e.maxDate,a=Le(n,0),o=Le(r,1);y.value===o&&v.value===a||(i(`calendar-change`,[n.toDate(),r&&r.toDate()]),y.value=o,v.value=a,!Ie.value&&t&&(t=!a||!o),T(t))},ze=q(!1),Be=q(!1),Ve=()=>{ze.value=!1},He=()=>{Be.value=!1},Ue=(e,t)=>{if(!s||!s(e.toDate()))return e;let n=e.isBefore(t),r=e;for(;n?r.isBefore(t):r.isAfter(t);)if(r=n?r.add(1,`day`):r.subtract(1,`day`),!s(r.toDate()))return r;return e},We=(e,t)=>{A.value[t]=e;let r=(0,Mw.default)(e,xe.value).locale(h.value);if(r.isValid()){if(s&&s(r.toDate()))return;if(t===`min`){if(g.value=r,v.value=(v.value||g.value).year(r.year()).month(r.month()).date(r.date()),!n.unlinkPanels&&!y.value){let e=Ue(v.value.add(1,`month`),v.value);_.value=e,y.value=e}}else if(_.value=r,y.value=(y.value||_.value).year(r.year()).month(r.month()).date(r.date()),!n.unlinkPanels&&!v.value){let e=Ue(y.value.subtract(1,`month`),y.value);g.value=e,v.value=e}tt(v.value,y.value),T(!0)}},qe=(e,t)=>{if(A.value[t]=null,t===`min`){if(!n.unlinkPanels&&y.value&&v.value&&y.value.isBefore(v.value)){let e=Ue(v.value.add(1,`month`),v.value);_.value=e,y.value=e}}else if(!n.unlinkPanels&&v.value&&y.value&&v.value.isAfter(y.value)){let e=Ue(y.value.subtract(1,`month`),y.value);g.value=e,v.value=e}tt(v.value,y.value),T(!0)},Je=(e,t)=>{ee.value[t]=e;let n=(0,Mw.default)(e,be.value).locale(h.value);n.isValid()&&(t===`min`?(ze.value=!0,v.value=(v.value||g.value).hour(n.hour()).minute(n.minute()).second(n.second()),g.value=v.value):(Be.value=!0,y.value=(y.value||_.value).hour(n.hour()).minute(n.minute()).second(n.second()),_.value=y.value))},Ye=(e,t)=>{ee.value[t]=null,t===`min`?(g.value=v.value,ze.value=!1,(!y.value||y.value.isBefore(v.value))&&(y.value=v.value)):(_.value=y.value,Be.value=!1,y.value&&y.value.isBefore(v.value)&&(v.value=y.value)),T(!0)},Xe=(e,t,r)=>{ee.value.min||(e&&(v.value=(v.value||g.value).hour(e.hour()).minute(e.minute()).second(e.second())),r||(ze.value=t),(!y.value||y.value.isBefore(v.value))&&(y.value=v.value,_.value=e,U(()=>{O(n.parsedValue)})),T(!0))},Ze=(e,t,n)=>{ee.value.max||(e&&(y.value=(y.value||_.value).hour(e.hour()).minute(e.minute()).second(e.second())),n||(Be.value=t),y.value&&y.value.isBefore(v.value)&&(v.value=y.value),T(!0))},Qe=()=>{$e(),i(`clear`)},$e=()=>{let e=null;a?.emptyValues&&(e=a.emptyValues.valueOnClear.value),g.value=Aj(Y(m),{lang:Y(h),unit:`month`,unlinkPanels:n.unlinkPanels})[0],_.value=g.value.add(1,`month`),y.value=void 0,v.value=void 0,T(!0),i(`pick`,e)},et=e=>Fj(e,f.value||``,h.value,o);function tt(e,t){if(n.unlinkPanels&&t){let n=e?.year()||0,r=e?.month()||0,i=t.year(),a=t.month();_.value=n===i&&r===a?t.add(1,TM):t}else _.value=g.value.add(1,TM),t&&(_.value=_.value.hour(t.hour()).minute(t.minute()).second(t.second()))}return i(`set-picker-option`,[`isValidValue`,Se]),i(`set-picker-option`,[`parseUserInput`,et]),i(`set-picker-option`,[`handleClear`,$e]),(e,t)=>(N(),W(`div`,{class:F([Y(x).b(),Y(C).b(),Y(x).is(`border`,e.border),Y(x).is(`disabled`,Y(Pe)),{"has-sidebar":e.$slots.sidebar||z.value,"has-time":Ie.value,"single-panel":e.singlePanel}])},[B(`div`,{class:F(Y(x).e(`body-wrapper`))},[I(e.$slots,`sidebar`,{class:F(Y(x).e(`sidebar`))}),z.value?(N(),W(`div`,{key:0,class:F(Y(x).e(`sidebar`))},[(N(!0),W(R,null,r(p.value,(e,t)=>(N(),W(`button`,{key:t,type:`button`,disabled:Y(Pe),class:F(Y(x).e(`shortcut`)),onClick:t=>Y(E)(e)},S(e.text),11,fM))),128))],2)):G(`v-if`,!0),B(`div`,{class:F(Y(x).e(`body`))},[Ie.value?(N(),W(`div`,{key:0,class:F(Y(C).e(`time-header`))},[B(`span`,{class:F(Y(C).e(`editors-wrap`))},[B(`span`,{class:F(Y(C).e(`time-picker-wrap`))},[J(Y(zS),{size:`small`,disabled:Y(b).selecting||Y(Pe),placeholder:Y(k)(`el.datepicker.startDate`),class:F(Y(C).e(`editor`)),"model-value":ge.value,"validate-event":!1,readonly:!e.editable,onInput:t[0]||=e=>We(e,`min`),onChange:t[1]||=e=>qe(e,`min`)},null,8,[`disabled`,`placeholder`,`class`,`model-value`,`readonly`])],2),Ge((N(),W(`span`,{class:F(Y(C).e(`time-picker-wrap`))},[J(Y(zS),{size:`small`,class:F(Y(C).e(`editor`)),disabled:Y(b).selecting||Y(Pe),placeholder:Y(k)(`el.datepicker.startTime`),"model-value":ve.value,"validate-event":!1,readonly:!e.editable,onFocus:t[2]||=e=>ze.value=!0,onInput:t[3]||=e=>Je(e,`min`),onChange:t[4]||=e=>Ye(e,`min`)},null,8,[`class`,`disabled`,`placeholder`,`model-value`,`readonly`]),J(Y(XT),{visible:ze.value,format:be.value,"datetime-role":`start`,"parsed-value":Y(v)||g.value,onPick:Xe},null,8,[`visible`,`format`,`parsed-value`])],2)),[[Y(eT),Ve]])],2),B(`span`,null,[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})]),B(`span`,{class:F([Y(C).e(`editors-wrap`),`is-right`])},[B(`span`,{class:F(Y(C).e(`time-picker-wrap`))},[J(Y(zS),{size:`small`,class:F(Y(C).e(`editor`)),disabled:Y(b).selecting||Y(Pe),placeholder:Y(k)(`el.datepicker.endDate`),"model-value":_e.value,readonly:!Y(v)||!e.editable,"validate-event":!1,onInput:t[5]||=e=>We(e,`max`),onChange:t[6]||=e=>qe(e,`max`)},null,8,[`class`,`disabled`,`placeholder`,`model-value`,`readonly`])],2),Ge((N(),W(`span`,{class:F(Y(C).e(`time-picker-wrap`))},[J(Y(zS),{size:`small`,class:F(Y(C).e(`editor`)),disabled:Y(b).selecting||Y(Pe),placeholder:Y(k)(`el.datepicker.endTime`),"model-value":ye.value,readonly:!Y(v)||!e.editable,"validate-event":!1,onFocus:t[7]||=e=>Y(v)&&(Be.value=!0),onInput:t[8]||=e=>Je(e,`max`),onChange:t[9]||=e=>Ye(e,`max`)},null,8,[`class`,`disabled`,`placeholder`,`model-value`,`readonly`]),J(Y(XT),{"datetime-role":`end`,visible:Be.value,format:be.value,"parsed-value":Y(y)||_.value,onPick:Ze},null,8,[`visible`,`format`,`parsed-value`])],2)),[[Y(eT),He]])],2)],2)):G(`v-if`,!0),B(`div`,{class:F([Y(x).e(`content`),Y(C).e(`content`),Y(C).is(`left`,!e.singlePanel)])},[B(`div`,{class:F(Y(C).e(`header`))},[B(`button`,{type:`button`,class:F([Y(x).e(`icon-btn`),`d-arrow-left`]),"aria-label":Y(k)(`el.datepicker.prevYear`),disabled:Y(Pe),onClick:Ce},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,pM),Ge(B(`button`,{type:`button`,class:F([Y(x).e(`icon-btn`),`arrow-left`]),"aria-label":Y(k)(`el.datepicker.prevMonth`),disabled:Y(Pe),onClick:Te},[I(e.$slots,`prev-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1})])],10,mM),[[jt,Y(j)===`date`]]),e.unlinkPanels||e.singlePanel?(N(),W(`button`,{key:0,type:`button`,disabled:!Ne.value||Y(Pe),class:F([[Y(x).e(`icon-btn`),Y(x).is(`disabled`,!Ne.value||Y(Pe))],`d-arrow-right`]),"aria-label":Y(k)(`el.datepicker.nextYear`),onClick:Oe},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,hM)):G(`v-if`,!0),e.unlinkPanels&&Y(j)===`date`||e.singlePanel?(N(),W(`button`,{key:1,type:`button`,disabled:!Me.value||Y(Pe),class:F([[Y(x).e(`icon-btn`),Y(x).is(`disabled`,!Me.value||Y(Pe))],`arrow-right`]),"aria-label":Y(k)(`el.datepicker.nextMonth`),onClick:ke},[I(e.$slots,`next-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})])],10,gM)):G(`v-if`,!0),B(`div`,null,[B(`span`,{role:`button`,class:F(Y(C).e(`header-label`)),"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,onKeydown:t[10]||=jn(e=>Y(ce)(`year`),[`enter`]),onClick:t[11]||=e=>Y(ce)(`year`)},S(Y(L)),43,_M),Ge(B(`span`,{role:`button`,"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,class:F([Y(C).e(`header-label`),{active:Y(j)===`month`}]),onKeydown:t[12]||=jn(e=>Y(ce)(`month`),[`enter`]),onClick:t[13]||=e=>Y(ce)(`month`)},S(Y(k)(`el.datepicker.month${g.value.month()+1}`)),43,vM),[[jt,Y(j)===`date`]])])],2),Y(j)===`date`?(N(),H(Gj,{key:0,ref_key:`leftCurrentViewRef`,ref:te,"selection-mode":`range`,date:g.value,"min-date":Y(v),"max-date":Y(y),"range-state":Y(b),"disabled-date":Y(s),"cell-class-name":Y(c),"show-week-number":e.showWeekNumber,disabled:Y(Pe),onChangerange:Y(w),onPick:Re,onSelect:Y(D)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`cell-class-name`,`show-week-number`,`disabled`,`onChangerange`,`onSelect`])):G(`v-if`,!0),Y(j)===`year`?(N(),H($j,{key:1,ref_key:`leftCurrentViewRef`,ref:te,"selection-mode":`year`,date:g.value,"disabled-date":Y(s),"parsed-value":e.parsedValue,disabled:Y(Pe),onPick:Y(ue)},null,8,[`date`,`disabled-date`,`parsed-value`,`disabled`,`onPick`])):G(`v-if`,!0),Y(j)===`month`?(N(),H(Yj,{key:2,ref_key:`leftCurrentViewRef`,ref:te,"selection-mode":`month`,date:g.value,"parsed-value":e.parsedValue,"disabled-date":Y(s),disabled:Y(Pe),onPick:Y(fe)},null,8,[`date`,`parsed-value`,`disabled-date`,`disabled`,`onPick`])):G(`v-if`,!0)],2),e.singlePanel?G(`v-if`,!0):(N(),W(`div`,{key:1,class:F([[Y(x).e(`content`),Y(C).e(`content`)],`is-right`])},[B(`div`,{class:F(Y(C).e(`header`))},[e.unlinkPanels?(N(),W(`button`,{key:0,type:`button`,disabled:!Ne.value||Y(Pe),class:F([[Y(x).e(`icon-btn`),Y(x).is(`disabled`,!Ne.value||Y(Pe))],`d-arrow-left`]),"aria-label":Y(k)(`el.datepicker.prevYear`),onClick:Ae},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,yM)):G(`v-if`,!0),e.unlinkPanels&&Y(P)===`date`?(N(),W(`button`,{key:1,type:`button`,disabled:!Me.value||Y(Pe),class:F([[Y(x).e(`icon-btn`),Y(x).is(`disabled`,!Me.value||Y(Pe))],`arrow-left`]),"aria-label":Y(k)(`el.datepicker.prevMonth`),onClick:je},[I(e.$slots,`prev-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1})])],10,bM)):G(`v-if`,!0),B(`button`,{type:`button`,"aria-label":Y(k)(`el.datepicker.nextYear`),class:F([Y(x).e(`icon-btn`),`d-arrow-right`]),disabled:Y(Pe),onClick:Ee},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,xM),Ge(B(`button`,{type:`button`,class:F([Y(x).e(`icon-btn`),`arrow-right`]),disabled:Y(Pe),"aria-label":Y(k)(`el.datepicker.nextMonth`),onClick:De},[I(e.$slots,`next-month`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})])],10,SM),[[jt,Y(P)===`date`]]),B(`div`,null,[B(`span`,{role:`button`,class:F(Y(C).e(`header-label`)),"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,onKeydown:t[14]||=jn(e=>Y(le)(`year`),[`enter`]),onClick:t[15]||=e=>Y(le)(`year`)},S(Y(se)),43,CM),Ge(B(`span`,{role:`button`,"aria-live":`polite`,tabindex:e.disabled?void 0:0,"aria-disabled":e.disabled,class:F([Y(C).e(`header-label`),{active:Y(P)===`month`}]),onKeydown:t[16]||=jn(e=>Y(le)(`month`),[`enter`]),onClick:t[17]||=e=>Y(le)(`month`)},S(Y(k)(`el.datepicker.month${_.value.month()+1}`)),43,wM),[[jt,Y(P)===`date`]])])],2),Y(P)===`date`?(N(),H(Gj,{key:0,ref_key:`rightCurrentViewRef`,ref:ne,"selection-mode":`range`,date:_.value,"min-date":Y(v),"max-date":Y(y),"range-state":Y(b),"disabled-date":Y(s),"cell-class-name":Y(c),"show-week-number":e.showWeekNumber,disabled:Y(Pe),onChangerange:Y(w),onPick:Re,onSelect:Y(D)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`cell-class-name`,`show-week-number`,`disabled`,`onChangerange`,`onSelect`])):G(`v-if`,!0),Y(P)===`year`?(N(),H($j,{key:1,ref_key:`rightCurrentViewRef`,ref:ne,"selection-mode":`year`,date:_.value,"disabled-date":Y(s),"parsed-value":e.parsedValue,disabled:Y(Pe),onPick:Y(de)},null,8,[`date`,`disabled-date`,`parsed-value`,`disabled`,`onPick`])):G(`v-if`,!0),Y(P)===`month`?(N(),H(Yj,{key:2,ref_key:`rightCurrentViewRef`,ref:ne,"selection-mode":`month`,date:_.value,"parsed-value":e.parsedValue,"disabled-date":Y(s),disabled:Y(Pe),onPick:Y(pe)},null,8,[`date`,`parsed-value`,`disabled-date`,`disabled`,`onPick`])):G(`v-if`,!0)],2))],2)],2),e.showFooter&&Ie.value&&(e.showConfirm||Y(d))?(N(),W(`div`,{key:0,class:F(Y(x).e(`footer`))},[Y(d)?(N(),H(Y(xw),{key:0,text:``,size:`small`,class:F(Y(x).e(`link-btn`)),onClick:Qe},{default:V(()=>[Ke(S(Y(k)(`el.datepicker.clear`)),1)]),_:1},8,[`class`])):G(`v-if`,!0),e.showConfirm?(N(),H(Y(xw),{key:1,plain:``,size:`small`,class:F(Y(x).e(`link-btn`)),disabled:Fe.value,onClick:t[18]||=e=>Y(T)(!1)},{default:V(()=>[Ke(S(Y(k)(`el.datepicker.confirm`)),1)]),_:1},8,[`class`,`disabled`])):G(`v-if`,!0)],2)):G(`v-if`,!0)],2))}}),DM=Q({...Ej}),OM=[`pick`,`set-picker-option`,`calendar-change`],kM=({unlinkPanels:e,leftDate:t,rightDate:n})=>{let{t:r}=Dp();return{leftPrevYear:()=>{t.value=t.value.subtract(1,`year`),e.value||(n.value=n.value.subtract(1,`year`))},rightNextYear:()=>{e.value||(t.value=t.value.add(1,`year`)),n.value=n.value.add(1,`year`)},leftNextYear:()=>{t.value=t.value.add(1,`year`)},rightPrevYear:()=>{n.value=n.value.subtract(1,`year`)},leftLabel:K(()=>`${t.value.year()} ${r(`el.datepicker.year`)}`),rightLabel:K(()=>`${n.value.year()} ${r(`el.datepicker.year`)}`),leftYear:K(()=>t.value.year()),rightYear:K(()=>n.value.year()===t.value.year()?t.value.year()+1:n.value.year())}},AM=[`disabled`,`onClick`],jM=[`disabled`],MM=[`disabled`],NM=[`disabled`],PM=[`disabled`],FM=`year`,IM=z({name:`DatePickerMonthRange`,__name:`panel-month-range`,props:DM,emits:OM,setup(e,{emit:t}){let n=e,i=t,{lang:a}=Dp(),o=l(Ew),s=l(Sj,void 0),{shortcuts:c,disabledDate:u,cellClassName:d}=o.props,f=we(o.props,`format`),p=we(o.props,`defaultValue`),m=q((0,Mw.default)().locale(a.value)),h=q((0,Mw.default)().locale(a.value).add(1,FM)),{minDate:g,maxDate:_,rangeState:v,ppNs:y,drpNs:b,handleChangeRange:x,handleRangeConfirm:C,handleShortcutClick:w,onSelect:T,parseValue:E}=uM(n,{defaultValue:p,leftDate:m,rightDate:h,unit:FM,sortDates:L}),D=K(()=>!!c.length),{leftPrevYear:O,rightNextYear:k,leftNextYear:A,rightPrevYear:ee,leftLabel:j,rightLabel:P,leftYear:te,rightYear:ne}=kM({unlinkPanels:we(n,`unlinkPanels`),leftDate:m,rightDate:h}),re=K(()=>n.singlePanel||n.unlinkPanels&&ne.value>te.value+1),ie=(e,t=!0)=>{let n=e.minDate,r=e.maxDate;_.value===r&&g.value===n||(i(`calendar-change`,[n.toDate(),r&&r.toDate()]),_.value=r,g.value=n,t&&C())},ae=()=>{let e=null;o?.emptyValues&&(e=o.emptyValues.valueOnClear.value),m.value=Aj(Y(p),{lang:Y(a),unit:`year`,unlinkPanels:n.unlinkPanels})[0],h.value=m.value.add(1,`year`),i(`pick`,e)},oe=e=>Fj(e,f.value,a.value,s);function L(e,t){n.unlinkPanels&&t?h.value=(e?.year()||0)===t.year()?t.add(1,FM):t:h.value=m.value.add(1,FM)}let se=lb();return M(()=>n.visible,e=>{!e&&v.value.selecting&&(E(n.parsedValue),T(!1))}),i(`set-picker-option`,[`isValidValue`,kj]),i(`set-picker-option`,[`parseUserInput`,oe]),i(`set-picker-option`,[`handleClear`,ae]),(e,t)=>(N(),W(`div`,{class:F([Y(y).b(),Y(b).b(),Y(y).is(`border`,e.border),Y(y).is(`disabled`,Y(se)),{"has-sidebar":!!e.$slots.sidebar||D.value,"single-panel":e.singlePanel}])},[B(`div`,{class:F(Y(y).e(`body-wrapper`))},[I(e.$slots,`sidebar`,{class:F(Y(y).e(`sidebar`))}),D.value?(N(),W(`div`,{key:0,class:F(Y(y).e(`sidebar`))},[(N(!0),W(R,null,r(Y(c),(e,t)=>(N(),W(`button`,{key:t,type:`button`,class:F(Y(y).e(`shortcut`)),disabled:Y(se),onClick:t=>Y(w)(e)},S(e.text),11,AM))),128))],2)):G(`v-if`,!0),B(`div`,{class:F(Y(y).e(`body`))},[B(`div`,{class:F([Y(y).e(`content`),Y(b).e(`content`),Y(b).is(`left`,!e.singlePanel)])},[B(`div`,{class:F(Y(b).e(`header`))},[B(`button`,{type:`button`,class:F([Y(y).e(`icon-btn`),`d-arrow-left`]),disabled:Y(se),onClick:t[0]||=(...e)=>Y(O)&&Y(O)(...e)},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,jM),e.unlinkPanels||e.singlePanel?(N(),W(`button`,{key:0,type:`button`,disabled:!re.value||Y(se),class:F([[Y(y).e(`icon-btn`),Y(y).is(`disabled`,!re.value||Y(se))],`d-arrow-right`]),onClick:t[1]||=(...e)=>Y(A)&&Y(A)(...e)},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,MM)):G(`v-if`,!0),B(`div`,null,S(Y(j)),1)],2),J(Yj,{"selection-mode":`range`,date:m.value,"min-date":Y(g),"max-date":Y(_),"range-state":Y(v),"disabled-date":Y(u),disabled:Y(se),"cell-class-name":Y(d),onChangerange:Y(x),onPick:ie,onSelect:Y(T)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`disabled`,`cell-class-name`,`onChangerange`,`onSelect`])],2),e.singlePanel?G(`v-if`,!0):(N(),W(`div`,{key:0,class:F([[Y(y).e(`content`),Y(b).e(`content`)],`is-right`])},[B(`div`,{class:F(Y(b).e(`header`))},[e.unlinkPanels?(N(),W(`button`,{key:0,type:`button`,disabled:!re.value||Y(se),class:F([[Y(y).e(`icon-btn`),Y(y).is(`disabled`,!re.value||Y(se))],`d-arrow-left`]),onClick:t[2]||=(...e)=>Y(ee)&&Y(ee)(...e)},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,NM)):G(`v-if`,!0),B(`button`,{type:`button`,class:F([Y(y).e(`icon-btn`),`d-arrow-right`]),disabled:Y(se),onClick:t[3]||=(...e)=>Y(k)&&Y(k)(...e)},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,PM),B(`div`,null,S(Y(P)),1)],2),J(Yj,{"selection-mode":`range`,date:h.value,"min-date":Y(g),"max-date":Y(_),"range-state":Y(v),"disabled-date":Y(u),disabled:Y(se),"cell-class-name":Y(d),onChangerange:Y(x),onPick:ie,onSelect:Y(T)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`disabled`,`cell-class-name`,`onChangerange`,`onSelect`])],2))],2)],2)],2))}}),LM=Q({...Ej}),RM=[`pick`,`set-picker-option`,`calendar-change`],zM=({unlinkPanels:e,leftDate:t,rightDate:n})=>({leftPrevYear:()=>{t.value=t.value.subtract(10,`year`),e.value||(n.value=n.value.subtract(10,`year`))},rightNextYear:()=>{e.value||(t.value=t.value.add(10,`year`)),n.value=n.value.add(10,`year`)},leftNextYear:()=>{t.value=t.value.add(10,`year`)},rightPrevYear:()=>{n.value=n.value.subtract(10,`year`)},leftLabel:K(()=>{let e=Math.floor(t.value.year()/10)*10;return`${e}-${e+9}`}),rightLabel:K(()=>{let e=Math.floor(n.value.year()/10)*10;return`${e}-${e+9}`}),leftYear:K(()=>Math.floor(t.value.year()/10)*10+9),rightYear:K(()=>Math.floor(n.value.year()/10)*10)}),BM=[`disabled`,`onClick`],VM=[`disabled`],HM=[`disabled`],UM=[`disabled`],WM=[`disabled`],GM=10,KM=`year`,qM=z({name:`DatePickerYearRange`,__name:`panel-year-range`,props:LM,emits:RM,setup(e,{emit:t}){let n=e,i=t,{lang:a}=Dp(),o=q((0,Mw.default)().locale(a.value)),s=q((0,Mw.default)().locale(a.value).add(GM,KM)),c=l(Sj,void 0),u=l(Ew),{shortcuts:d,disabledDate:f,cellClassName:p}=u.props,m=we(u.props,`format`),h=we(u.props,`defaultValue`),{minDate:g,maxDate:_,rangeState:v,ppNs:y,drpNs:b,handleChangeRange:x,handleRangeConfirm:C,handleShortcutClick:w,onSelect:T,parseValue:E}=uM(n,{defaultValue:h,leftDate:o,rightDate:s,step:GM,unit:KM,sortDates:fe}),{leftPrevYear:D,rightNextYear:O,leftNextYear:k,rightPrevYear:A,leftLabel:ee,rightLabel:j,leftYear:P,rightYear:te}=zM({unlinkPanels:we(n,`unlinkPanels`),leftDate:o,rightDate:s}),ne=lb(),re=K(()=>!!d.length),ie=K(()=>[y.b(),b.b(),y.is(`border`,n.border),y.is(`disabled`,ne.value),{"has-sidebar":!!le().sidebar||re.value,"single-panel":n.singlePanel}]),ae=K(()=>({content:[y.e(`content`),b.e(`content`),b.is(`left`,!n.singlePanel)],arrowLeftBtn:[y.e(`icon-btn`),`d-arrow-left`],arrowRightBtn:[y.e(`icon-btn`),y.is(`disabled`,!L.value||ne.value),`d-arrow-right`]})),oe=K(()=>({content:[y.e(`content`),b.e(`content`),`is-right`],arrowLeftBtn:[y.e(`icon-btn`),y.is(`disabled`,!L.value||ne.value),`d-arrow-left`],arrowRightBtn:[y.e(`icon-btn`),`d-arrow-right`]})),L=K(()=>n.singlePanel||n.unlinkPanels&&te.value>P.value+1),se=(e,t=!0)=>{let n=e.minDate,r=e.maxDate;_.value===r&&g.value===n||(i(`calendar-change`,[n.toDate(),r&&r.toDate()]),_.value=r,g.value=n,t&&C())},ce=e=>Fj(e,m.value,a.value,c),ue=e=>kj(e)&&(f?!f(e[0].toDate())&&!f(e[1].toDate()):!0),de=()=>{let e=null;u?.emptyValues&&(e=u.emptyValues.valueOnClear.value);let t=Aj(Y(h),{lang:Y(a),step:GM,unit:KM,unlinkPanels:n.unlinkPanels});o.value=t[0],s.value=t[1],i(`pick`,e)};function fe(e,t){if(n.unlinkPanels&&t){let n=e?.year()||0,r=t.year();s.value=n+GM>r?t.add(GM,KM):t}else s.value=o.value.add(GM,KM)}return M(()=>n.visible,e=>{!e&&v.value.selecting&&(E(n.parsedValue),T(!1))}),i(`set-picker-option`,[`isValidValue`,ue]),i(`set-picker-option`,[`parseUserInput`,ce]),i(`set-picker-option`,[`handleClear`,de]),(e,t)=>(N(),W(`div`,{class:F(ie.value)},[B(`div`,{class:F(Y(y).e(`body-wrapper`))},[I(e.$slots,`sidebar`,{class:F(Y(y).e(`sidebar`))}),re.value?(N(),W(`div`,{key:0,class:F(Y(y).e(`sidebar`))},[(N(!0),W(R,null,r(Y(d),(e,t)=>(N(),W(`button`,{key:t,type:`button`,class:F(Y(y).e(`shortcut`)),disabled:Y(ne),onClick:t=>Y(w)(e)},S(e.text),11,BM))),128))],2)):G(`v-if`,!0),B(`div`,{class:F(Y(y).e(`body`))},[B(`div`,{class:F(ae.value.content)},[B(`div`,{class:F(Y(b).e(`header`))},[B(`button`,{type:`button`,class:F(ae.value.arrowLeftBtn),disabled:Y(ne),onClick:t[0]||=(...e)=>Y(D)&&Y(D)(...e)},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,VM),e.unlinkPanels||e.singlePanel?(N(),W(`button`,{key:0,type:`button`,disabled:!L.value||Y(ne),class:F(ae.value.arrowRightBtn),onClick:t[1]||=(...e)=>Y(k)&&Y(k)(...e)},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,HM)):G(`v-if`,!0),B(`div`,null,S(Y(ee)),1)],2),J($j,{"selection-mode":`range`,date:o.value,"min-date":Y(g),"max-date":Y(_),"range-state":Y(v),"disabled-date":Y(f),disabled:Y(ne),"cell-class-name":Y(p),onChangerange:Y(x),onPick:se,onSelect:Y(T)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`disabled`,`cell-class-name`,`onChangerange`,`onSelect`])],2),e.singlePanel?G(`v-if`,!0):(N(),W(`div`,{key:0,class:F(oe.value.content)},[B(`div`,{class:F(Y(b).e(`header`))},[e.unlinkPanels?(N(),W(`button`,{key:0,type:`button`,disabled:!L.value||Y(ne),class:F(oe.value.arrowLeftBtn),onClick:t[2]||=(...e)=>Y(A)&&Y(A)(...e)},[I(e.$slots,`prev-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ny))]),_:1})])],10,UM)):G(`v-if`,!0),B(`button`,{type:`button`,class:F(oe.value.arrowRightBtn),disabled:Y(ne),onClick:t[3]||=(...e)=>Y(O)&&Y(O)(...e)},[I(e.$slots,`next-year`,{},()=>[J(Y(By),null,{default:V(()=>[J(Y(ry))]),_:1})])],10,WM),B(`div`,null,S(Y(j)),1)],2),J($j,{"selection-mode":`range`,date:s.value,"min-date":Y(g),"max-date":Y(_),"range-state":Y(v),"disabled-date":Y(f),disabled:Y(ne),"cell-class-name":Y(p),onChangerange:Y(x),onPick:se,onSelect:Y(T)},null,8,[`date`,`min-date`,`max-date`,`range-state`,`disabled-date`,`disabled`,`cell-class-name`,`onChangerange`,`onSelect`])],2))],2)],2)],2))}}),JM=function(e){switch(e){case`daterange`:case`datetimerange`:return EM;case`monthrange`:return IM;case`yearrange`:return qM;default:return sM}},YM=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_advancedFormat=r()})(e,(function(){return function(e,t){var n=t.prototype,r=n.format;n.format=function(e){var t=this,n=this.$locale();if(!this.isValid())return r.bind(this)(e);var i=this.$utils(),a=(e||`YYYY-MM-DDTHH:mm:ssZ`).replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case`Q`:return Math.ceil((t.$M+1)/3);case`Do`:return n.ordinal(t.$D);case`gggg`:return t.weekYear();case`GGGG`:return t.isoWeekYear();case`wo`:return n.ordinal(t.week(),`W`);case`w`:case`ww`:return i.s(t.week(),e===`w`?1:2,`0`);case`W`:case`WW`:return i.s(t.isoWeek(),e===`W`?1:2,`0`);case`k`:case`kk`:return i.s(String(t.$H===0?24:t.$H),e===`k`?1:2,`0`);case`X`:return Math.floor(t.$d.getTime()/1e3);case`x`:return t.$d.getTime();case`z`:return`[`+t.offsetName()+`]`;case`zzz`:return`[`+t.offsetName(`long`)+`]`;default:return e}}));return r.bind(this)(a)}}}))})),XM=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekOfYear=r()})(e,(function(){var e=`week`,t=`year`;return function(n,r,i){var a=r.prototype;a.week=function(n){if(n===void 0&&(n=null),n!==null)return this.add(7*(n-this.week()),`day`);var r=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){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)}}}))})),ZM=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_weekYear=r()})(e,(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}}}))})),QM=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_dayOfYear=r()})(e,(function(){return function(e,t,n){t.prototype.dayOfYear=function(e){var t=Math.round((n(this).startOf(`day`)-n(this).startOf(`year`))/864e5)+1;return e==null?t:this.add(e-t,`day`)}}}))})),$M=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_isSameOrAfter=r()})(e,(function(){return function(e,t){t.prototype.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)}}}))})),eN=ue(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):(n=typeof globalThis<`u`?globalThis:n||self).dayjs_plugin_isSameOrBefore=r()})(e,(function(){return function(e,t){t.prototype.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)}}}))})),tN=fe(YM(),1),nN=fe(XM(),1),rN=fe(ZM(),1),iN=fe(QM(),1),aN=fe($M(),1),oN=fe(eN(),1);function sN(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}Mw.default.extend(GE.default),Mw.default.extend(tN.default),Mw.default.extend(eE.default),Mw.default.extend(nN.default),Mw.default.extend(rN.default),Mw.default.extend(iN.default),Mw.default.extend(aN.default),Mw.default.extend(oN.default);var cN=Pv(z({name:`ElDatePickerPanel`,install:null,inheritAttrs:!1,props:bj,emits:[br,`calendar-change`,`panel-change`,`visible-change`,`clear`],setup(e,{slots:t,emit:n,attrs:r}){let i=$(`picker-panel`);Ad(l(`EP_PICKER_BASE`,void 0))&&Qe(Ew,{props:ve({...Se(e)})}),Qe(xj,{slots:t,pickerNs:i});let{parsedValue:a,onCalendarChange:o,onPanelChange:s,onSetPickerOption:c,onPick:u}=l(Ow,()=>qw(e,n),!0);return()=>J(JM(e.type),k(vd(r,`onPick`),e,{parsedValue:a.value,"onSet-picker-option":c,"onCalendar-change":o,"onPanel-change":s,onClear:()=>n(`clear`),onPick:u}),sN(t)?t:{default:()=>[t]})}})),lN=Q({...Gw,type:{type:Z(String),default:`date`}});function uN(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var dN=Pv(z({name:`ElDatePicker`,install:null,props:lN,emits:[br],setup(e,{expose:t,emit:n,slots:r}){Qe(Sj,K(()=>!e.format)),Qe(Dw,ve(we(e,`popperOptions`)));let i=q();t({focus:()=>{i.value?.focus()},blur:()=>{i.value?.blur()},handleOpen:()=>{i.value?.handleOpen()},handleClose:()=>{i.value?.handleClose()}});let a=e=>{n(br,e)};return()=>J(Zw,k(e,{format:e.format??(jw[e.type]||`YYYY-MM-DD`),type:e.type,ref:i,"onUpdate:modelValue":a}),{default:t=>J(cN,k({disabled:e.disabled,editable:e.editable,border:!1},t),uN(r)?r:{default:()=>[r]}),"range-separator":r[`range-separator`]})}})),fN=Q({border:Boolean,column:{type:Number,default:3},direction:{type:String,values:[`horizontal`,`vertical`],default:`horizontal`},size:xv,title:{type:String,default:``},extra:{type:String,default:``},labelWidth:{type:[String,Number]}}),pN=`ElDescriptionsItem`,mN=z({name:pN,props:Q({label:{type:String,default:``},span:{type:Number,default:1},rowspan:{type:Number,default:1},width:{type:[String,Number],default:``},minWidth:{type:[String,Number],default:``},labelWidth:{type:[String,Number]},align:{type:String,values:Tr,default:`left`},labelAlign:{type:String,values:Tr},className:{type:String,default:``},labelClassName:{type:String,default:``}})}),hN=Symbol(`elDescriptions`),gN=Q({row:{type:Z(Array),default:()=>[]}}),_N=z({name:`ElDescriptionsCell`,props:{cell:{type:Object},tag:{type:String,default:`td`},type:{type:String}},setup(){return{descriptions:l(hN,{})}},render(){let e=_v(this.cell),t=(this.cell?.dirs||[]).map(e=>{let{dir:t,arg:n,modifiers:r,value:i}=e;return[t,i,n,r]}),{border:n,direction:r}=this.descriptions,i=r===`vertical`,a=()=>this.cell?.children?.label?.()||e.label,o=()=>this.cell?.children?.default?.(),s=e.span,c=e.rowspan,l=e.align?`is-${e.align}`:``,u=e.labelAlign?`is-${e.labelAlign}`:l,d=e.className,f=e.labelClassName,p={width:bp(this.type===`label`?e.labelWidth??this.descriptions.labelWidth??e.width:e.width),minWidth:bp(e.minWidth)},m=$(`descriptions`);switch(this.type){case`label`:return Ge(Je(this.tag,{style:p,class:[m.e(`cell`),m.e(`label`),m.is(`bordered-label`,n),m.is(`vertical-label`,i),u,f],colSpan:i?s:1,rowspan:i?1:c},a()),t);case`content`:return Ge(Je(this.tag,{style:p,class:[m.e(`cell`),m.e(`content`),m.is(`bordered-content`,n),m.is(`vertical-content`,i),l,d],colSpan:i?s:s*2-1,rowspan:i?c*2-1:c},o()),t);default:{let n=a(),r={},i=bp(e.labelWidth??this.descriptions.labelWidth);return i&&(r.width=i,r.display=`inline-block`),Ge(Je(`td`,{style:p,class:[m.e(`cell`),l],colSpan:s,rowspan:c},[cd(n)?void 0:Je(`span`,{style:r,class:[m.e(`label`),f]},n),Je(`span`,{class:[m.e(`content`),d]},o())]),t)}}}}),vN={key:1},yN=z({name:`ElDescriptionsRow`,__name:`descriptions-row`,props:gN,setup(e){let t=l(hN,{});return(n,i)=>Y(t).direction===`vertical`?(N(),W(R,{key:0},[B(`tr`,null,[(N(!0),W(R,null,r(e.row,(e,t)=>(N(),H(Y(_N),{key:`tr1-${t}`,cell:e,tag:`th`,type:`label`},null,8,[`cell`]))),128))]),B(`tr`,null,[(N(!0),W(R,null,r(e.row,(e,t)=>(N(),H(Y(_N),{key:`tr2-${t}`,cell:e,tag:`td`,type:`content`},null,8,[`cell`]))),128))])],64)):(N(),W(`tr`,vN,[(N(!0),W(R,null,r(e.row,(e,n)=>(N(),W(R,{key:`tr3-${n}`},[Y(t).border?(N(),W(R,{key:0},[J(Y(_N),{cell:e,tag:`td`,type:`label`},null,8,[`cell`]),J(Y(_N),{cell:e,tag:`td`,type:`content`},null,8,[`cell`])],64)):(N(),H(Y(_N),{key:1,cell:e,tag:`td`,type:`both`},null,8,[`cell`]))],64))),128))]))}}),bN=Pv(z({name:`ElDescriptions`,__name:`description`,props:fN,setup(e){let t=e,n=$(`descriptions`),i=cb(),a=le();Qe(hN,t);let o=K(()=>[n.b(),n.m(i.value)]),s=(e,t,n,r=!1)=>(e.props||={},t>n&&(e.props.span=n),r&&(e.props.span=t),e),c=()=>{if(!a.default)return[];let e=vv(a.default()).filter(e=>e?.type?.name===pN),n=[],r=[],i=t.column,o=0,c=[];return e.forEach((a,l)=>{let u=a.props?.span||1,d=a.props?.rowspan||1,f=n.length;if(c[f]||=0,d>1)for(let e=1;e0&&(i-=c[f],c[f]=0),li?i:u),l===e.length-1){let e=t.column-o%t.column;r.push(s(a,e,i,!0)),n.push(r);return}u(N(),W(`div`,{class:F(o.value)},[e.title||e.extra||t.$slots.title||t.$slots.extra?(N(),W(`div`,{key:0,class:F(Y(n).e(`header`))},[B(`div`,{class:F(Y(n).e(`title`))},[I(t.$slots,`title`,{},()=>[Ke(S(e.title),1)])],2),B(`div`,{class:F(Y(n).e(`extra`))},[I(t.$slots,`extra`,{},()=>[Ke(S(e.extra),1)])],2)],2)):G(`v-if`,!0),B(`div`,{class:F(Y(n).e(`body`))},[B(`table`,{class:F([Y(n).e(`table`),Y(n).is(`bordered`,e.border)])},[B(`tbody`,null,[(N(!0),W(R,null,r(c(),(e,t)=>(N(),H(yN,{key:t,row:e},null,8,[`row`]))),128))])],2)],2)],2))}}),{DescriptionsItem:mN}),xN=Lv(mN),SN=Q({center:Boolean,alignCenter:{type:Boolean,default:void 0},closeIcon:{type:Ny},draggable:{type:Boolean,default:void 0},overflow:{type:Boolean,default:void 0},fullscreen:Boolean,headerClass:String,bodyClass:String,footerClass:String,showClose:{type:Boolean,default:!0},title:{type:String,default:``},ariaLevel:{type:String,default:`2`}}),CN={close:()=>!0},wN={alignCenter:void 0,draggable:void 0,overflow:void 0,showClose:!0,title:``,ariaLevel:`2`},TN=Q({...SN,appendToBody:Boolean,appendTo:{type:Z([String,Object]),default:`body`},beforeClose:{type:Z(Function)},destroyOnClose:Boolean,closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},modal:{type:Boolean,default:!0},modalPenetrable:Boolean,openDelay:{type:Number,default:0},closeDelay:{type:Number,default:0},top:{type:String},modelValue:Boolean,modalClass:String,headerClass:String,bodyClass:String,footerClass:String,width:{type:[String,Number]},zIndex:{type:Number},trapFocus:Boolean,headerAriaLevel:{type:String,default:`2`},transition:{type:Z([String,Object]),default:void 0}}),EN={open:()=>!0,opened:()=>!0,close:()=>!0,closed:()=>!0,[br]:e=>jd(e),openAutoFocus:()=>!0,closeAutoFocus:()=>!0};({...wN});var DN=Q({mask:{type:Boolean,default:!0},customMaskEvent:Boolean,overlayClass:{type:Z([String,Array,Object])},zIndex:{type:Z([String,Number])}}),ON={click:e=>e instanceof MouseEvent},kN=`overlay`,AN=z({name:`ElOverlay`,props:DN,emits:ON,setup(e,{slots:t,emit:n}){let r=$(kN),{onClick:i,onMousedown:a,onMouseup:o}=Zh(e.customMaskEvent?void 0:e=>{n(`click`,e)});return()=>e.mask?J(`div`,{class:[r.b(),e.overlayClass],style:{zIndex:e.zIndex},onClick:i,onMousedown:a,onMouseup:o},[I(t,`default`)],14,[`onClick`,`onMouseup`,`onMousedown`]):Je(`div`,{class:e.overlayClass,style:{zIndex:e.zIndex,position:`fixed`,top:`0px`,right:`0px`,bottom:`0px`,left:`0px`}},[I(t,`default`)])}}),jN=Symbol(`dialogInjectionKey`),MN=`dialog-fade`,NN=`ElDialog`,PN=(e,t)=>{let r=Xe().emit,{nextZIndex:i}=xg(),a=``,o=rg(),s=rg(),c=q(!1),l=q(!1),u=q(!1),f=q(e.zIndex??i()),p=q(!1),m,h,g=FC(),_=K(()=>g.value?.namespace??`el`),v=K(()=>g.value?.dialog),y=K(()=>{let t={},n=`--${_.value}-dialog`;if(!e.fullscreen){e.top&&(t[`${n}-margin-top`]=e.top);let r=bp(e.width);r&&(t[`${n}-width`]=r)}return t}),b=K(()=>(e.draggable??v.value?.draggable??!1)&&!e.fullscreen),x=K(()=>e.alignCenter??v.value?.alignCenter??!1),S=K(()=>e.overflow??v.value?.overflow??!1),C=K(()=>e.modalPenetrable&&!e.modal&&!e.fullscreen),w=K(()=>x.value?{display:`flex`}:{}),T=K(()=>{let t=e.transition??v.value?.transition??`dialog-fade`,r={name:t,onAfterEnter:D,onBeforeLeave:k,onAfterLeave:O};if(E(t)){let e={...t},r=(e,t)=>r=>{A(e)?e.forEach(e=>{n(e)&&e(r)}):n(e)&&e(r),t()};return e.onAfterEnter=r(e.onAfterEnter,D),e.onBeforeLeave=r(e.onBeforeLeave,k),e.onAfterLeave=r(e.onAfterLeave,O),e.name||(e.name=MN,Jd(NN,`transition.name is missing when using object syntax, fallback to '${MN}'`)),e}return r});function D(){r(`opened`)}function O(){r(`closed`),r(br,!1),e.destroyOnClose&&(u.value=!1),p.value=!1}function k(){p.value=!0,r(`close`)}function ee(){h?.(),m?.(),e.openDelay&&e.openDelay>0?{stop:m}=wf(()=>te(),e.openDelay):te()}function j(){m?.(),h?.(),e.closeDelay&&e.closeDelay>0?{stop:h}=wf(()=>ne(),e.closeDelay):ne()}function N(){function t(e){e||(l.value=!0,c.value=!1)}e.beforeClose?e.beforeClose(t):j()}function P(){e.closeOnClickModal&&N()}function te(){nf&&(c.value=!0)}function ne(){c.value=!1}function re(){r(`openAutoFocus`)}function ie(){r(`closeAutoFocus`)}function ae(e){e.detail?.focusReason===`pointer`&&e.preventDefault()}e.lockScroll&&Up(c);function F(){e.closeOnPressEscape&&N()}function I(){!c.value||!C.value||e.zIndex!==void 0||(f.value=i())}return M(()=>e.zIndex,()=>{f.value=e.zIndex??i()}),M(()=>e.modelValue,n=>{n?(l.value=!1,p.value=!1,ee(),u.value=!0,f.value=e.zIndex??i(),U(()=>{r(`open`),t.value&&(t.value.parentElement.scrollTop=0,t.value.parentElement.scrollLeft=0,t.value.scrollTop=0)})):c.value&&j()}),M(()=>e.fullscreen,e=>{t.value&&(e?(a=t.value.style.transform,t.value.style.transform=``):t.value.style.transform=a)}),d(()=>{e.modelValue&&(c.value=!0,u.value=!0,ee())}),{afterEnter:D,afterLeave:O,beforeLeave:k,handleClose:N,onModalClick:P,close:j,doClose:ne,onOpenAutoFocus:re,onCloseAutoFocus:ie,onCloseRequested:F,onFocusoutPrevented:ae,bringToFront:I,titleId:o,bodyId:s,closed:l,style:y,overlayDialogStyle:w,rendered:u,visible:c,zIndex:f,transitionConfig:T,_draggable:b,_alignCenter:x,_overflow:S,closing:p,penetrable:C}},FN=(...e)=>t=>{e.forEach(e=>{e.value=t})},IN=[`aria-level`],LN=[`aria-label`],RN=[`id`],zN=z({name:`ElDialogContent`,__name:`dialog-content`,props:SN,emits:CN,setup(e,{expose:t}){let{t:n}=Dp(),{Close:r}=Py,i=e,{dialogRef:a,headerRef:o,bodyId:s,ns:c,style:u}=l(jN),{focusTrapRef:d}=l(Mx),f=FN(d,a),p=K(()=>!!i.draggable),{resetPosition:h,updatePosition:g,isDragging:_}=xp(a,o,p,K(()=>!!i.overflow)),v=K(()=>[c.b(),c.is(`fullscreen`,i.fullscreen),c.is(`draggable`,p.value),c.is(`dragging`,_.value),c.is(`align-center`,!!i.alignCenter),{[c.m(`center`)]:i.center}]);return t({resetPosition:h,updatePosition:g}),(t,i)=>(N(),W(`div`,{ref:Y(f),class:F(v.value),style:m(Y(u)),tabindex:`-1`},[B(`header`,{ref_key:`headerRef`,ref:o,class:F([Y(c).e(`header`),e.headerClass,{"show-close":e.showClose}])},[I(t.$slots,`header`,{},()=>[B(`span`,{role:`heading`,"aria-level":e.ariaLevel,class:F(Y(c).e(`title`))},S(e.title),11,IN)]),e.showClose?(N(),W(`button`,{key:0,"aria-label":Y(n)(`el.dialog.close`),class:F(Y(c).e(`headerbtn`)),type:`button`,onClick:i[0]||=e=>t.$emit(`close`)},[J(Y(By),{class:F(Y(c).e(`close`))},{default:V(()=>[(N(),H(L(e.closeIcon||Y(r))))]),_:1},8,[`class`])],10,LN)):G(`v-if`,!0)],2),B(`div`,{id:Y(s),class:F([Y(c).e(`body`),e.bodyClass])},[I(t.$slots,`default`)],10,RN),t.$slots.footer?(N(),W(`footer`,{key:0,class:F([Y(c).e(`footer`),e.footerClass])},[I(t.$slots,`footer`)],2)):G(`v-if`,!0)],6))}}),BN=[`aria-label`,`aria-labelledby`,`aria-describedby`],VN=Pv(z({name:`ElDialog`,inheritAttrs:!1,__name:`dialog`,props:TN,emits:EN,setup(e,{expose:t}){let n=e,r=le();Zf({scope:`el-dialog`,from:`the title slot`,replacement:`the header slot`,version:`3.0.0`,ref:`https://element-plus.org/en-US/component/dialog.html#slots`},K(()=>!!r.title));let i=$(`dialog`),a=q(),o=q(),s=q(),{visible:c,titleId:l,bodyId:u,style:d,overlayDialogStyle:f,rendered:p,transitionConfig:h,zIndex:g,_draggable:_,_alignCenter:v,_overflow:y,penetrable:b,handleClose:x,onModalClick:S,onOpenAutoFocus:C,onCloseAutoFocus:w,onCloseRequested:T,onFocusoutPrevented:E,bringToFront:D,closing:O}=PN(n,a);Qe(jN,{dialogRef:a,headerRef:o,bodyId:u,ns:i,rendered:p,style:d});let A=Zh(S);return t({visible:c,dialogContentRef:s,resetPosition:()=>{s.value?.resetPosition()},handleClose:x}),(t,n)=>(N(),H(Fe,{to:e.appendTo,disabled:e.appendTo===`body`?!e.appendToBody:!1},[J(pt,k(Y(h),{persisted:``}),{default:V(()=>[Ge(J(Y(AN),{"custom-mask-event":``,mask:e.modal,"overlay-class":[e.modalClass??``,`${Y(i).namespace.value}-modal-dialog`,Y(i).is(`penetrable`,Y(b))],"z-index":Y(g)},{default:V(()=>[B(`div`,{role:`dialog`,"aria-modal":`true`,"aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Y(l),"aria-describedby":Y(u),class:F([`${Y(i).namespace.value}-overlay-dialog`,Y(i).is(`closing`,Y(O))]),style:m(Y(f)),onClick:n[0]||=(...e)=>Y(A).onClick&&Y(A).onClick(...e),onMousedown:n[1]||=(...e)=>Y(A).onMousedown&&Y(A).onMousedown(...e),onMouseup:n[2]||=(...e)=>Y(A).onMouseup&&Y(A).onMouseup(...e)},[J(Y(tS),{loop:``,trapped:Y(c),"focus-start-el":`container`,onFocusAfterTrapped:Y(C),onFocusAfterReleased:Y(w),onFocusoutPrevented:Y(E),onReleaseRequested:Y(T)},{default:V(()=>[Y(p)?(N(),H(zN,k({key:0,ref_key:`dialogContentRef`,ref:s},t.$attrs,{center:e.center,"align-center":Y(v),"close-icon":e.closeIcon,draggable:Y(_),overflow:Y(y),fullscreen:e.fullscreen,"header-class":e.headerClass,"body-class":e.bodyClass,"footer-class":e.footerClass,"show-close":e.showClose,title:e.title,"aria-level":e.headerAriaLevel,onClose:Y(x),onMousedown:Y(D)}),xe({header:V(()=>[t.$slots.title?I(t.$slots,`title`,{key:1}):I(t.$slots,`header`,{key:0,close:Y(x),titleId:Y(l),titleClass:Y(i).e(`title`)})]),default:V(()=>[I(t.$slots,`default`)]),_:2},[t.$slots.footer?{name:`footer`,fn:V(()=>[I(t.$slots,`footer`)]),key:`0`}:void 0]),1040,[`center`,`align-center`,`close-icon`,`draggable`,`overflow`,`fullscreen`,`header-class`,`body-class`,`footer-class`,`show-close`,`title`,`aria-level`,`onClose`,`onMousedown`])):G(`v-if`,!0)]),_:3},8,[`trapped`,`onFocusAfterTrapped`,`onFocusAfterReleased`,`onFocusoutPrevented`,`onReleaseRequested`])],46,BN)]),_:3},8,[`mask`,`overlay-class`,`z-index`]),[[jt,Y(c)]])]),_:3},16)],8,[`to`,`disabled`]))}})),HN=Pv(z({name:`ElDivider`,__name:`divider`,props:Q({direction:{type:String,values:[`horizontal`,`vertical`],default:`horizontal`},contentPosition:{type:String,values:[`left`,`center`,`right`],default:`center`},borderStyle:{type:Z(String),default:`solid`}}),setup(e){let t=e,n=$(`divider`),r=K(()=>n.cssVar({"border-style":t.borderStyle}));return(t,i)=>(N(),W(`div`,{class:F([Y(n).b(),Y(n).m(e.direction)]),style:m(r.value),role:`separator`},[t.$slots.default&&e.direction!==`vertical`?(N(),W(`div`,{key:0,class:F([Y(n).e(`text`),Y(n).is(e.contentPosition)])},[I(t.$slots,`default`)],2)):G(`v-if`,!0)],6))}})),UN=Q({...TN,direction:{type:String,default:`rtl`,values:[`ltr`,`rtl`,`ttb`,`btt`]},resizable:Boolean,size:{type:[String,Number],default:`30%`},withHeader:{type:Boolean,default:!0},modalFade:{type:Boolean,default:!0},headerAriaLevel:{type:String,default:`2`}}),WN={...EN,"resize-start":(e,t)=>e instanceof MouseEvent&&typeof t==`number`,resize:(e,t)=>e instanceof MouseEvent&&typeof t==`number`,"resize-end":(e,t)=>e instanceof MouseEvent&&typeof t==`number`};function GN(e,t,n){let{width:r,height:i}=Yf(),a=K(()=>[`ltr`,`rtl`].includes(e.direction)),o=K(()=>[`ltr`,`ttb`].includes(e.direction)?1:-1),s=K(()=>a.value?r.value:i.value),c=K(()=>cf(l.value+o.value*u.value,4,s.value)),l=q(0),u=q(0),d=q(!1),f=q(!1),p=[],m=[],h=()=>{let e=t.value?.closest(`[aria-modal="true"]`);return e?a.value?e.offsetWidth:e.offsetHeight:100};M(()=>[e.size,e.resizable],()=>{f.value=!1,l.value=0,u.value=0,v()});let g=t=>{e.resizable&&(f.value||=(l.value=h(),!0),p=[t.pageX,t.pageY],d.value=!0,n(`resize-start`,t,l.value),m.push(kf(window,`mouseup`,v),kf(window,`mousemove`,_)))},_=e=>{let{pageX:t,pageY:r}=e,i=t-p[0],o=r-p[1];u.value=a.value?i:o,n(`resize`,e,c.value)},v=e=>{d.value&&(p=[],l.value=c.value,u.value=0,d.value=!1,m.forEach(e=>e?.()),m=[],e&&n(`resize-end`,e,l.value))},y=kf(t,`mousedown`,g);return T(()=>{y(),v()}),{size:K(()=>f.value?`${c.value}px`:bp(e.size)),isResizing:d,isHorizontal:a}}var KN=[`aria-label`,`aria-labelledby`,`aria-describedby`],qN=[`id`,`aria-level`],JN=[`aria-label`],YN=[`id`],XN=Pv(z({name:`ElDrawer`,inheritAttrs:!1,__name:`drawer`,props:UN,emits:WN,setup(e,{expose:t,emit:n}){let r=e,i=n,a=le();Zf({scope:`el-drawer`,from:`the title slot`,replacement:`the header slot`,version:`3.0.0`,ref:`https://element-plus.org/en-US/component/drawer.html#slots`},K(()=>!!a.title));let o=q(),s=q(),c=q(),l=$(`drawer`),{t:u}=Dp(),{afterEnter:d,afterLeave:f,beforeLeave:p,visible:h,rendered:g,titleId:_,bodyId:v,zIndex:y,onModalClick:b,onOpenAutoFocus:x,onCloseAutoFocus:C,onFocusoutPrevented:w,onCloseRequested:T,handleClose:E}=PN(r,o),{isHorizontal:D,size:O,isResizing:A}=GN(r,c,i),ee=K(()=>r.modalPenetrable&&!r.modal);return t({handleClose:E}),(t,n)=>(N(),H(Fe,{to:e.appendTo,disabled:e.appendTo===`body`?!e.appendToBody:!1},[J(pt,{name:Y(l).b(`fade`),onAfterEnter:Y(d),onAfterLeave:Y(f),onBeforeLeave:Y(p),persisted:``},{default:V(()=>[Ge(J(Y(AN),{mask:e.modal,"overlay-class":[Y(l).is(`drawer`),e.modalClass??``,`${Y(l).namespace.value}-modal-drawer`,Y(l).is(`penetrable`,ee.value)],"z-index":Y(y),onClick:Y(b)},{default:V(()=>[J(Y(tS),{loop:``,trapped:Y(h),"focus-trap-el":o.value,"focus-start-el":s.value,onFocusAfterTrapped:Y(x),onFocusAfterReleased:Y(C),onFocusoutPrevented:Y(w),onReleaseRequested:Y(T)},{default:V(()=>[B(`div`,k({ref_key:`drawerRef`,ref:o,"aria-modal":`true`,"aria-label":e.title||void 0,"aria-labelledby":e.title?void 0:Y(_),"aria-describedby":Y(v)},t.$attrs,{class:[Y(l).b(),e.direction,Y(h)&&`open`,Y(l).is(`dragging`,Y(A))],style:{[Y(D)?`width`:`height`]:Y(O)},role:`dialog`,onClick:n[1]||=kn(()=>{},[`stop`])}),[B(`span`,{ref_key:`focusStartRef`,ref:s,class:F(Y(l).e(`sr-focus`)),tabindex:`-1`},null,2),e.withHeader?(N(),W(`header`,{key:0,class:F([Y(l).e(`header`),e.headerClass])},[t.$slots.title?I(t.$slots,`title`,{key:1},()=>[G(` DEPRECATED SLOT `)]):I(t.$slots,`header`,{key:0,close:Y(E),titleId:Y(_),titleClass:Y(l).e(`title`)},()=>[B(`span`,{id:Y(_),role:`heading`,"aria-level":e.headerAriaLevel,class:F(Y(l).e(`title`))},S(e.title),11,qN)]),e.showClose?(N(),W(`button`,{key:2,"aria-label":Y(u)(`el.drawer.close`),class:F(Y(l).e(`close-btn`)),type:`button`,onClick:n[0]||=(...e)=>Y(E)&&Y(E)(...e)},[J(Y(By),{class:F(Y(l).e(`close`))},{default:V(()=>[J(Y(ey))]),_:1},8,[`class`])],10,JN)):G(`v-if`,!0)],2)):G(`v-if`,!0),Y(g)?(N(),W(`div`,{key:1,id:Y(v),class:F([Y(l).e(`body`),e.bodyClass])},[I(t.$slots,`default`)],10,YN)):G(`v-if`,!0),t.$slots.footer?(N(),W(`div`,{key:2,class:F([Y(l).e(`footer`),e.footerClass])},[I(t.$slots,`footer`)],2)):G(`v-if`,!0),e.resizable?(N(),W(`div`,{key:3,ref_key:`draggerRef`,ref:c,style:m({zIndex:Y(y)}),class:F(Y(l).e(`dragger`))},null,6)):G(`v-if`,!0)],16,KN)]),_:3},8,[`trapped`,`focus-trap-el`,`focus-start-el`,`onFocusAfterTrapped`,`onFocusAfterReleased`,`onFocusoutPrevented`,`onReleaseRequested`])]),_:3},8,[`mask`,`overlay-class`,`z-index`,`onClick`]),[[jt,Y(h)]])]),_:3},8,[`name`,`onAfterEnter`,`onAfterLeave`,`onBeforeLeave`])],8,[`to`,`disabled`]))}})),ZN=Q({trigger:{...pS.trigger,type:Z([String,Array])},triggerKeys:{type:Z(Array),default:()=>[X.enter,X.numpadEnter,X.space,X.down]},virtualTriggering:pS.virtualTriggering,virtualRef:pS.virtualRef,effect:{...fS.effect,default:`light`},type:{type:Z(String)},placement:{type:Z(String),default:`bottom`},popperOptions:{type:Z(Object),default:()=>({})},id:String,size:{type:String,default:``},splitButton:Boolean,hideOnClick:{type:Boolean,default:!0},loop:{type:Boolean,default:!0},showArrow:{type:Boolean,default:!0},showTimeout:{type:Number,default:150},hideTimeout:{type:Number,default:150},tabindex:{type:Z([Number,String]),default:0},maxHeight:{type:Z([Number,String]),default:``},popperClass:fS.popperClass,popperStyle:fS.popperStyle,disabled:Boolean,role:{type:String,values:Hy,default:`menu`},buttonProps:{type:Z(Object)},teleported:fS.teleported,appendTo:fS.appendTo,persistent:{type:Boolean,default:!0}}),QN=Q({command:{type:[Object,String,Number],default:()=>({})},disabled:Boolean,divided:Boolean,textValue:String,icon:{type:Ny}}),$N=Q({onKeydown:{type:Z(Function)}}),eP=[X.down,X.pageDown,X.home],tP=[X.up,X.pageUp,X.end];[...eP,...tP];var nP=Symbol(`elDropdown`),rP=`elDropdown`,iP=z({inheritAttrs:!1});function aP(e,t,n,r,i,a){return I(e.$slots,`default`)}var oP=$x(iP,[[`render`,aP]]),sP=z({name:`ElCollectionItem`,inheritAttrs:!1});function cP(e,t,n,r,i,a){return I(e.$slots,`default`)}var lP=$x(sP,[[`render`,cP]]),uP=`data-el-collection-item`,dP=e=>{let t=`El${e}Collection`,n=`${t}Item`,r=Symbol(t),i=Symbol(n);return{COLLECTION_INJECTION_KEY:r,COLLECTION_ITEM_INJECTION_KEY:i,ElCollection:Object.assign({},oP,{name:t,setup(){let e=q(),t=new Map;Qe(r,{itemMap:t,getItems:(()=>{let n=Y(e);if(!n)return[];let r=Array.from(n.querySelectorAll(`[${uP}]`));return[...t.values()].sort((e,t)=>r.indexOf(e.ref)-r.indexOf(t.ref))}),collectionRef:e})}}),ElCollectionItem:Object.assign({},lP,{name:n,setup(e,{attrs:t}){let n=q(),a=l(r,void 0);Qe(i,{collectionItemRef:n}),d(()=>{let e=Y(n);e&&a.itemMap.set(e,{ref:e,...t})}),T(()=>{let e=Y(n);a.itemMap.delete(e)})}})}},fP=Q({style:{type:Z([String,Array,Object,Boolean]),default:void 0},currentTabId:{type:Z(String)},defaultCurrentTabId:String,loop:Boolean,dir:{type:String,values:[`ltr`,`rtl`],default:`ltr`},orientation:{type:Z(String)},onBlur:Function,onFocus:Function,onMousedown:Function}),{ElCollection:pP,ElCollectionItem:mP,COLLECTION_INJECTION_KEY:hP,COLLECTION_ITEM_INJECTION_KEY:gP}=dP(`RovingFocusGroup`),_P=Symbol(`elRovingFocusGroup`),vP=Symbol(`elRovingFocusGroupItem`),yP={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`},bP=(e,t)=>{if(t!==`rtl`)return e;switch(e){case X.right:return X.left;case X.left:return X.right;default:return e}},xP=(e,t,n)=>{let r=bP(Kp(e),n);if(!(t===`vertical`&&[X.left,X.right].includes(r))&&!(t===`horizontal`&&[X.up,X.down].includes(r)))return yP[r]},SP=(e,t)=>e.map((n,r)=>e[(r+t)%e.length]),CP=e=>{let{activeElement:t}=document;for(let n of e)if(n===t||(n.focus(),t!==document.activeElement))return},wP=`currentTabIdChange`,TP=`rovingFocusGroup.entryFocus`,EP={bubbles:!1,cancelable:!0},DP=z({name:`ElRovingFocusGroupImpl`,inheritAttrs:!1,props:fP,emits:[wP,`entryFocus`],setup(e,{emit:t}){let n=q((e.currentTabId||e.defaultCurrentTabId)??null),r=q(!1),i=q(!1),a=q(),{getItems:o}=l(hP,void 0),s=K(()=>[{outline:`none`},e.style]),c=e=>{t(wP,e)},u=()=>{r.value=!0},d=Wp(t=>{e.onMousedown?.(t)},()=>{i.value=!0}),f=Wp(t=>{e.onFocus?.(t)},e=>{let t=!Y(i),{target:a,currentTarget:s}=e;if(a===s&&t&&!Y(r)){let e=new Event(TP,EP);if(s?.dispatchEvent(e),!e.defaultPrevented){let e=o().filter(e=>e.focusable);CP([e.find(e=>e.active),e.find(e=>e.id===Y(n)),...e].filter(Boolean).map(e=>e.ref))}}i.value=!1}),p=Wp(t=>{e.onBlur?.(t)},()=>{r.value=!1});Qe(_P,{currentTabbedId:je(n),loop:we(e,`loop`),tabIndex:K(()=>Y(r)?-1:0),rovingFocusGroupRef:a,rovingFocusGroupRootStyle:s,orientation:we(e,`orientation`),dir:we(e,`dir`),onItemFocus:c,onItemShiftTab:u,onBlur:p,onFocus:f,onMousedown:d,onKeydown:t=>{let n=xP(t);if(n){t.preventDefault();let r=o().filter(e=>e.focusable).map(e=>e.ref);switch(n){case`last`:r.reverse();break;case`prev`:case`next`:{n===`prev`&&r.reverse();let i=r.indexOf(t.currentTarget);r=e.loop?SP(r,i+1):r.slice(i+1);break}default:break}U(()=>{CP(r)})}}}),M(()=>e.currentTabId,e=>{n.value=e??null}),kf(a,TP,(...e)=>{t(`entryFocus`,...e)})}});function OP(e,t,n,r,i,a){return I(e.$slots,`default`)}var kP=z({name:`ElRovingFocusGroup`,components:{ElFocusGroupCollection:pP,ElRovingFocusGroupImpl:$x(DP,[[`render`,OP]])}});function AP(e,t,n,r,i,o){let s=h(`el-roving-focus-group-impl`),c=h(`el-focus-group-collection`);return N(),H(c,null,{default:V(()=>[J(s,se(a(e.$attrs)),{default:V(()=>[I(e.$slots,`default`)]),_:3},16)]),_:3})}var jP=$x(kP,[[`render`,AP]]),MP=z({components:{ElRovingFocusCollectionItem:mP},props:{focusable:{type:Boolean,default:!0},active:Boolean},emits:[`mousedown`,`focus`,`keydown`],setup(e,{emit:t}){let{currentTabbedId:n,onItemFocus:r,onItemShiftTab:i,onKeydown:a}=l(_P,void 0),o=rg(),s=q(),c=Wp(e=>{t(`mousedown`,e)},t=>{e.focusable?r(Y(o)):t.preventDefault()}),u=Wp(e=>{t(`focus`,e)},()=>{r(Y(o))}),d=Wp(e=>{t(`keydown`,e)},e=>{let{shiftKey:t,target:n,currentTarget:r}=e;if(Kp(e)===X.tab&&t){i();return}n===r&&a(e)}),f=K(()=>n.value===Y(o));return Qe(vP,{rovingFocusGroupItemRef:s,tabIndex:K(()=>Y(f)?0:-1),handleMousedown:c,handleFocus:u,handleKeydown:d}),{id:o,handleKeydown:d,handleFocus:u,handleMousedown:c}}});function NP(e,t,n,r,i,a){let o=h(`el-roving-focus-collection-item`);return N(),H(o,{id:e.id,focusable:e.focusable,active:e.active},{default:V(()=>[I(e.$slots,`default`)]),_:3},8,[`id`,`focusable`,`active`])}var PP=$x(MP,[[`render`,NP]]),FP=jP,{ButtonGroup:IP}=xw,LP=z({name:`ElDropdown`,components:{ElButton:xw,ElButtonGroup:IP,ElScrollbar:tC,ElTooltip:ES,ElRovingFocusGroup:FP,ElOnlyChild:Yy,ElIcon:By,ArrowDown:Bv},props:ZN,emits:[`visible-change`,`click`,`command`],setup(e,{emit:t}){let n=Xe(),r=$(`dropdown`),{t:i}=Dp(),a=q(),o=q(),s=q(),c=q(),l=q(null),u=q(null),d=q(!1),f=K(()=>({maxHeight:bp(e.maxHeight)})),p=K(()=>[r.m(b.value)]),m=K(()=>Cs(e.trigger)),h=rg().value,g=K(()=>e.id||h);function _(){s.value?.onClose(void 0,0)}function v(){s.value?.onClose()}function y(){s.value?.onOpen()}let b=cb();function x(...e){t(`command`,...e)}function S(){}function C(){let e=Y(c);m.value.includes(`hover`)&&e?.focus({preventScroll:!0}),u.value=null}function w(e){u.value=e}function T(){t(`visible-change`,!0)}function E(e){d.value=e?.type===`keydown`,c.value?.focus()}function D(){t(`visible-change`,!1)}return Qe(nP,{contentRef:c,role:K(()=>e.role),triggerId:g,isUsingKeyboard:d,onItemEnter:S,onItemLeave:C,handleClose:v}),Qe(rP,{instance:n,dropdownSize:b,handleClick:_,commandHandler:x,trigger:we(e,`trigger`),hideOnClick:we(e,`hideOnClick`)}),{t:i,ns:r,scrollbar:l,wrapStyle:f,dropdownTriggerKls:p,dropdownSize:b,triggerId:g,currentTabId:u,handleCurrentTabIdChange:w,handlerMainButtonClick:e=>{t(`click`,e)},handleClose:v,handleOpen:y,handleBeforeShowTooltip:T,handleShowTooltip:E,handleBeforeHideTooltip:D,popperRef:s,contentRef:c,triggeringElementRef:a,referenceElementRef:o}}});function RP(e,t,n,r,i,a){let o=h(`el-roving-focus-group`),s=h(`el-scrollbar`),c=h(`el-only-child`),l=h(`el-tooltip`),u=h(`el-button`),d=h(`arrow-down`),f=h(`el-icon`),p=h(`el-button-group`);return N(),W(`div`,{class:F([e.ns.b(),e.ns.is(`disabled`,e.disabled)])},[J(l,{ref:`popperRef`,role:e.role,effect:e.effect,"fallback-placements":[`bottom`,`top`],"popper-options":e.popperOptions,"gpu-acceleration":!1,placement:e.placement,"popper-class":[e.ns.e(`popper`),e.popperClass],"popper-style":e.popperStyle,trigger:e.trigger,"trigger-keys":e.triggerKeys,"trigger-target-el":e.contentRef,"show-arrow":e.showArrow,"show-after":e.trigger===`hover`?e.showTimeout:0,"hide-after":e.trigger===`hover`?e.hideTimeout:0,"virtual-ref":e.virtualRef??e.triggeringElementRef,"virtual-triggering":e.virtualTriggering||e.splitButton,disabled:e.disabled,transition:`${e.ns.namespace.value}-zoom-in-top`,teleported:e.teleported,"append-to":e.appendTo,pure:``,"focus-on-target":``,persistent:e.persistent,onBeforeShow:e.handleBeforeShowTooltip,onShow:e.handleShowTooltip,onBeforeHide:e.handleBeforeHideTooltip},xe({content:V(()=>[J(s,{ref:`scrollbar`,"wrap-style":e.wrapStyle,tag:`div`,"view-class":e.ns.e(`list`)},{default:V(()=>[J(o,{loop:e.loop,"current-tab-id":e.currentTabId,orientation:`horizontal`,onCurrentTabIdChange:e.handleCurrentTabIdChange},{default:V(()=>[I(e.$slots,`dropdown`)]),_:3},8,[`loop`,`current-tab-id`,`onCurrentTabIdChange`])]),_:3},8,[`wrap-style`,`view-class`])]),_:2},[e.splitButton?void 0:{name:`default`,fn:V(()=>[J(c,{id:e.triggerId,ref:`triggeringElementRef`,role:`button`,tabindex:e.tabindex},{default:V(()=>[I(e.$slots,`default`)]),_:3},8,[`id`,`tabindex`])]),key:`0`}]),1032,[`role`,`effect`,`popper-options`,`placement`,`popper-class`,`popper-style`,`trigger`,`trigger-keys`,`trigger-target-el`,`show-arrow`,`show-after`,`hide-after`,`virtual-ref`,`virtual-triggering`,`disabled`,`transition`,`teleported`,`append-to`,`persistent`,`onBeforeShow`,`onShow`,`onBeforeHide`]),e.splitButton?(N(),H(p,{key:0},{default:V(()=>[J(u,k({ref:`referenceElementRef`},e.buttonProps,{size:e.dropdownSize,type:e.type,disabled:e.disabled,tabindex:e.tabindex,onClick:e.handlerMainButtonClick}),{default:V(()=>[I(e.$slots,`default`)]),_:3},16,[`size`,`type`,`disabled`,`tabindex`,`onClick`]),J(u,k({id:e.triggerId,ref:`triggeringElementRef`},e.buttonProps,{role:`button`,size:e.dropdownSize,type:e.type,class:e.ns.e(`caret-button`),disabled:e.disabled,tabindex:e.tabindex,"aria-label":e.t(`el.dropdown.toggleDropdown`)}),{default:V(()=>[J(f,{class:F(e.ns.e(`icon`))},{default:V(()=>[J(d)]),_:1},8,[`class`])]),_:1},16,[`id`,`size`,`type`,`class`,`disabled`,`tabindex`,`aria-label`])]),_:3})):G(`v-if`,!0)],2)}var zP=$x(LP,[[`render`,RP]]),BP=z({name:`DropdownItemImpl`,components:{ElIcon:By},props:QN,emits:[`pointermove`,`pointerleave`,`click`,`clickimpl`],setup(e,{emit:t}){let n=$(`dropdown`),{role:r}=l(nP,void 0),{collectionItemRef:i}=l(gP,void 0),{rovingFocusGroupItemRef:a,tabIndex:o,handleFocus:s,handleKeydown:c,handleMousedown:u}=l(vP,void 0),d=FN(i,a),f=K(()=>r.value===`menu`?`menuitem`:r.value===`navigation`?`link`:`button`),p=Wp(e=>{let n=Kp(e);if([X.enter,X.numpadEnter,X.space].includes(n))return e.preventDefault(),e.stopImmediatePropagation(),t(`clickimpl`,e),!0},c);return{ns:n,itemRef:d,dataset:{[uP]:``},role:f,tabIndex:o,handleFocus:s,handleKeydown:p,handleMousedown:u}}}),VP=[`aria-disabled`,`tabindex`,`role`];function HP(e,t,n,r,i,a){let o=h(`el-icon`);return N(),W(R,null,[e.divided?(N(),W(`li`,{key:0,role:`separator`,class:F(e.ns.bem(`menu`,`item`,`divided`))},null,2)):G(`v-if`,!0),B(`li`,k({ref:e.itemRef},{...e.dataset,...e.$attrs},{"aria-disabled":e.disabled,class:[e.ns.be(`menu`,`item`),e.ns.is(`disabled`,e.disabled)],tabindex:e.tabIndex,role:e.role,onClick:t[0]||=t=>e.$emit(`clickimpl`,t),onFocus:t[1]||=(...t)=>e.handleFocus&&e.handleFocus(...t),onKeydown:t[2]||=kn((...t)=>e.handleKeydown&&e.handleKeydown(...t),[`self`]),onMousedown:t[3]||=(...t)=>e.handleMousedown&&e.handleMousedown(...t),onPointermove:t[4]||=t=>e.$emit(`pointermove`,t),onPointerleave:t[5]||=t=>e.$emit(`pointerleave`,t)}),[e.icon||e.$slots.icon?(N(),H(o,{key:0},{default:V(()=>[I(e.$slots,`icon`,{},()=>[(N(),H(L(e.icon)))])]),_:3})):G(`v-if`,!0),I(e.$slots,`default`)],16,VP)],64)}var UP=$x(BP,[[`render`,HP]]),WP=()=>{let e=l(rP,{});return{elDropdown:e,_elDropdownSize:K(()=>e?.dropdownSize)}},GP=z({name:`ElDropdownItem`,components:{ElRovingFocusItem:PP,ElDropdownItemImpl:UP},inheritAttrs:!1,props:QN,emits:[`pointermove`,`pointerleave`,`click`],setup(e,{emit:t,attrs:n}){let{elDropdown:r}=WP(),i=Xe(),{onItemEnter:a,onItemLeave:o}=l(nP,void 0),s=Wp(e=>(t(`pointermove`,e),e.defaultPrevented),Gp(t=>{if(e.disabled){o(t);return}let n=t.currentTarget;n===document.activeElement||n.contains(document.activeElement)||(a(t),t.defaultPrevented||n?.focus({preventScroll:!0}))})),c=Wp(e=>(t(`pointerleave`,e),e.defaultPrevented),Gp(o));return{handleClick:Wp(n=>{if(!e.disabled)return t(`click`,n),n.type!==`keydown`&&n.defaultPrevented},t=>{if(e.disabled){t.stopImmediatePropagation();return}r?.hideOnClick?.value&&r.handleClick?.(),r.commandHandler?.(e.command,i,t)}),handlePointerMove:s,handlePointerLeave:c,propsAndAttrs:K(()=>({...e,...n}))}}});function KP(e,t,n,r,i,a){let o=h(`el-dropdown-item-impl`),s=h(`el-roving-focus-item`);return N(),H(s,{focusable:!e.disabled},{default:V(()=>[J(o,k(e.propsAndAttrs,{onPointerleave:e.handlePointerLeave,onPointermove:e.handlePointerMove,onClickimpl:e.handleClick}),xe({default:V(()=>[I(e.$slots,`default`)]),_:2},[e.$slots.icon?{name:`icon`,fn:V(()=>[I(e.$slots,`icon`)]),key:`0`}:void 0]),1040,[`onPointerleave`,`onPointermove`,`onClickimpl`])]),_:3},8,[`focusable`])}var qP=$x(GP,[[`render`,KP]]),JP=z({name:`ElDropdownMenu`,props:$N,setup(e){let t=$(`dropdown`),{_elDropdownSize:n}=WP(),r=n.value,{contentRef:i,role:a,triggerId:o,isUsingKeyboard:s,handleClose:c}=l(nP,void 0),{rovingFocusGroupRef:u,rovingFocusGroupRootStyle:d,onBlur:f,onFocus:p,onKeydown:m,onMousedown:h}=l(_P,void 0),{collectionRef:g}=l(hP,void 0),_=K(()=>[t.b(`menu`),t.bm(`menu`,r?.value)]),v=FN(i,u,g),y=Wp(t=>{e.onKeydown?.(t)},e=>{let{currentTarget:t,target:n}=e,r=Kp(e);if(t.contains(n),X.tab===r)return c();m(e)});function b(e){s.value&&p(e)}return{size:r,rovingFocusGroupRootStyle:d,dropdownKls:_,role:a,triggerId:o,dropdownListWrapperRef:v,handleKeydown:y,onBlur:f,handleFocus:b,onMousedown:h}}}),YP=[`role`,`aria-labelledby`];function XP(e,t,n,r,i,a){return N(),W(`ul`,{ref:e.dropdownListWrapperRef,class:F(e.dropdownKls),style:m(e.rovingFocusGroupRootStyle),tabindex:-1,role:e.role,"aria-labelledby":e.triggerId,onFocusin:t[0]||=(...t)=>e.handleFocus&&e.handleFocus(...t),onFocusout:t[1]||=(...t)=>e.onBlur&&e.onBlur(...t),onKeydown:t[2]||=kn((...t)=>e.handleKeydown&&e.handleKeydown(...t),[`self`]),onMousedown:t[3]||=kn((...t)=>e.onMousedown&&e.onMousedown(...t),[`self`])},[I(e.$slots,`default`)],46,YP)}var ZP=$x(JP,[[`render`,XP]]),QP=Pv(zP,{DropdownItem:qP,DropdownMenu:ZP}),$P=Lv(qP),eF=Lv(ZP),tF=Q({image:{type:String,default:``},imageSize:Number,description:{type:String,default:``}}),nF={viewBox:`0 0 79 86`,version:`1.1`,xmlns:`http://www.w3.org/2000/svg`,"xmlns:xlink":`http://www.w3.org/1999/xlink`},rF=[`id`],iF=[`stop-color`],aF=[`stop-color`],oF=[`id`],sF=[`stop-color`],cF=[`stop-color`],lF=[`id`],uF={stroke:`none`,"stroke-width":`1`,fill:`none`,"fill-rule":`evenodd`},dF={transform:`translate(-1268.000000, -535.000000)`},fF={transform:`translate(1268.000000, 535.000000)`},pF=[`fill`],mF=[`fill`],hF={transform:`translate(34.500000, 31.500000) scale(-1, 1) rotate(-25.000000) translate(-34.500000, -31.500000) translate(7.000000, 10.000000)`},gF=[`fill`],_F=[`fill`],vF=[`fill`],yF=[`fill`],bF=[`fill`],xF={transform:`translate(53.000000, 45.000000)`},SF=[`fill`,`xlink:href`],CF=[`fill`,`mask`],wF=[`fill`],TF=z({name:`ImgEmpty`,__name:`img-empty`,setup(e){let t=$(`empty`),n=rg();return(e,r)=>(N(),W(`svg`,nF,[B(`defs`,null,[B(`linearGradient`,{id:`linearGradient-1-${Y(n)}`,x1:`38.8503086%`,y1:`0%`,x2:`61.1496914%`,y2:`100%`},[B(`stop`,{"stop-color":`var(${Y(t).cssVarBlockName(`fill-color-1`)})`,offset:`0%`},null,8,iF),B(`stop`,{"stop-color":`var(${Y(t).cssVarBlockName(`fill-color-4`)})`,offset:`100%`},null,8,aF)],8,rF),B(`linearGradient`,{id:`linearGradient-2-${Y(n)}`,x1:`0%`,y1:`9.5%`,x2:`100%`,y2:`90.5%`},[B(`stop`,{"stop-color":`var(${Y(t).cssVarBlockName(`fill-color-1`)})`,offset:`0%`},null,8,sF),B(`stop`,{"stop-color":`var(${Y(t).cssVarBlockName(`fill-color-6`)})`,offset:`100%`},null,8,cF)],8,oF),B(`rect`,{id:`path-3-${Y(n)}`,x:`0`,y:`0`,width:`17`,height:`36`},null,8,lF)]),B(`g`,uF,[B(`g`,dF,[B(`g`,fF,[B(`path`,{d:`M39.5,86 C61.3152476,86 79,83.9106622 79,81.3333333 C79,78.7560045 57.3152476,78 35.5,78 C13.6847524,78 0,78.7560045 0,81.3333333 C0,83.9106622 17.6847524,86 39.5,86 Z`,fill:`var(${Y(t).cssVarBlockName(`fill-color-3`)})`},null,8,pF),B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-7`)})`,transform:`translate(27.500000, 51.500000) scale(1, -1) translate(-27.500000, -51.500000) `,points:`13 58 53 58 42 45 2 45`},null,8,mF),B(`g`,hF,[B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-7`)})`,transform:`translate(11.500000, 5.000000) scale(1, -1) translate(-11.500000, -5.000000) `,points:`2.84078316e-14 3 18 3 23 7 5 7`},null,8,gF),B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-5`)})`,points:`-3.69149156e-15 7 38 7 38 43 -3.69149156e-15 43`},null,8,_F),B(`rect`,{fill:`url(#linearGradient-1-${Y(n)})`,transform:`translate(46.500000, 25.000000) scale(-1, 1) translate(-46.500000, -25.000000) `,x:`38`,y:`7`,width:`17`,height:`36`},null,8,vF),B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-2`)})`,transform:`translate(39.500000, 3.500000) scale(-1, 1) translate(-39.500000, -3.500000) `,points:`24 7 41 7 55 -3.63806207e-12 38 -3.63806207e-12`},null,8,yF)]),B(`rect`,{fill:`url(#linearGradient-2-${Y(n)})`,x:`13`,y:`45`,width:`40`,height:`36`},null,8,bF),B(`g`,xF,[B(`use`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-8`)})`,transform:`translate(8.500000, 18.000000) scale(-1, 1) translate(-8.500000, -18.000000) `,"xlink:href":`#path-3-${Y(n)}`},null,8,SF),B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-9`)})`,mask:`url(#mask-4-${Y(n)})`,transform:`translate(12.000000, 9.000000) scale(-1, 1) translate(-12.000000, -9.000000) `,points:`7 0 24 0 20 18 7 16.5`},null,8,CF)]),B(`polygon`,{fill:`var(${Y(t).cssVarBlockName(`fill-color-2`)})`,transform:`translate(66.000000, 51.500000) scale(-1, 1) translate(-66.000000, -51.500000) `,points:`62 45 79 45 70 58 53 58`},null,8,wF)])])])]))}}),EF=[`src`],DF={key:1},OF=Pv(z({name:`ElEmpty`,__name:`empty`,props:tF,setup(e){let t=e,{t:n}=Dp(),r=$(`empty`),i=K(()=>t.description||n(`el.table.emptyText`)),a=K(()=>({width:bp(t.imageSize)}));return(t,n)=>(N(),W(`div`,{class:F(Y(r).b())},[B(`div`,{class:F(Y(r).e(`image`)),style:m(a.value)},[e.image?(N(),W(`img`,{key:0,src:e.image,ondragstart:`return false`},null,8,EF)):I(t.$slots,`image`,{key:1},()=>[J(TF)])],6),B(`div`,{class:F(Y(r).e(`description`))},[t.$slots.description?I(t.$slots,`description`,{key:0}):(N(),W(`p`,DF,S(i.value),1))],2),t.$slots.default?(N(),W(`div`,{key:0,class:F(Y(r).e(`bottom`))},[I(t.$slots,`default`)],2)):G(`v-if`,!0)],2))}})),kF=Q({hideOnClickModal:Boolean,src:{type:String,default:``},fit:{type:String,values:[``,`contain`,`cover`,`fill`,`none`,`scale-down`],default:``},loading:{type:String,values:[`eager`,`lazy`]},lazy:Boolean,scrollContainer:{type:Z([String,Object])},previewSrcList:{type:Z(Array),default:()=>DS([])},previewTeleported:Boolean,zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},scale:{type:Number,default:1},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:Z(String)}}),AF={load:e=>e instanceof Event,error:e=>e instanceof Event,switch:e=>Md(e),close:()=>!0,show:()=>!0},jF=Q({urlList:{type:Z(Array),default:()=>DS([])},zIndex:{type:Number},initialIndex:{type:Number,default:0},infinite:{type:Boolean,default:!0},hideOnClickModal:Boolean,teleported:Boolean,closeOnPressEscape:{type:Boolean,default:!0},zoomRate:{type:Number,default:1.2},scale:{type:Number,default:1},minScale:{type:Number,default:.2},maxScale:{type:Number,default:7},showProgress:Boolean,crossorigin:{type:Z(String)}}),MF={close:()=>!0,error:e=>e instanceof Event,switch:e=>Md(e),rotate:e=>Md(e)},NF=[`src`,`crossorigin`],PF=Pv(z({name:`ElImageViewer`,__name:`image-viewer`,props:jF,emits:MF,setup(e,{expose:t,emit:n}){let r={CONTAIN:{name:`contain`,icon:Ie(oy)},ORIGINAL:{name:`original`,icon:Ie(xy)}},i=e,a=n,o,{t:s}=Dp(),c=$(`image-viewer`),{nextZIndex:l}=xg(),u=q(),f=q(),p=Pe(),h=K(()=>{let{scale:e,minScale:t,maxScale:n}=i;return cf(e,t,n)}),g=q(!0),_=q(!1),v=q(!1),y=q(i.initialIndex),b=Le(r.CONTAIN),x=q({scale:h.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}),C=q(i.zIndex??l());Up(v,{ns:c});let w=K(()=>{let{urlList:e}=i;return e.length<=1}),T=K(()=>y.value===0),E=K(()=>y.value===i.urlList.length-1),D=K(()=>i.urlList[y.value]),O=K(()=>[c.e(`btn`),c.e(`prev`),c.is(`disabled`,!i.infinite&&T.value)]),k=K(()=>[c.e(`btn`),c.e(`next`),c.is(`disabled`,!i.infinite&&E.value)]),A=K(()=>{let{scale:e,deg:t,offsetX:n,offsetY:i,enableTransition:a}=x.value,o=n/e,s=i/e,c=t*Math.PI/180,l=Math.cos(c),u=Math.sin(c);o=o*l+s*u,s=s*l-n/e*u;let d={transform:`scale(${e}) rotate(${t}deg) translate(${o}px, ${s}px)`,transition:a?`transform .3s`:``};return b.value.name===r.CONTAIN.name&&(d.maxWidth=d.maxHeight=`100%`),d}),ee=K(()=>`${y.value+1} / ${i.urlList.length}`);function j(){te(),o?.(),v.value=!1,a(`close`)}function P(){let e=Td(e=>{switch(Kp(e)){case X.esc:i.closeOnPressEscape&&j();break;case X.space:se();break;case X.left:le();break;case X.up:de(`zoomIn`);break;case X.right:ue();break;case X.down:de(`zoomOut`);break}}),t=Td(e=>{de((e.deltaY||e.deltaX)<0?`zoomIn`:`zoomOut`,{zoomRate:i.zoomRate,enableTransition:!1})});p.run(()=>{kf(document,`keydown`,e),kf(u,`wheel`,t)})}function te(){p.stop()}function ne(){g.value=!1}function re(e){_.value=!0,g.value=!1,a(`error`,e),e.target.alt=s(`el.image.error`)}function ie(e){if(g.value||e.button!==0||!u.value)return;x.value.enableTransition=!1;let{offsetX:t,offsetY:n}=x.value,r=e.pageX,i=e.pageY,a=Td(e=>{x.value={...x.value,offsetX:t+e.pageX-r,offsetY:n+e.pageY-i}}),o=kf(document,`mousemove`,a),s=kf(document,`mouseup`,()=>{o(),s()});e.preventDefault()}function ae(e){if(g.value||!u.value||e.touches.length!==1)return;x.value.enableTransition=!1;let{offsetX:t,offsetY:n}=x.value,{pageX:r,pageY:i}=e.touches[0],a=Td(e=>{let a=e.touches[0];x.value={...x.value,offsetX:t+a.pageX-r,offsetY:n+a.pageY-i}}),o=kf(document,`touchmove`,a),s=kf(document,`touchend`,()=>{o(),s()});e.preventDefault()}function oe(){x.value={scale:h.value,deg:0,offsetX:0,offsetY:0,enableTransition:!1}}function se(){if(g.value||_.value)return;let e=Rd(r),t=Object.values(r),n=b.value.name;b.value=r[e[(t.findIndex(e=>e.name===n)+1)%e.length]],oe()}function ce(e){_.value=!1;let t=i.urlList.length;y.value=(e+t)%t}function le(){T.value&&!i.infinite||ce(y.value-1)}function ue(){E.value&&!i.infinite||ce(y.value+1)}function de(e,t={}){if(g.value||_.value)return;let{minScale:n,maxScale:r}=i,{zoomRate:o,rotateDeg:s,enableTransition:c}={zoomRate:i.zoomRate,rotateDeg:90,enableTransition:!0,...t};switch(e){case`zoomOut`:x.value.scale>n&&(x.value.scale=Number.parseFloat((x.value.scale/o).toFixed(3)));break;case`zoomIn`:x.value.scale0))return e.preventDefault(),!1}return M(()=>h.value,e=>{x.value.scale=e}),M(D,()=>{U(()=>{f.value?.complete||(g.value=!0)})}),M(y,e=>{oe(),a(`switch`,e)}),d(()=>{v.value=!0,P(),o=kf(`wheel`,me,{passive:!1})}),t({setActiveItem:ce}),(t,n)=>(N(),H(Fe,{to:`body`,disabled:!e.teleported},[J(pt,{name:`viewer-fade`,appear:``},{default:V(()=>[B(`div`,{ref_key:`wrapper`,ref:u,tabindex:-1,class:F(Y(c).e(`wrapper`)),style:m({zIndex:C.value})},[J(Y(tS),{loop:``,trapped:``,"focus-trap-el":u.value,"focus-start-el":`container`,onFocusoutPrevented:fe,onReleaseRequested:pe},{default:V(()=>[B(`div`,{class:F(Y(c).e(`mask`)),onClick:n[0]||=kn(t=>e.hideOnClickModal&&j(),[`self`])},null,2),G(` CLOSE `),B(`span`,{class:F([Y(c).e(`btn`),Y(c).e(`close`)]),onClick:j},[J(Y(By),null,{default:V(()=>[J(Y(ey))]),_:1})],2),G(` ARROW `),w.value?G(`v-if`,!0):(N(),W(R,{key:0},[B(`span`,{class:F(O.value),onClick:le},[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1})],2),B(`span`,{class:F(k.value),onClick:ue},[J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})],2)],64)),t.$slots.progress||e.showProgress?(N(),W(`div`,{key:1,class:F([Y(c).e(`btn`),Y(c).e(`progress`)])},[I(t.$slots,`progress`,{activeIndex:y.value,total:e.urlList.length},()=>[Ke(S(ee.value),1)])],2)):G(`v-if`,!0),G(` ACTIONS `),B(`div`,{class:F([Y(c).e(`btn`),Y(c).e(`actions`)])},[B(`div`,{class:F(Y(c).e(`actions__inner`))},[I(t.$slots,`toolbar`,{actions:de,prev:le,next:ue,reset:se,activeIndex:y.value,setActiveItem:ce},()=>[J(Y(By),{onClick:n[1]||=e=>de(`zoomOut`)},{default:V(()=>[J(Y(My))]),_:1}),J(Y(By),{onClick:n[2]||=e=>de(`zoomIn`)},{default:V(()=>[J(Y(jy))]),_:1}),B(`i`,{class:F(Y(c).e(`actions__divider`))},null,2),J(Y(By),{onClick:se},{default:V(()=>[(N(),H(L(b.value.icon)))]),_:1}),B(`i`,{class:F(Y(c).e(`actions__divider`))},null,2),J(Y(By),{onClick:n[3]||=e=>de(`anticlockwise`)},{default:V(()=>[J(Y(yy))]),_:1}),J(Y(By),{onClick:n[4]||=e=>de(`clockwise`)},{default:V(()=>[J(Y(by))]),_:1})])],2)],2),G(` CANVAS `),B(`div`,{class:F(Y(c).e(`canvas`))},[_.value&&t.$slots[`viewer-error`]?I(t.$slots,`viewer-error`,{key:0,activeIndex:y.value,src:D.value}):(N(),W(`img`,{ref_key:`imgRef`,ref:f,key:D.value,src:D.value,style:m(A.value),class:F(Y(c).e(`img`)),crossorigin:e.crossorigin,onLoad:ne,onError:re,onMousedown:ie,onTouchstart:ae},null,46,NF))],2),I(t.$slots,`default`)]),_:3},8,[`focus-trap-el`])],6)]),_:3})],8,[`disabled`]))}})),FF=[`src`,`loading`,`crossorigin`],IF={key:0},LF=Pv(z({name:`ElImage`,inheritAttrs:!1,__name:`image`,props:kF,emits:AF,setup(e,{expose:t,emit:n}){let r=e,i=n,{t:o}=Dp(),s=$(`image`),c=y(),l=K(()=>ad(Object.entries(c).filter(([e])=>/^(data-|on[A-Z])/i.test(e)||[`id`,`style`].includes(e)))),u=Zd({excludeListeners:!0,excludeKeys:K(()=>Object.keys(l.value))}),f=q(),p=q(!1),m=q(!0),h=q(!1),g=q(),_=q(),v=nf&&`loading`in HTMLImageElement.prototype,b,x=K(()=>[s.e(`inner`),w.value&&s.e(`preview`),m.value&&s.is(`loading`)]),C=K(()=>{let{fit:e}=r;return nf&&e?{objectFit:e}:{}}),w=K(()=>{let{previewSrcList:e}=r;return A(e)&&e.length>0}),T=K(()=>{let{previewSrcList:e,initialIndex:t}=r,n=t;return t>e.length-1&&(n=0),n}),E=K(()=>r.loading===`eager`?!1:!v&&r.loading===`lazy`||r.lazy),D=()=>{nf&&(m.value=!0,p.value=!1,f.value=r.src)};function O(e){m.value=!1,p.value=!1,i(`load`,e)}function ee(e){m.value=!1,p.value=!0,i(`error`,e)}function j(e){e&&(D(),re())}let te=Sf(j,200,!0);async function ne(){if(!nf)return;await U();let{scrollContainer:e}=r;if(Pd(e))_.value=e;else if(P(e)&&e!==``)_.value=document.querySelector(e)??void 0;else if(g.value){let e=Ip(g.value);_.value=Ld(e)?void 0:e}let{stop:t}=Kf(g,([e])=>{te(e.isIntersecting)},{root:_});b=t}function re(){!nf||!te||(b?.(),_.value=void 0,b=void 0)}function ie(){w.value&&(h.value=!0,i(`show`))}function ae(){h.value=!1,i(`close`)}function oe(e){i(`switch`,e)}return M(()=>r.src,()=>{E.value?(m.value=!0,p.value=!1,re(),ne()):D()}),d(()=>{E.value?ne():D()}),t({showPreview:ie}),(t,n)=>(N(),W(`div`,k({ref_key:`container`,ref:g},l.value,{class:[Y(s).b(),t.$attrs.class]}),[p.value?I(t.$slots,`error`,{key:0},()=>[B(`div`,{class:F(Y(s).e(`error`))},S(Y(o)(`el.image.error`)),3)]):(N(),W(R,{key:1},[f.value===void 0?G(`v-if`,!0):(N(),W(`img`,k({key:0},Y(u),{src:f.value,loading:e.loading,style:C.value,class:x.value,crossorigin:e.crossorigin,onClick:ie,onLoad:O,onError:ee}),null,16,FF)),m.value?(N(),W(`div`,{key:1,class:F(Y(s).e(`wrapper`))},[I(t.$slots,`placeholder`,{},()=>[B(`div`,{class:F(Y(s).e(`placeholder`))},null,2)])],2)):G(`v-if`,!0)],64)),w.value?(N(),W(R,{key:2},[h.value?(N(),H(Y(PF),{key:0,"z-index":e.zIndex,"initial-index":T.value,infinite:e.infinite,"zoom-rate":e.zoomRate,"min-scale":e.minScale,"max-scale":e.maxScale,"show-progress":e.showProgress,"url-list":e.previewSrcList,scale:e.scale,crossorigin:e.crossorigin,"hide-on-click-modal":e.hideOnClickModal,teleported:e.previewTeleported,"close-on-press-escape":e.closeOnPressEscape,onClose:ae,onSwitch:oe},xe({toolbar:V(e=>[I(t.$slots,`toolbar`,se(a(e)))]),default:V(()=>[t.$slots.viewer?(N(),W(`div`,IF,[I(t.$slots,`viewer`)])):G(`v-if`,!0)]),_:2},[t.$slots.progress?{name:`progress`,fn:V(e=>[I(t.$slots,`progress`,se(a(e)))]),key:`0`}:void 0,t.$slots[`viewer-error`]?{name:`viewer-error`,fn:V(e=>[I(t.$slots,`viewer-error`,se(a(e)))]),key:`1`}:void 0]),1032,[`z-index`,`initial-index`,`infinite`,`zoom-rate`,`min-scale`,`max-scale`,`show-progress`,`url-list`,`scale`,`crossorigin`,`hide-on-click-modal`,`teleported`,`close-on-press-escape`])):G(`v-if`,!0)],64)):G(`v-if`,!0)],16))}})),RF=Q({id:{type:String,default:void 0},step:{type:Number,default:1},stepStrictly:Boolean,max:{type:Number,default:2**53-1},min:{type:Number,default:-(2**53-1)},modelValue:{type:[Number,null]},readonly:Boolean,disabled:{type:Boolean,default:void 0},size:xv,controls:{type:Boolean,default:!0},controlsPosition:{type:String,default:``,values:[``,`right`]},valueOnClear:{type:Z([String,Number,null]),validator:e=>e===null||Md(e)||[`min`,`max`].includes(e),default:null},name:String,placeholder:String,precision:{type:Number,validator:e=>e>=0&&e===Number.parseInt(`${e}`,10)},validateEvent:{type:Boolean,default:!0},...Mv([`ariaLabel`]),inputmode:{type:Z(String),default:void 0},align:{type:Z(String),default:`center`},disabledScientific:Boolean,formatter:{type:Function},parser:{type:Function},tabindex:{type:[String,Number],default:0}}),zF={[xr]:(e,t)=>t!==e,blur:e=>e instanceof FocusEvent,focus:e=>e instanceof FocusEvent,[Sr]:e=>Md(e)||cd(e),[br]:e=>Md(e)||cd(e)},BF=[`aria-label`],VF=[`aria-label`],HF=Pv(z({name:`ElInputNumber`,__name:`input-number`,props:RF,emits:zF,setup(e,{expose:t,emit:n}){let r=e,i=n,{t:a}=Dp(),o=$(`input-number`),s=q(),c=ve({currentValue:r.modelValue,userInput:null}),{formItem:l}=ub(),u=K(()=>Md(r.modelValue)&&r.modelValue<=r.min),f=K(()=>Md(r.modelValue)&&r.modelValue>=r.max),p=K(()=>{let e=y(r.step);return Ad(r.precision)?Math.max(y(r.modelValue),e):(e>r.precision&&Jd(`InputNumber`,`precision should not be less than the decimal places of step`),r.precision)}),m=K(()=>r.controls&&r.controlsPosition===`right`),h=cb(),g=lb(),_=K(()=>{if(c.userInput!==null)return c.userInput;let e=c.currentValue;if(cd(e))return``;if(Md(e)){if(Number.isNaN(e))return``;Ad(r.precision)||(e=e.toFixed(r.precision))}return e}),v=(e,t)=>{if(Ad(t)&&(t=p.value),t===0)return Math.round(e);let n=String(e),r=n.indexOf(`.`);if(r===-1||!n.replace(`.`,``).split(``)[r+t])return e;let i=n.length;return n.charAt(i-1)===`5`&&(n=`${n.slice(0,Math.max(0,i-1))}6`),Number.parseFloat(Number(n).toFixed(t))},y=e=>{if(cd(e))return 0;let t=e.toString(),n=t.indexOf(`.`),r=0;return n!==-1&&(r=t.length-n-1),r},b=(e,t=1)=>Md(e)?e>=2**53-1&&t===1?(Jd(`InputNumber`,`The value has reached the maximum safe integer limit.`),e):e<=-(2**53-1)&&t===-1?(Jd(`InputNumber`,`The value has reached the minimum safe integer limit.`),e):v(e+r.step*t):c.currentValue,x=e=>{let t=Kp(e),n=qp(e);if(r.disabledScientific&&[`e`,`E`].includes(n)){e.preventDefault();return}switch(t){case X.up:e.preventDefault(),S();break;case X.down:e.preventDefault(),w();break}},S=()=>{r.readonly||g.value||f.value||(E(b(Number(_.value)||0)),i(Sr,c.currentValue),te())},w=()=>{r.readonly||g.value||u.value||(E(b(Number(_.value)||0,-1)),i(Sr,c.currentValue),te())},T=(e,t)=>{let{max:n,min:a,step:o,precision:s,stepStrictly:c,valueOnClear:l}=r;nn||un?n:a,t&&i(`update:modelValue`,u)),u},E=(e,t=!0)=>{let n=c.currentValue,a=T(e);if(!t){i(br,a);return}c.userInput=null,!(n===a&&e)&&(i(br,a),n!==a&&i(xr,a,n),r.validateEvent&&l?.validate?.(`change`).catch(ge),c.currentValue=a)},D=e=>{c.userInput=e;let t=e===``?null:Number.parseFloat(e);Number.isNaN(t)&&(t=null),i(Sr,t),E(t,!1)},O=e=>{let t=e===``?``:Number.parseFloat(e);(Md(t)&&!Number.isNaN(t)||r.formatter&&Number.isNaN(t)||t===``)&&E(t),te(),c.userInput=null},k=()=>{s.value?.focus?.()},A=()=>{s.value?.blur?.()},ee=e=>{i(`focus`,e)},j=e=>{c.userInput=null,c.currentValue===null&&s.value?.input&&(s.value.input.value=r.formatter?.(``)??``),i(`blur`,e),r.validateEvent&&l?.validate?.(`blur`).catch(ge)},te=()=>{c.currentValue!==r.modelValue&&(c.currentValue=r.modelValue)},ne=e=>{document.activeElement===e.target&&e.preventDefault()};return M(()=>r.modelValue,(e,t)=>{let n=T(e,!0);c.userInput===null&&n!==t&&(c.currentValue=n)},{immediate:!0}),M(()=>r.precision,()=>{c.currentValue=T(r.modelValue)}),d(()=>{let{min:e,max:t,modelValue:n}=r,a=s.value?.input;if(a.setAttribute(`role`,`spinbutton`),Number.isFinite(t)?a.setAttribute(`aria-valuemax`,String(t)):a.removeAttribute(`aria-valuemax`),Number.isFinite(e)?a.setAttribute(`aria-valuemin`,String(e)):a.removeAttribute(`aria-valuemin`),a.setAttribute(`aria-valuenow`,c.currentValue||c.currentValue===0?String(c.currentValue):``),a.setAttribute(`aria-disabled`,String(g.value)),!Md(n)&&n!=null){let e=Number(n);Number.isNaN(e)&&(e=null),i(br,e)}a.addEventListener(`wheel`,ne,{passive:!1})}),C(()=>{(s.value?.input)?.setAttribute(`aria-valuenow`,`${c.currentValue??``}`)}),t({focus:k,blur:A}),(t,n)=>(N(),W(`div`,{class:F([Y(o).b(),Y(o).m(Y(h)),Y(o).is(`disabled`,Y(g)),Y(o).is(`without-controls`,!e.controls),Y(o).is(`controls-right`,m.value),Y(o).is(e.align,!!e.align)]),onDragstart:n[0]||=kn(()=>{},[`prevent`])},[e.controls?Ge((N(),W(`span`,{key:0,role:`button`,"aria-label":Y(a)(`el.inputNumber.decrease`),class:F([Y(o).e(`decrease`),Y(o).is(`disabled`,u.value)]),onKeydown:jn(w,[`enter`])},[I(t.$slots,`decrease-icon`,{},()=>[J(Y(By),null,{default:V(()=>[m.value?(N(),H(Y(Bv),{key:0})):(N(),H(Y(fy),{key:1}))]),_:1})])],42,BF)),[[Y(nT),w]]):G(`v-if`,!0),e.controls?Ge((N(),W(`span`,{key:1,role:`button`,"aria-label":Y(a)(`el.inputNumber.increase`),class:F([Y(o).e(`increase`),Y(o).is(`disabled`,f.value)]),onKeydown:jn(S,[`enter`])},[I(t.$slots,`increase-icon`,{},()=>[J(Y(By),null,{default:V(()=>[m.value?(N(),H(Y(Uv),{key:0})):(N(),H(Y(_y),{key:1}))]),_:1})])],42,VF)),[[Y(nT),S]]):G(`v-if`,!0),J(Y(zS),{id:e.id,ref_key:`input`,ref:s,type:e.formatter?`text`:`number`,step:e.step,"model-value":_.value,placeholder:e.placeholder,readonly:e.readonly,disabled:Y(g),size:Y(h),max:e.max,min:e.min,name:e.name,"aria-label":e.ariaLabel,"validate-event":!1,inputmode:e.inputmode,formatter:e.formatter,parser:e.parser,tabindex:e.tabindex,onKeydown:x,onBlur:j,onFocus:ee,onInput:D,onChange:O},xe({_:2},[t.$slots.prefix?{name:`prefix`,fn:V(()=>[I(t.$slots,`prefix`)]),key:`0`}:void 0,t.$slots.suffix?{name:`suffix`,fn:V(()=>[I(t.$slots,`suffix`)]),key:`1`}:void 0]),1032,[`id`,`type`,`step`,`model-value`,`placeholder`,`readonly`,`disabled`,`size`,`max`,`min`,`name`,`aria-label`,`inputmode`,`formatter`,`parser`,`tabindex`])],34))}})),UF=Q({modelValue:{type:Z(Array)},max:Number,tagType:{...nE.type,default:`info`},tagEffect:nE.effect,effect:{type:Z(String),default:`light`},trigger:{type:Z(String),default:X.enter},draggable:Boolean,delimiter:{type:[String,RegExp],default:``},size:xv,clearable:Boolean,clearIcon:{type:Ny,default:Qv},disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},readonly:Boolean,autofocus:Boolean,id:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},placeholder:String,autocomplete:{type:Z(String),default:`off`},saveOnBlur:{type:Boolean,default:!0},collapseTags:Boolean,collapseTagsTooltip:Boolean,maxCollapseTags:{type:Number,default:1},ariaLabel:String}),WF={[br]:e=>A(e)||Ad(e),[xr]:e=>A(e)||Ad(e),[Sr]:e=>P(e),"add-tag":e=>P(e)||A(e),"remove-tag":(e,t)=>P(e)&&Md(t),"drag-tag":(e,t,n)=>Md(e)&&Md(t)&&P(n),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0};function GF({wrapperRef:e,handleDragged:t,afterDragged:n}){let r=$(`input-tag`),i=Le(),a=q(!1),o,s,c,l;function u(e){return`.${r.e(`inner`)} .${r.namespace.value}-tag:nth-child(${e+1})`}function d(t,n){o=n,s=e.value.querySelector(u(n)),s&&(s.style.opacity=`0.5`),t.dataTransfer.effectAllowed=`move`}function f(t,n){if(c=n,t.preventDefault(),t.dataTransfer.dropEffect=`move`,Ad(o)||o===n){a.value=!1;return}let s=e.value.querySelector(u(n)).getBoundingClientRect(),d=o+1!==n,f=o-1!==n,p=t.clientX-s.left,m=d?f?.5:1:-1,h=f?d?.5:0:1;l=p<=s.width*m?`before`:p>s.width*h?`after`:void 0;let g=e.value.querySelector(`.${r.e(`inner`)}`),_=g.getBoundingClientRect(),v=Number.parseFloat(vp(g,`gap`))/2,y=s.top-_.top,b=-9999;if(l===`before`)b=Math.max(s.left-_.left-v,Math.floor(-v/2));else if(l===`after`){let e=s.right-_.left;b=e+(_.width===e?Math.floor(v/2):v)}yp(i.value,{top:`${y}px`,left:`${b}px`}),a.value=!!l}function p(e){e.preventDefault(),s&&(s.style.opacity=``),l&&!Ad(o)&&!Ad(c)&&o!==c&&t(o,c,l),a.value=!1,o=void 0,s=null,c=void 0,l=void 0,n?.()}return{dropIndicatorRef:i,showDropIndicator:a,handleDragStart:d,handleDragOver:f,handleDragEnd:p}}function KF(){let e=q(!1);return{hovering:e,handleMouseEnter:()=>{e.value=!0},handleMouseLeave:()=>{e.value=!1}}}function qF({props:e,emit:t,formItem:n}){let r=lb(),i=cb(),a=Le(),o=q(),s=q(),c=K(()=>[`small`].includes(i.value)?`small`:`default`),l=K(()=>e.modelValue?.length?void 0:e.placeholder),u=K(()=>!(e.readonly||r.value)),d=K(()=>Ad(e.max)?!1:(e.modelValue?.length??0)>=e.max),f=K(()=>e.collapseTags?e.modelValue?.slice(0,e.maxCollapseTags):e.modelValue),p=K(()=>e.collapseTags?e.modelValue?.slice(e.maxCollapseTags):[]),m=n=>{let r=[...e.modelValue??[],...Cs(n)];t(br,r),t(xr,r),t(`add-tag`,n),o.value=void 0},h=t=>{let n=t.split(e.delimiter),r=n.length>1?n.map(e=>e.trim()).filter(Boolean):[];if(e.max){let t=e.max-(e.modelValue?.length??0);r.splice(t)}return r.length===1?r[0]:r},g=n=>{let r=n.clipboardData?.getData(`text`);if(e.readonly||d.value||!e.delimiter||!r)return;let{selectionStart:i=0,selectionEnd:a=0,value:o}=n.target,s=o.slice(0,i)+r+o.slice(a),c=h(s);c.length&&(m(c),t(Sr,s),n.preventDefault())},_=n=>{if(d.value){o.value=void 0;return}if(!O.value){if(e.delimiter&&o.value){let e=h(o.value);e.length&&m(e)}t(Sr,n.target.value)}},v=t=>{if(!O.value)switch(Kp(t)){case e.trigger:t.preventDefault(),t.stopPropagation(),b();break;case X.numpadEnter:e.trigger===X.enter&&(t.preventDefault(),t.stopPropagation(),b());break;case X.backspace:!o.value&&e.modelValue?.length&&(t.preventDefault(),t.stopPropagation(),x(e.modelValue.length-1));break}},y=t=>{if(!(O.value||!up()))switch(Kp(t)){case X.space:e.trigger===X.space&&(t.preventDefault(),t.stopPropagation(),b());break}},b=()=>{let e=o.value?.trim();!e||d.value||m(e)},x=n=>{let r=(e.modelValue??[]).slice(),[i]=r.splice(n,1);t(br,r),t(xr,r),t(`remove-tag`,i,n)},S=()=>{o.value=void 0,t(br,void 0),t(xr,void 0),t(`clear`)},C=(n,r,i)=>{let a=(e.modelValue??[]).slice(),[o]=a.splice(n,1),s=r>n&&i===`before`?-1:+(r{a.value?.focus()},T=()=>{a.value?.blur()},{wrapperRef:E,isFocused:D}=wv(a,{disabled:r,beforeBlur(e){return s.value?.isFocusInsideContent(e)},afterBlur(){e.saveOnBlur?b():o.value=void 0,e.validateEvent&&n?.validate?.(`blur`).catch(ge)}}),{isComposing:O,handleCompositionStart:k,handleCompositionUpdate:A,handleCompositionEnd:ee}=Tv({afterComposition:_});return M(()=>e.modelValue,()=>{e.validateEvent&&n?.validate?.(xr).catch(ge)}),{inputRef:a,wrapperRef:E,tagTooltipRef:s,isFocused:D,isComposing:O,inputValue:o,size:i,tagSize:c,placeholder:l,closable:u,disabled:r,inputLimit:d,showTagList:f,collapseTagList:p,handleDragged:C,handlePaste:g,handleInput:_,handleKeydown:v,handleKeyup:y,handleAddTag:b,handleRemoveTag:x,handleClear:S,handleCompositionStart:k,handleCompositionUpdate:A,handleCompositionEnd:ee,focus:w,blur:T}}function JF({props:e,isFocused:t,hovering:n,disabled:r,inputValue:i,size:a,validateState:o,validateIcon:s,needStatusIcon:c}){let l=y(),u=le(),d=$(`input-tag`),f=$(`input`),p=q(),m=q(),h=K(()=>[d.b(),d.is(`focused`,t.value),d.is(`hovering`,n.value),d.is(`disabled`,r.value),d.m(a.value),d.e(`wrapper`),l.class]),g=K(()=>[l.style]),_=K(()=>[d.e(`inner`),d.is(`draggable`,e.draggable),d.is(`left-space`,!e.modelValue?.length&&!u.prefix),d.is(`right-space`,!e.modelValue?.length&&!b.value)]),v=K(()=>e.clearable&&!r.value&&!e.readonly&&(e.modelValue?.length||i.value)&&(t.value||n.value)),b=K(()=>u.suffix||v.value||o.value&&s.value&&c.value),x=ve({innerWidth:0,collapseItemWidth:0}),S=()=>{if(!m.value)return 0;let e=window.getComputedStyle(m.value);return Number.parseFloat(e.gap||`6px`)},C=()=>{x.innerWidth=Number.parseFloat(window.getComputedStyle(m.value).width)},w=()=>{x.collapseItemWidth=p.value.getBoundingClientRect().width},T=K(()=>{if(!e.collapseTags)return{};let t=S(),n=t+11,r=p.value&&e.maxCollapseTags===1?x.innerWidth-x.collapseItemWidth-t-n:x.innerWidth-n;return{maxWidth:`${Math.max(r,0)}px`}});return Uf(m,C),Uf(p,w),{ns:d,nsInput:f,containerKls:h,containerStyle:g,innerKls:_,showClear:v,showSuffix:b,tagStyle:T,collapseItemRef:p,innerRef:m}}var YF=[`id`,`minlength`,`maxlength`,`disabled`,`readonly`,`autocomplete`,`tabindex`,`placeholder`,`autofocus`,`ariaLabel`],XF=[`textContent`],ZF=Pv(z({name:`ElInputTag`,inheritAttrs:!1,__name:`input-tag`,props:UF,emits:WF,setup(e,{expose:t,emit:n}){let i=e,a=n,o=Zd(),s=le(),{form:c,formItem:l}=ub(),{inputId:u}=db(i,{formItemContext:l}),d=K(()=>c?.statusIcon??!1),f=K(()=>l?.validateState||``),p=K(()=>f.value&&Ly[f.value]),{inputRef:h,wrapperRef:g,tagTooltipRef:_,isFocused:v,inputValue:y,size:b,tagSize:x,placeholder:C,closable:w,disabled:T,showTagList:E,collapseTagList:D,handleDragged:O,handlePaste:A,handleInput:ee,handleKeydown:j,handleKeyup:M,handleRemoveTag:P,handleClear:te,handleCompositionStart:ne,handleCompositionUpdate:re,handleCompositionEnd:ie,focus:ae,blur:oe}=qF({props:i,emit:a,formItem:l}),{hovering:se,handleMouseEnter:ce,handleMouseLeave:ue}=KF(),{calculatorRef:de,inputStyle:fe}=Xf(),{dropIndicatorRef:pe,showDropIndicator:me,handleDragStart:z,handleDragOver:_e,handleDragEnd:ve}=GF({wrapperRef:g,handleDragged:O,afterDragged:ae}),{ns:ye,nsInput:be,containerKls:xe,containerStyle:Se,innerKls:Ce,showClear:we,showSuffix:Te,tagStyle:Ee,collapseItemRef:De,innerRef:Oe}=JF({props:i,hovering:se,isFocused:v,inputValue:y,disabled:T,size:b,validateState:f,validateIcon:p,needStatusIcon:d});return t({focus:ae,blur:oe}),(t,n)=>(N(),W(`div`,{ref_key:`wrapperRef`,ref:g,class:F(Y(xe)),style:m(Y(Se)),onMouseenter:n[9]||=(...e)=>Y(ce)&&Y(ce)(...e),onMouseleave:n[10]||=(...e)=>Y(ue)&&Y(ue)(...e)},[Y(s).prefix?(N(),W(`div`,{key:0,class:F(Y(ye).e(`prefix`))},[I(t.$slots,`prefix`)],2)):G(`v-if`,!0),B(`div`,{ref_key:`innerRef`,ref:Oe,class:F(Y(Ce))},[(N(!0),W(R,null,r(Y(E),(r,i)=>(N(),H(Y(oE),{key:i,size:Y(x),closable:Y(w),type:e.tagType,effect:e.tagEffect,draggable:Y(w)&&e.draggable,style:m(Y(Ee)),"disable-transitions":``,onClose:e=>Y(P)(i),onDragstart:e=>Y(z)(e,i),onDragover:e=>Y(_e)(e,i),onDragend:Y(ve),onDrop:n[0]||=kn(()=>{},[`stop`])},{default:V(()=>[I(t.$slots,`tag`,{value:r,index:i},()=>[Ke(S(r),1)])]),_:2},1032,[`size`,`closable`,`type`,`effect`,`draggable`,`style`,`onClose`,`onDragstart`,`onDragover`,`onDragend`]))),128)),e.collapseTags&&e.modelValue&&e.modelValue.length>e.maxCollapseTags?(N(),H(Y(ES),{key:0,ref_key:`tagTooltipRef`,ref:_,disabled:!e.collapseTagsTooltip,"fallback-placements":[`bottom`,`top`,`right`,`left`],effect:e.effect,placement:`bottom`},{default:V(()=>[B(`div`,{ref_key:`collapseItemRef`,ref:De,class:F(Y(ye).e(`collapse-tag`))},[J(Y(oE),{closable:!1,size:Y(x),type:e.tagType,effect:e.tagEffect,"disable-transitions":``},{default:V(()=>[Ke(` + `+S(e.modelValue.length-e.maxCollapseTags),1)]),_:1},8,[`size`,`type`,`effect`])],2)]),content:V(()=>[B(`div`,{class:F(Y(ye).e(`input-tag-list`))},[(N(!0),W(R,null,r(Y(D),(n,r)=>(N(),H(Y(oE),{key:r,size:Y(x),closable:Y(w),type:e.tagType,effect:e.tagEffect,"disable-transitions":``,onClose:t=>Y(P)(r+e.maxCollapseTags)},{default:V(()=>[I(t.$slots,`tag`,{value:n,index:r+e.maxCollapseTags},()=>[Ke(S(n),1)])]),_:2},1032,[`size`,`closable`,`type`,`effect`,`onClose`]))),128))],2)]),_:3},8,[`disabled`,`effect`])):G(`v-if`,!0),B(`div`,{class:F(Y(ye).e(`input-wrapper`))},[Ge(B(`input`,k({id:Y(u),ref_key:`inputRef`,ref:h,"onUpdate:modelValue":n[1]||=e=>he(y)?y.value=e:null},Y(o),{type:`text`,minlength:e.minlength,maxlength:e.maxlength,disabled:Y(T),readonly:e.readonly,autocomplete:e.autocomplete,tabindex:e.tabindex,placeholder:Y(C),autofocus:e.autofocus,ariaLabel:e.ariaLabel,class:Y(ye).e(`input`),style:Y(fe),onCompositionstart:n[2]||=(...e)=>Y(ne)&&Y(ne)(...e),onCompositionupdate:n[3]||=(...e)=>Y(re)&&Y(re)(...e),onCompositionend:n[4]||=(...e)=>Y(ie)&&Y(ie)(...e),onPaste:n[5]||=(...e)=>Y(A)&&Y(A)(...e),onInput:n[6]||=(...e)=>Y(ee)&&Y(ee)(...e),onKeydown:n[7]||=(...e)=>Y(j)&&Y(j)(...e),onKeyup:n[8]||=(...e)=>Y(M)&&Y(M)(...e)}),null,16,YF),[[xn,Y(y)]]),B(`span`,{ref_key:`calculatorRef`,ref:de,"aria-hidden":`true`,class:F(Y(ye).e(`input-calculator`)),textContent:S(Y(y))},null,10,XF)],2),Ge(B(`div`,{ref_key:`dropIndicatorRef`,ref:pe,class:F(Y(ye).e(`drop-indicator`))},null,2),[[jt,Y(me)]])],2),Y(Te)?(N(),W(`div`,{key:1,class:F(Y(ye).e(`suffix`))},[I(t.$slots,`suffix`),Y(we)?(N(),H(Y(By),{key:0,class:F([Y(ye).e(`icon`),Y(ye).e(`clear`)]),onMousedown:kn(Y(ge),[`prevent`]),onClick:Y(te)},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`onMousedown`,`onClick`])):G(`v-if`,!0),f.value&&p.value&&d.value?(N(),H(Y(By),{key:1,class:F([Y(be).e(`icon`),Y(be).e(`validateIcon`),Y(be).is(`loading`,f.value===`validating`)])},{default:V(()=>[(N(),H(L(p.value)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)):G(`v-if`,!0)],38))}})),QF={[br]:e=>P(e),[xr]:e=>P(e),finish:e=>P(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent},$F=[`id`,`aria-label`,`aria-labelledby`],eI=[`value`,`type`,`disabled`,`readonly`,`inputmode`,`aria-label`,`onClick`,`onKeydown`,`onInput`],tI=Pv(z({name:`ElInputOtp`,__name:`input-otp`,props:{modelValue:{type:[String,Number],required:!1},length:{type:Number,required:!1,default:6},validator:{type:Function,required:!1,default:()=>!0},inputmode:{type:null,required:!1},type:{type:String,required:!1,default:`outlined`},size:{type:null,required:!1,default:`default`},mask:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1,default:void 0},readonly:{type:Boolean,required:!1},id:{type:String,required:!1},validateEvent:{type:Boolean,required:!1,default:!0},separator:{type:[String,Object,Function],required:!1},ariaLabel:{type:String,required:!1}},emits:QF,setup(e,{expose:t,emit:i}){let a=e,o=i,s=K(()=>{let e=String(a.modelValue??``);return Array.from({length:a.length},(t,n)=>e.charAt(n))}),c=K(()=>{let{separator:e}=a,t=n(e)?e:()=>e;return Array.from({length:a.length-1},(e,n)=>t(n))}),l=q(s.value),u=q(!1),d=q([]),f=$(`input-otp`),{t:p}=Dp(),{formItem:m}=ub(),{inputId:h,isLabeledByFormItem:g}=db(a,{formItemContext:m}),_=lb(),v=a.modelValue,y=e=>{let t=l.value.findIndex((t,n)=>!t&&n<=e);return t===-1?e:t},b=e=>{d.value?.includes(e.relatedTarget)||(u.value=!0,o(`focus`,e))},x=e=>{d.value?.includes(e.relatedTarget)||(u.value=!1,o(`blur`,e),a.validateEvent&&m?.validate?.(`blur`).catch(ge))},S=(e=!0)=>{let t=l.value.join(``).slice(0,a.length);t!==a.modelValue&&(o(br,t),e&&t.length===a.length&&o(`finish`,t))},C=(e,t)=>{let n=Kp(e),r=!0;switch(n){case X.backspace:if(a.readonly)break;l.value[t]=``,E(t-1),S();break;case X.delete:if(a.readonly)break;l.value[t]=``,E(t),S();break;case X.up:case X.left:E(t-1);break;case X.down:case X.right:E(t+1);break;default:r=!1}r&&e.preventDefault()},w=(e,t)=>{let n=e.target,r=y(t),i=r+1,o=n.value;if(o.length>1){let e=T(o,r);n.value=l.value[t]??``,e.forEach((e,t)=>l.value[r+t]=e),E(r+e.length),S();return}a.validator(o,r)||(n.value=l.value[t]??``,o=n.value,i=r),l.value[r]=o,r!==t&&(n.value=l.value[t]??``),E(i),S()},T=(e,t=0)=>{let n=`${e??``}`.split(``),r=[];for(let e of n){if(r.length+t>=a.length)break;a.validator(e,r.length+t)&&r.push(e)}return r},E=(e=0)=>{let t=cf(e,0,a.length-1),n=d.value?.[t];document.activeElement!==n&&n?.focus(),Np(()=>{!a.readonly&&document.activeElement===n&&n?.select()})};return M(()=>a.modelValue,()=>{l.value=s.value,a.validateEvent&&m?.validate?.(`change`).catch(ge)}),M(()=>a.length,()=>{l.value=s.value,S(!1)}),M(u,e=>{if(e){v=a.modelValue;return}v!==a.modelValue&&o(xr,a.modelValue)}),t({inputRefs:d,focus:E,blur:()=>{(d.value?.find(e=>document.activeElement===e))?.blur()}}),(t,n)=>(N(),W(`div`,{id:Y(h),class:F([Y(f).b(),Y(f).m(e.size),Y(f).m(e.type),Y(f).is(`disabled`,Y(_))]),role:`group`,"aria-label":Y(g)?void 0:e.ariaLabel||Y(p)(`el.inputOTP.groupLabel`),"aria-labelledby":Y(g)?Y(m)?.labelId:void 0},[(N(!0),W(R,null,r(e.length,(n,r)=>(N(),W(R,{key:r},[B(`label`,{class:F(Y(f).e(`input-field`))},[B(`input`,{ref_for:!0,ref_key:`inputRefs`,ref:d,value:l.value[r],class:F(Y(f).e(`input`)),type:e.mask?`password`:`text`,disabled:Y(_),readonly:e.readonly,inputmode:e.inputmode,autocomplete:`one-time-code`,"aria-label":Y(p)(`el.inputOTP.defaultLabel`,{index:r+1}),onFocus:b,onBlur:x,onClick:e=>E(r),onKeydown:e=>C(e,r),onInput:e=>w(e,r)},null,42,eI)],2),(t.$slots.separator||c.value[r])&&r[(N(),H(L(()=>c.value[r])))]):G(`v-if`,!0)],64))),128))],10,$F))}})),nI=Q({type:{type:String,values:[`primary`,`success`,`warning`,`info`,`danger`,`default`],default:void 0},underline:{type:[Boolean,String],values:[!0,!1,`always`,`never`,`hover`],default:void 0},disabled:Boolean,href:{type:String,default:``},target:{type:String,default:`_self`},icon:{type:Ny}}),rI={click:e=>e instanceof MouseEvent},iI=[`href`,`target`],aI=Pv(z({name:`ElLink`,__name:`link`,props:nI,emits:rI,setup(e,{emit:t}){let n=e,r=t,i=FC(`link`);Zf({scope:`el-link`,from:`The underline option (boolean)`,replacement:`'always' | 'hover' | 'never'`,version:`3.0.0`,ref:`https://element-plus.org/en-US/component/link.html#underline`},K(()=>jd(n.underline)));let a=$(`link`),o=K(()=>[a.b(),a.m(n.type??i.value?.type??`default`),a.is(`disabled`,n.disabled),a.is(`underline`,s.value===`always`),a.is(`hover-underline`,s.value===`hover`&&!n.disabled)]),s=K(()=>jd(n.underline)?n.underline?`hover`:`never`:n.underline??i.value?.underline??`hover`);function c(e){n.disabled||r(`click`,e)}return(t,n)=>(N(),W(`a`,{class:F(o.value),href:e.disabled||!e.href?void 0:e.href,target:e.disabled||!e.href?void 0:e.target,onClick:c},[e.icon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.icon)))]),_:1})):G(`v-if`,!0),t.$slots.default?(N(),W(`span`,{key:1,class:F(Y(a).e(`inner`))},[I(t.$slots,`default`)],2)):G(`v-if`,!0),t.$slots.icon?I(t.$slots,`icon`,{key:2}):G(`v-if`,!0)],10,iI))}})),oI=`rootMenu`,sI=`subMenu:`;function cI(e,t){let n=K(()=>{let n=e.parent,r=[t.value];for(;n.type.name!==`ElMenu`;)n.props.index&&r.unshift(n.props.index),n=n.parent;return r});return{parentMenu:K(()=>{let t=e.parent;for(;t&&![`ElMenu`,`ElSubMenu`].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function lI(e){return K(()=>{let t=e.backgroundColor;return t?new gw(t).shade(20).toString():``})}var uI=(e,t)=>{let n=$(`menu`);return K(()=>n.cssVarBlock({"text-color":e.textColor||``,"hover-text-color":e.textColor||``,"bg-color":e.backgroundColor||``,"hover-bg-color":lI(e).value||``,"active-color":e.activeTextColor||``,level:`${t}`}))},dI=Q({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,popperStyle:{type:Z([String,Object])},disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:Ny},expandOpenIcon:{type:Ny},collapseCloseIcon:{type:Ny},collapseOpenIcon:{type:Ny}}),fI=`ElSubMenu`,pI=z({name:fI,props:dI,setup(e,{slots:t,expose:n}){let r=Xe(),{indexPath:i,parentMenu:a}=cI(r,K(()=>e.index)),o=$(`menu`),s=$(`sub-menu`),c=l(oI);c||qd(fI,`can not inject root menu`);let u=l(`${sI}${a.value.uid}`);u||qd(fI,`can not inject sub menu`);let f=q({}),p=q({}),m,h=q(!1),g=q(),_=q(),v=K(()=>u.level===0),y=K(()=>D.value===`horizontal`&&v.value?`bottom-start`:`right-start`),b=K(()=>D.value===`horizontal`&&v.value||D.value===`vertical`&&!c.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?w.value?e.expandOpenIcon:e.expandCloseIcon:Bv:e.collapseCloseIcon&&e.collapseOpenIcon?w.value?e.collapseOpenIcon:e.collapseCloseIcon:Hv),x=K(()=>{let t=e.teleported;return Ad(t)?v.value:t}),S=K(()=>c.props.collapse?`${o.namespace.value}-zoom-in-left`:`${o.namespace.value}-zoom-in-top`),C=K(()=>D.value===`horizontal`&&v.value?[`bottom-start`,`bottom-end`,`top-start`,`top-end`,`right-start`,`left-start`]:[`right-start`,`right`,`right-end`,`left-start`,`bottom-start`,`bottom-end`,`top-start`,`top-end`]),w=K(()=>c.openedMenus.includes(e.index)),E=K(()=>[...Object.values(f.value),...Object.values(p.value)].some(({active:e})=>e)),D=K(()=>c.props.mode),O=K(()=>c.props.persistent),k=ve({index:e.index,indexPath:i,active:E}),A=uI(c.props,u.level+1),ee=K(()=>e.popperOffset??c.props.popperOffset),j=K(()=>e.popperClass??c.props.popperClass),N=K(()=>e.popperStyle??c.props.popperStyle),te=K(()=>e.showTimeout??c.props.showTimeout),ne=K(()=>e.hideTimeout??c.props.hideTimeout),re=()=>_.value?.popperRef?.popperInstanceRef?.destroy(),ie=e=>{e||re()},ae=()=>{c.props.menuTrigger===`hover`&&c.props.mode===`horizontal`||c.props.collapse&&c.props.mode===`vertical`||e.disabled||c.handleSubMenuClick({index:e.index,indexPath:i.value,active:E.value})},F=(t,n=te.value)=>{if(t.type!==`focus`){if(c.props.menuTrigger===`click`&&c.props.mode===`horizontal`||!c.props.collapse&&c.props.mode===`vertical`||e.disabled){u.mouseInChild.value=!0;return}u.mouseInChild.value=!0,m?.(),{stop:m}=wf(()=>{c.openMenu(e.index,i.value)},n),x.value&&a.value.vnode.el?.dispatchEvent(new MouseEvent(`mouseenter`)),t.type===`mouseenter`&&t.target&&U(()=>{sp(t.target,{preventScroll:!0})})}},I=(t=!1)=>{if(c.props.menuTrigger===`click`&&c.props.mode===`horizontal`||!c.props.collapse&&c.props.mode===`vertical`){u.mouseInChild.value=!1;return}m?.(),u.mouseInChild.value=!1,{stop:m}=wf(()=>!h.value&&c.closeMenu(e.index,i.value),ne.value),x.value&&t&&u.handleMouseleave?.(!0)};return M(()=>c.props.collapse,e=>ie(!!e)),Qe(`${sI}${r.uid}`,{addSubMenu:e=>{p.value[e.index]=e},removeSubMenu:e=>{delete p.value[e.index]},handleMouseleave:I,mouseInChild:h,level:u.level+1}),n({opened:w}),d(()=>{c.addSubMenu(k),u.addSubMenu(k)}),T(()=>{u.removeSubMenu(k),c.removeSubMenu(k)}),()=>{let n=[t.title?.(),Je(By,{class:s.e(`icon-arrow`),style:{transform:w.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&c.props.collapse?`none`:`rotateZ(180deg)`:`none`}},{default:()=>P(b.value)?Je(r.appContext.components[b.value]):Je(b.value)})],i=c.isMenuPopup?Je(ES,{ref:_,visible:w.value,effect:`light`,pure:!0,offset:ee.value,showArrow:!1,persistent:O.value,popperClass:j.value,popperStyle:N.value,placement:y.value,teleported:x.value,fallbackPlacements:C.value,transition:S.value,gpuAcceleration:!1},{content:()=>Je(`div`,{class:[o.m(D.value),o.m(`popup-container`),j.value],onMouseenter:e=>F(e,100),onMouseleave:()=>I(!0),onFocus:e=>F(e,100)},[Je(`ul`,{class:[o.b(),o.m(`popup`),o.m(`popup-${y.value}`)],style:A.value},[t.default?.()])]),default:()=>Je(`div`,{class:s.e(`title`),onClick:ae},n)}):Je(R,{},[Je(`div`,{class:s.e(`title`),ref:g,onClick:ae},n),Je(sA,{},{default:()=>Ge(Je(`ul`,{role:`menu`,class:[o.b(),o.m(`inline`)],style:A.value},[t.default?.()]),[[jt,w.value]])})]);return Je(`li`,{class:[s.b(),s.is(`active`,E.value),s.is(`opened`,w.value),s.is(`disabled`,e.disabled)],role:`menuitem`,ariaHaspopup:!0,ariaExpanded:w.value,onMouseenter:F,onMouseleave:()=>I(),onFocus:F},[i])}}}),mI=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subMenuItems=this.domNode.querySelectorAll(`li`),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){let e=this.parent.domNode;this.subMenuItems.forEach(t=>{t.addEventListener(`keydown`,t=>{let n=Kp(t),r=!1;switch(n){case X.down:this.gotoSubIndex(this.subIndex+1),r=!0;break;case X.up:this.gotoSubIndex(this.subIndex-1),r=!0;break;case X.tab:ip(e,`mouseleave`);break;case X.enter:case X.numpadEnter:case X.space:r=!0,t.currentTarget.click();break}return r&&(t.preventDefault(),t.stopPropagation()),!1})})}},hI=class{constructor(e,t){this.domNode=e,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute(`tabindex`,`0`);let t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new mI(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener(`keydown`,e=>{let t=Kp(e),n=!1;switch(t){case X.down:ip(e.currentTarget,`mouseenter`),this.submenu?.gotoSubIndex(0),n=!0;break;case X.up:ip(e.currentTarget,`mouseenter`),this.submenu?.gotoSubIndex(this.submenu.subMenuItems.length-1),n=!0;break;case X.tab:ip(e.currentTarget,`mouseleave`);break;case X.enter:case X.numpadEnter:case X.space:n=!0,e.currentTarget.click();break}n&&e.preventDefault()})}},gI=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){let t=this.domNode.childNodes;Array.from(t).forEach(t=>{t.nodeType===1&&new hI(t,e)})}},_I=z({name:`ElMenuCollapseTransition`,__name:`menu-collapse-transition`,setup(e){let t=$(`menu`),n={onBeforeEnter:e=>e.style.opacity=`0.2`,onEnter(e,n){gp(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=`1`,n()},onAfterEnter(e){_p(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=``},onBeforeLeave(e){e.dataset||={},hp(e,t.m(`collapse`))?(_p(e,t.m(`collapse`)),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),gp(e,t.m(`collapse`))):(gp(e,t.m(`collapse`)),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),_p(e,t.m(`collapse`))),e.style.width=`${e.scrollWidth}px`,e.style.overflow=`hidden`},onLeave(e){gp(e,`horizontal-collapse-transition`),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(N(),H(pt,k({mode:`out-in`},n),{default:V(()=>[I(e.$slots,`default`)]),_:3},16))}}),vI=Q({mode:{type:String,values:[`horizontal`,`vertical`],default:`vertical`},defaultActive:{type:String,default:``},defaultOpeneds:{type:Z(Array),default:()=>DS([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:[`hover`,`click`],default:`hover`},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:Ny,default:()=>my},popperEffect:{type:Z(String),default:`dark`},popperClass:String,popperStyle:{type:Z([String,Object])},showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),yI=e=>A(e)&&e.every(e=>P(e)),bI={close:(e,t)=>P(e)&&yI(t),open:(e,t)=>P(e)&&yI(t),select:(e,t,n,r)=>P(e)&&yI(t)&&E(n)&&(Ad(r)||r instanceof Promise)},xI=64,SI=z({name:`ElMenu`,props:vI,emits:bI,setup(t,{emit:n,slots:r,expose:i}){let a=Xe(),o=a.appContext.config.globalProperties.$router,s=q(),c=q(),l=$(`menu`),u=$(`sub-menu`),f=xI,p=q(-1),m=q(t.defaultOpeneds&&!t.collapse?t.defaultOpeneds.slice(0):[]),h=q(t.defaultActive),g=q({}),_=q({}),v=K(()=>t.mode===`horizontal`||t.mode===`vertical`&&t.collapse),y=()=>{let e=h.value&&g.value[h.value];!e||t.mode===`horizontal`||t.collapse||e.indexPath.forEach(e=>{let t=_.value[e];t&&b(e,t.indexPath)})},b=(e,r)=>{m.value.includes(e)||(t.uniqueOpened&&(m.value=m.value.filter(e=>r.includes(e))),m.value.push(e),n(`open`,e,r))},x=e=>{let t=m.value.indexOf(e);t!==-1&&m.value.splice(t,1)},S=(e,t)=>{x(e),n(`close`,e,t)},C=({index:e,indexPath:t})=>{m.value.includes(e)?S(e,t):b(e,t)},w=e=>{(t.mode===`horizontal`||t.collapse)&&(m.value=[]);let{index:r,indexPath:i}=e;if(!(cd(r)||cd(i)))if(t.router&&o){let t=e.route||r,a=o.push(t).then(e=>(e||(h.value=r),e));n(`select`,r,i,{index:r,indexPath:i,route:t},a)}else h.value=r,n(`select`,r,i,{index:r,indexPath:i})},T=e=>{let n=g.value;h.value=(n[e]||h.value&&n[h.value]||n[t.defaultActive])?.index??e},E=e=>{let t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),r=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+r||0},D=()=>{if(!s.value)return-1;let e=Array.from(s.value.childNodes).filter(e=>e.nodeName!==`#comment`&&(e.nodeName!==`#text`||e.nodeValue)),t=getComputedStyle(s.value),n=Number.parseInt(t.paddingLeft,10),r=Number.parseInt(t.paddingRight,10),i=s.value.clientWidth-n-r,a=0,o=0;return e.forEach((e,t)=>{a+=E(e),a<=i-f&&(o=t+1)}),o===e.length?-1:o},O=e=>_.value[e].indexPath,k=(e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}},A=!0,ee=()=>{let e=Of(c);if(e&&(f=E(e)||xI),p.value===D())return;let t=()=>{p.value=-1,U(()=>{p.value=D()})};A?t():k(t)(),A=!1};M(()=>t.defaultActive,e=>{g.value[e]||(h.value=``),T(e)}),M(()=>t.collapse,e=>{e&&(m.value=[])}),M(g.value,y);let j;e(()=>{t.mode===`horizontal`&&t.ellipsis?j=Uf(s,ee).stop:j?.()});let N=q(!1);{let e=e=>{_.value[e.index]=e},n=e=>{delete _.value[e.index]};Qe(oI,ve({props:t,openedMenus:m,items:g,subMenus:_,activeIndex:h,isMenuPopup:v,addMenuItem:e=>{g.value[e.index]=e},removeMenuItem:e=>{delete g.value[e.index]},addSubMenu:e,removeSubMenu:n,openMenu:b,closeMenu:S,handleMenuItemClick:w,handleSubMenuClick:C})),Qe(`${sI}${a.uid}`,{addSubMenu:e,removeSubMenu:n,mouseInChild:N,level:0})}d(()=>{t.mode===`horizontal`&&new gI(a.vnode.el,l.namespace.value)}),i({open:e=>{let{indexPath:t}=_.value[e];t.forEach(e=>b(e,t))},close:x,updateActiveIndex:T,handleResize:ee});let P=uI(t,0);return()=>{let e=r.default?.()??[],i=[];if(t.mode===`horizontal`&&s.value){let n=vv(e).filter(e=>e?.shapeFlag!==8),r=p.value===-1?n:n.slice(0,p.value),a=p.value===-1?[]:n.slice(p.value);a?.length&&t.ellipsis&&(e=r,i.push(Je(pI,{ref:c,index:`sub-menu-more`,class:u.e(`hide-arrow`),popperOffset:t.popperOffset},{title:()=>Je(By,{class:u.e(`icon-more`)},{default:()=>Je(t.ellipsisIcon)}),default:()=>a})))}let a=t.closeOnClickOutside?[[eT,()=>{m.value.length&&(N.value||(m.value.forEach(e=>n(`close`,e,O(e))),m.value=[]))}]]:[],o=Ge(Je(`ul`,{key:String(t.collapse),role:`menubar`,ref:s,style:P.value,class:{[l.b()]:!0,[l.m(t.mode)]:!0,[l.m(`collapse`)]:t.collapse}},[...e,...i]),a);return t.collapseTransition&&t.mode===`vertical`?Je(_I,()=>o):o}}}),CI=Q({index:{type:String,required:!0},route:{type:Z([String,Object])},disabled:Boolean}),wI={click:e=>P(e.index)&&A(e.indexPath)},TI={title:String},EI=`ElMenuItem`,DI=z({name:EI,__name:`menu-item`,props:CI,emits:wI,setup(e,{expose:t,emit:n}){let r=e,i=n,a=Xe(),o=l(oI),s=$(`menu`),c=$(`menu-item`);o||qd(EI,`can not inject root menu`);let{parentMenu:u,indexPath:f}=cI(a,we(r,`index`)),p=l(`${sI}${u.value.uid}`);p||qd(EI,`can not inject sub menu`);let m=K(()=>r.index===o.activeIndex),h=ve({index:r.index,indexPath:f,active:m}),g=()=>{r.disabled||(o.handleMenuItemClick({index:r.index,indexPath:f.value,route:r.route}),i(`click`,h))};return d(()=>{p.addSubMenu(h),o.addMenuItem(h)}),T(()=>{p.removeSubMenu(h),o.removeMenuItem(h)}),t({parentMenu:u,rootMenu:o,active:m,nsMenu:s,nsMenuItem:c,handleClick:g}),(t,n)=>(N(),W(`li`,{class:F([Y(c).b(),Y(c).is(`active`,m.value),Y(c).is(`disabled`,e.disabled)]),role:`menuitem`,tabindex:`-1`,onClick:g},[Y(u).type.name===`ElMenu`&&Y(o).props.collapse&&t.$slots.title?(N(),H(Y(ES),{key:0,effect:Y(o).props.popperEffect,placement:`right`,"fallback-placements":[`left`],"popper-class":Y(o).props.popperClass,"popper-style":Y(o).props.popperStyle,persistent:Y(o).props.persistent,"focus-on-target":``},{content:V(()=>[I(t.$slots,`title`)]),default:V(()=>[B(`div`,{class:F(Y(s).be(`tooltip`,`trigger`))},[I(t.$slots,`default`)],2)]),_:3},8,[`effect`,`popper-class`,`popper-style`,`persistent`])):(N(),W(R,{key:1},[I(t.$slots,`default`),I(t.$slots,`title`)],64))],2))}}),OI=z({name:`ElMenuItemGroup`,__name:`menu-item-group`,props:TI,setup(e){let t=$(`menu-item-group`);return(n,r)=>(N(),W(`li`,{class:F(Y(t).b())},[B(`div`,{class:F(Y(t).e(`title`))},[n.$slots.title?I(n.$slots,`title`,{key:1}):(N(),W(R,{key:0},[Ke(S(e.title),1)],64))],2),B(`ul`,null,[I(n.$slots,`default`)])],2))}}),kI=Pv(SI,{MenuItem:DI,MenuItemGroup:OI,SubMenu:pI}),AI=Lv(DI),jI=Lv(OI),MI=Lv(pI),NI=Q({icon:{type:Ny,default:()=>Wv},title:String,content:{type:String,default:``}}),PI={back:()=>!0},FI=[`aria-label`],II=Pv(z({name:`ElPageHeader`,__name:`page-header`,props:NI,emits:PI,setup(e,{emit:t}){let n=t,{t:r}=Dp(),i=$(`page-header`);function a(){n(`back`)}return(t,n)=>(N(),W(`div`,{class:F([Y(i).b(),Y(i).is(`contentful`,!!t.$slots.default),{[Y(i).m(`has-breadcrumb`)]:!!t.$slots.breadcrumb,[Y(i).m(`has-extra`)]:!!t.$slots.extra}])},[t.$slots.breadcrumb?(N(),W(`div`,{key:0,class:F(Y(i).e(`breadcrumb`))},[I(t.$slots,`breadcrumb`)],2)):G(`v-if`,!0),B(`div`,{class:F(Y(i).e(`header`))},[B(`div`,{class:F(Y(i).e(`left`))},[B(`div`,{class:F(Y(i).e(`back`)),role:`button`,tabindex:`0`,onClick:a},[e.icon||t.$slots.icon?(N(),W(`div`,{key:0,"aria-label":e.title||Y(r)(`el.pageHeader.title`),class:F(Y(i).e(`icon`))},[I(t.$slots,`icon`,{},()=>[e.icon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.icon)))]),_:1})):G(`v-if`,!0)])],10,FI)):G(`v-if`,!0),B(`div`,{class:F(Y(i).e(`title`))},[I(t.$slots,`title`,{},()=>[Ke(S(e.title||Y(r)(`el.pageHeader.title`)),1)])],2)],2),J(Y(HN),{direction:`vertical`}),B(`div`,{class:F(Y(i).e(`content`))},[I(t.$slots,`content`,{},()=>[Ke(S(e.content),1)])],2)],2),t.$slots.extra?(N(),W(`div`,{key:0,class:F(Y(i).e(`extra`))},[I(t.$slots,`extra`)],2)):G(`v-if`,!0)],2),t.$slots.default?(N(),W(`div`,{key:1,class:F(Y(i).e(`main`))},[I(t.$slots,`default`)],2)):G(`v-if`,!0)],2))}})),LI=Symbol(`elPaginationKey`),RI=Q({disabled:Boolean,currentPage:{type:Number,default:1},prevText:{type:String},prevIcon:{type:Ny}}),zI={click:e=>e instanceof MouseEvent},BI=[`disabled`,`aria-label`,`aria-disabled`],VI={key:0},HI=z({name:`ElPaginationPrev`,__name:`prev`,props:RI,emits:zI,setup(e){let t=e,{t:n}=Dp(),r=K(()=>t.disabled||t.currentPage<=1);return(e,t)=>(N(),W(`button`,{type:`button`,class:`btn-prev`,disabled:r.value,"aria-label":e.prevText||Y(n)(`el.pagination.prev`),"aria-disabled":r.value,onClick:t[0]||=t=>e.$emit(`click`,t)},[e.prevText?(N(),W(`span`,VI,S(e.prevText),1)):(N(),H(Y(By),{key:1},{default:V(()=>[(N(),H(L(e.prevIcon)))]),_:1}))],8,BI))}}),UI=Q({disabled:Boolean,currentPage:{type:Number,default:1},pageCount:{type:Number,default:50},nextText:{type:String},nextIcon:{type:Ny}}),WI=[`disabled`,`aria-label`,`aria-disabled`],GI={key:0},KI=z({name:`ElPaginationNext`,__name:`next`,props:UI,emits:[`click`],setup(e){let t=e,{t:n}=Dp(),r=K(()=>t.disabled||t.currentPage===t.pageCount||t.pageCount===0);return(e,t)=>(N(),W(`button`,{type:`button`,class:`btn-next`,disabled:r.value,"aria-label":e.nextText||Y(n)(`el.pagination.next`),"aria-disabled":r.value,onClick:t[0]||=t=>e.$emit(`click`,t)},[e.nextText?(N(),W(`span`,GI,S(e.nextText),1)):(N(),H(Y(By),{key:1},{default:V(()=>[(N(),H(L(e.nextIcon)))]),_:1}))],8,WI))}}),qI=()=>l(LI,{}),JI=z({name:`ElPaginationSizes`,__name:`sizes`,props:Q({pageSize:{type:Number,required:!0},pageSizes:{type:Z(Array),default:()=>DS([10,20,30,40,50,100])},popperClass:{type:String},popperStyle:{type:Z([String,Object])},disabled:Boolean,teleported:Boolean,size:{type:String,values:wr},appendSizeTo:String}),emits:[`page-size-change`],setup(e,{emit:t}){let n=e,i=t,{t:a}=Dp(),o=$(`pagination`),s=qI(),c=q(n.pageSize);M(()=>n.pageSizes,(e,t)=>{sd(e,t)||A(e)&&i(`page-size-change`,e.includes(n.pageSize)?n.pageSize:n.pageSizes[0])}),M(()=>n.pageSize,e=>{c.value=e});let l=K(()=>n.pageSizes);function u(e){e!==c.value&&(c.value=e,s.handleSizeChange?.(Number(e)))}return(e,t)=>(N(),W(`span`,{class:F(Y(o).e(`sizes`))},[J(Y(LE),{"model-value":c.value,disabled:e.disabled,"popper-class":e.popperClass,"popper-style":e.popperStyle,size:e.size,teleported:e.teleported,"validate-event":!1,"append-to":e.appendSizeTo,onChange:u},{default:V(()=>[(N(!0),W(R,null,r(l.value,e=>(N(),H(Y(RE),{key:e,value:e,label:e+Y(a)(`el.pagination.pagesize`)},null,8,[`value`,`label`]))),128))]),_:1},8,[`model-value`,`disabled`,`popper-class`,`popper-style`,`size`,`teleported`,`append-to`])],2))}}),YI=Q({size:{type:String,values:wr}}),XI=[`disabled`],ZI=z({name:`ElPaginationJumper`,__name:`jumper`,props:YI,setup(e){let{t}=Dp(),n=$(`pagination`),{pageCount:r,disabled:i,currentPage:a,changeEvent:o}=qI(),s=q(),c=K(()=>s.value??a?.value);function l(e){s.value=e?+e:``}function u(e){e=Math.trunc(+e),o?.(e),s.value=void 0}return(e,a)=>(N(),W(`span`,{class:F(Y(n).e(`jump`)),disabled:Y(i)},[B(`span`,{class:F([Y(n).e(`goto`)])},S(Y(t)(`el.pagination.goto`)),3),J(Y(zS),{size:e.size,class:F([Y(n).e(`editor`),Y(n).is(`in-pagination`)]),min:1,max:Y(r),disabled:Y(i),"model-value":c.value,"validate-event":!1,"aria-label":Y(t)(`el.pagination.page`),type:`number`,"onUpdate:modelValue":l,onChange:u},null,8,[`size`,`class`,`max`,`disabled`,`model-value`,`aria-label`]),B(`span`,{class:F([Y(n).e(`classifier`)])},S(Y(t)(`el.pagination.pageClassifier`)),3)],10,XI))}}),QI=Q({total:{type:Number,default:1e3}}),$I=[`disabled`],eL=z({name:`ElPaginationTotal`,__name:`total`,props:QI,setup(e){let{t}=Dp(),n=$(`pagination`),{disabled:r}=qI();return(e,i)=>(N(),W(`span`,{class:F(Y(n).e(`total`)),disabled:Y(r)},S(Y(t)(`el.pagination.total`,{total:e.total})),11,$I))}}),tL=Q({currentPage:{type:Number,default:1},pageCount:{type:Number,required:!0},pagerCount:{type:Number,default:7},disabled:Boolean}),nL=[`aria-current`,`aria-label`,`tabindex`],rL=[`tabindex`,`aria-label`],iL=[`aria-current`,`aria-label`,`tabindex`],aL=[`tabindex`,`aria-label`],oL=[`aria-current`,`aria-label`,`tabindex`],sL=z({name:`ElPaginationPager`,__name:`pager`,props:tL,emits:[xr],setup(e,{emit:t}){let n=e,i=t,a=$(`pager`),o=$(`icon`),{t:s}=Dp(),c=q(!1),l=q(!1),u=q(!1),d=q(!1),f=q(!1),p=q(!1),m=K(()=>{let e=n.pagerCount,t=(e-1)/2,r=Number(n.currentPage),i=Number(n.pageCount),a=!1,o=!1;i>e&&(r>e-t&&(a=!0),r[`more`,`btn-quickprev`,o.b(),a.is(`disabled`,n.disabled)]),g=K(()=>[`more`,`btn-quicknext`,o.b(),a.is(`disabled`,n.disabled)]),_=K(()=>n.disabled?-1:0);M(()=>[n.pageCount,n.pagerCount,n.currentPage],([e,t,n])=>{let r=(t-1)/2,i=!1,a=!1;e>t&&(i=n>t-r,a=na&&(r=a)),r!==o&&i(xr,r)}return(e,t)=>(N(),W(`ul`,{class:F(Y(a).b()),onClick:x,onKeyup:jn(b,[`enter`])},[e.pageCount>0?(N(),W(`li`,{key:0,class:F([[Y(a).is(`active`,e.currentPage===1),Y(a).is(`disabled`,e.disabled)],`number`]),"aria-current":e.currentPage===1,"aria-label":Y(s)(`el.pagination.currentPage`,{pager:1}),tabindex:_.value},` 1 `,10,nL)):G(`v-if`,!0),c.value?(N(),W(`li`,{key:1,class:F(h.value),tabindex:_.value,"aria-label":Y(s)(`el.pagination.prevPages`,{pager:e.pagerCount-2}),onMouseenter:t[0]||=e=>v(!0),onMouseleave:t[1]||=e=>u.value=!1,onFocus:t[2]||=e=>y(!0),onBlur:t[3]||=e=>f.value=!1},[(u.value||f.value)&&!e.disabled?(N(),H(Y(ny),{key:0})):(N(),H(Y(py),{key:1}))],42,rL)):G(`v-if`,!0),(N(!0),W(R,null,r(m.value,t=>(N(),W(`li`,{key:t,class:F([[Y(a).is(`active`,e.currentPage===t),Y(a).is(`disabled`,e.disabled)],`number`]),"aria-current":e.currentPage===t,"aria-label":Y(s)(`el.pagination.currentPage`,{pager:t}),tabindex:_.value},S(t),11,iL))),128)),l.value?(N(),W(`li`,{key:2,class:F(g.value),tabindex:_.value,"aria-label":Y(s)(`el.pagination.nextPages`,{pager:e.pagerCount-2}),onMouseenter:t[4]||=e=>v(),onMouseleave:t[5]||=e=>d.value=!1,onFocus:t[6]||=e=>y(),onBlur:t[7]||=e=>p.value=!1},[(d.value||p.value)&&!e.disabled?(N(),H(Y(ry),{key:0})):(N(),H(Y(py),{key:1}))],42,aL)):G(`v-if`,!0),e.pageCount>1?(N(),W(`li`,{key:3,class:F([[Y(a).is(`active`,e.currentPage===e.pageCount),Y(a).is(`disabled`,e.disabled)],`number`]),"aria-current":e.currentPage===e.pageCount,"aria-label":Y(s)(`el.pagination.currentPage`,{pager:e.pageCount}),tabindex:_.value},S(e.pageCount),11,oL)):G(`v-if`,!0)],34))}}),cL=e=>typeof e!=`number`,lL=Q({pageSize:Number,defaultPageSize:Number,total:Number,pageCount:Number,pagerCount:{type:Number,validator:e=>Md(e)&&Math.trunc(e)===e&&e>4&&e<22&&e%2==1,default:7},currentPage:Number,defaultCurrentPage:Number,layout:{type:String,default:[`prev`,`pager`,`next`,`jumper`,`->`,`total`].join(`, `)},pageSizes:{type:Z(Array),default:()=>DS([10,20,30,40,50,100])},popperClass:{type:String,default:``},popperStyle:{type:Z([String,Object])},prevText:{type:String,default:``},prevIcon:{type:Ny,default:()=>Vv},nextText:{type:String,default:``},nextIcon:{type:Ny,default:()=>Hv},teleported:{type:Boolean,default:!0},small:Boolean,size:xv,background:Boolean,disabled:Boolean,hideOnSinglePage:Boolean,appendSizeTo:String}),uL={"update:current-page":e=>Md(e),"update:page-size":e=>Md(e),"size-change":e=>Md(e),change:(e,t)=>Md(e)&&Md(t),"current-change":e=>Md(e),"prev-click":e=>Md(e),"next-click":e=>Md(e)},dL=`ElPagination`,fL=Pv(z({name:dL,props:lL,emits:uL,setup(e,{emit:t,slots:n}){let{t:r}=Dp(),i=$(`pagination`),a=Xe().vnode.props||{},o=Cv(),s=K(()=>e.small?`small`:e.size??o.value);Zf({from:`small`,replacement:`size`,version:`3.0.0`,scope:`el-pagination`,ref:`https://element-plus.org/zh-CN/component/pagination.html`},K(()=>!!e.small));let c=`onUpdate:currentPage`in a||`onUpdate:current-page`in a||`onCurrentChange`in a,l=`onUpdate:pageSize`in a||`onUpdate:page-size`in a||`onSizeChange`in a,u=K(()=>{if(cL(e.total)&&cL(e.pageCount)||!cL(e.currentPage)&&!c)return!1;if(e.layout.includes(`sizes`)){if(!cL(e.pageCount)){if(!l)return!1}else if(!cL(e.total)&&!cL(e.pageSize)&&!l)return!1}return!0}),d=q(cL(e.defaultPageSize)?10:e.defaultPageSize),f=q(cL(e.defaultCurrentPage)?1:e.defaultCurrentPage),p=K({get(){return cL(e.pageSize)?d.value:e.pageSize},set(n){cL(e.pageSize)&&(d.value=n),l&&(t(`update:page-size`,n),t(`size-change`,n))}}),m=K(()=>{let t=0;return cL(e.pageCount)?cL(e.total)||(t=Math.max(1,Math.ceil(e.total/p.value))):t=e.pageCount,t}),h=K({get(){return cL(e.currentPage)?f.value:e.currentPage},set(n){let r=n;n<1?r=1:n>m.value&&(r=m.value),cL(e.currentPage)&&(f.value=r),c&&(t(`update:current-page`,r),t(`current-change`,r))}});M(m,e=>{h.value>e&&(h.value=e)}),M([h,p],e=>{t(xr,...e)},{flush:`post`});function g(e){h.value=e}function _(e){p.value=e;let t=m.value;h.value>t&&(h.value=t)}function v(){e.disabled||(--h.value,t(`prev-click`,h.value))}function y(){e.disabled||(h.value+=1,t(`next-click`,h.value))}function b(e,t){e&&(e.props||={},e.props.class=[e.props.class,t].join(` `))}return Qe(LI,{pageCount:m,disabled:K(()=>e.disabled),currentPage:h,changeEvent:g,handleSizeChange:_}),()=>{if(!u.value)return Jd(dL,r(`el.pagination.deprecationWarning`)),null;if(!e.layout||e.hideOnSinglePage&&m.value<=1)return null;let t=[],a=[],o=Je(`div`,{class:i.e(`rightwrapper`)},a),c={prev:Je(HI,{disabled:e.disabled,currentPage:h.value,prevText:e.prevText,prevIcon:e.prevIcon,onClick:v}),jumper:Je(ZI,{size:s.value}),pager:Je(sL,{currentPage:h.value,pageCount:m.value,pagerCount:e.pagerCount,onChange:g,disabled:e.disabled}),next:Je(KI,{disabled:e.disabled,currentPage:h.value,pageCount:m.value,nextText:e.nextText,nextIcon:e.nextIcon,onClick:y}),sizes:Je(JI,{pageSize:p.value,pageSizes:e.pageSizes,popperClass:e.popperClass,popperStyle:e.popperStyle,disabled:e.disabled,teleported:e.teleported,size:s.value,appendSizeTo:e.appendSizeTo}),slot:n?.default?.()??null,total:Je(eL,{total:cL(e.total)?0:e.total})},l=e.layout.split(`,`).map(e=>e.trim()),d=!1;return l.forEach(e=>{if(e===`->`){d=!0;return}d?a.push(c[e]):t.push(c[e])}),b(t[0],i.is(`first`)),b(t[t.length-1],i.is(`last`)),d&&a.length>0&&(b(a[0],i.is(`first`)),b(a[a.length-1],i.is(`last`)),t.push(o)),Je(`div`,{class:[i.b(),i.is(`background`,e.background),i.m(s.value)]},t)}}})),pL=Pv(z({name:`ElPopconfirm`,__name:`popconfirm`,props:Q({title:String,confirmButtonText:String,cancelButtonText:String,confirmButtonType:{type:String,values:AC,default:`primary`},cancelButtonType:{type:String,values:AC,default:`text`},icon:{type:Ny,default:()=>vy},iconColor:{type:String,default:`#f90`},hideIcon:Boolean,hideAfter:{type:Number,default:200},effect:{...fS.effect,default:`light`},teleported:fS.teleported,persistent:fS.persistent,width:{type:[String,Number],default:150},virtualTriggering:pS.virtualTriggering,virtualRef:pS.virtualRef}),emits:{confirm:e=>e instanceof MouseEvent,cancel:e=>e instanceof MouseEvent},setup(e,{expose:t,emit:n}){let r=e,i=n,{t:a}=Dp(),o=$(`popconfirm`),s=q(),c=q(),l=K(()=>Y(s)?.popperRef),u=()=>{c.value?.focus?.()},d=()=>{s.value?.onClose?.()},f=K(()=>({width:bp(r.width)})),p=e=>{i(`confirm`,e),d()},h=e=>{i(`cancel`,e),d()},g=K(()=>r.confirmButtonText||a(`el.popconfirm.confirmButtonText`)),_=K(()=>r.cancelButtonText||a(`el.popconfirm.cancelButtonText`));return t({popperRef:l,hide:d}),(t,n)=>(N(),H(Y(ES),k({ref_key:`tooltipRef`,ref:s,trigger:`click`,effect:e.effect},t.$attrs,{"virtual-triggering":e.virtualTriggering,"virtual-ref":e.virtualRef,"popper-class":`${Y(o).namespace.value}-popover`,"popper-style":f.value,teleported:e.teleported,"fallback-placements":[`bottom`,`top`,`right`,`left`],"hide-after":e.hideAfter,persistent:e.persistent,loop:``,onShow:u}),{content:V(()=>[B(`div`,{ref_key:`rootRef`,ref:c,tabindex:`-1`,class:F(Y(o).b())},[B(`div`,{class:F(Y(o).e(`main`))},[!e.hideIcon&&e.icon?(N(),H(Y(By),{key:0,class:F(Y(o).e(`icon`)),style:m({color:e.iconColor})},{default:V(()=>[(N(),H(L(e.icon)))]),_:1},8,[`class`,`style`])):G(`v-if`,!0),Ke(` `+S(e.title),1)],2),B(`div`,{class:F(Y(o).e(`action`))},[I(t.$slots,`actions`,{confirm:p,cancel:h},()=>[J(Y(xw),{size:`small`,type:e.cancelButtonType===`text`?``:e.cancelButtonType,text:e.cancelButtonType===`text`,onClick:h},{default:V(()=>[Ke(S(_.value),1)]),_:1},8,[`type`,`text`]),J(Y(xw),{size:`small`,type:e.confirmButtonType===`text`?``:e.confirmButtonType,text:e.confirmButtonType===`text`,onClick:p},{default:V(()=>[Ke(S(g.value),1)]),_:1},8,[`type`,`text`])])],2)],2)]),default:V(()=>[t.$slots.reference?I(t.$slots,`reference`,{key:0}):G(`v-if`,!0)]),_:3},16,[`effect`,`virtual-triggering`,`virtual-ref`,`popper-class`,`popper-style`,`teleported`,`hide-after`,`persistent`]))}})),mL=Q({type:{type:String,default:`line`,values:[`line`,`circle`,`dashboard`]},percentage:{type:Number,default:0,validator:e=>e>=0&&e<=100},status:{type:String,default:``,values:[``,`success`,`exception`,`warning`]},indeterminate:Boolean,duration:{type:Number,default:3},strokeWidth:{type:Number,default:6},strokeLinecap:{type:Z(String),default:`round`},textInside:Boolean,width:{type:Number,default:126},showText:{type:Boolean,default:!0},color:{type:Z([String,Array,Function]),default:``},striped:Boolean,stripedFlow:Boolean,format:{type:Z(Function),default:e=>`${e}%`}}),hL=[`aria-valuenow`],gL={viewBox:`0 0 100 100`},_L=[`d`,`stroke`,`stroke-linecap`,`stroke-width`],vL=[`d`,`stroke`,`opacity`,`stroke-linecap`,`stroke-width`],yL={key:0},bL=Pv(z({name:`ElProgress`,__name:`progress`,props:mL,setup(e){let t={success:`#13ce66`,exception:`#ff4949`,warning:`#e6a23c`,default:`#20a0ff`},r=e,i=$(`progress`),a=K(()=>{let e={width:`${r.percentage}%`,animationDuration:`${r.duration}s`},t=b(r.percentage);return t.includes(`gradient`)?e.background=t:e.backgroundColor=t,e}),o=K(()=>(r.strokeWidth/r.width*100).toFixed(1)),s=K(()=>[`circle`,`dashboard`].includes(r.type)?Number.parseInt(`${50-Number.parseFloat(o.value)/2}`,10):0),c=K(()=>{let e=s.value,t=r.type===`dashboard`;return` + M 50 50 + m 0 ${t?``:`-`}${e} + a ${e} ${e} 0 1 1 0 ${t?`-`:``}${e*2} + a ${e} ${e} 0 1 1 0 ${t?``:`-`}${e*2} + `}),l=K(()=>2*Math.PI*s.value),u=K(()=>r.type===`dashboard`?.75:1),d=K(()=>`${-1*l.value*(1-u.value)/2}px`),f=K(()=>({strokeDasharray:`${l.value*u.value}px, ${l.value}px`,strokeDashoffset:d.value})),p=K(()=>({strokeDasharray:`${l.value*u.value*(r.percentage/100)}px, ${l.value}px`,strokeDashoffset:d.value,transition:`stroke-dasharray 0.6s ease 0s, stroke 0.6s ease, opacity ease 0.6s`})),h=K(()=>{let e;return e=r.color?b(r.percentage):t[r.status]||t.default,e}),g=K(()=>r.status===`warning`?Ay:r.type===`line`?r.status===`success`?Xv:Qv:r.status===`success`?Jv:ey),_=K(()=>r.type===`line`?12+r.strokeWidth*.4:r.width*.111111+2),v=K(()=>r.format(r.percentage));function y(e){let t=100/e.length;return e.map((e,n)=>P(e)?{color:e,percentage:(n+1)*t}:e).sort((e,t)=>e.percentage-t.percentage)}let b=e=>{let{color:t}=r;if(n(t))return t(e);if(P(t))return t;{let n=y(t);for(let t of n)if(t.percentage>e)return t.color;return n[n.length-1]?.color}};return(t,n)=>(N(),W(`div`,{class:F([Y(i).b(),Y(i).m(e.type),Y(i).is(e.status),{[Y(i).m(`without-text`)]:!e.showText,[Y(i).m(`text-inside`)]:e.textInside}]),role:`progressbar`,"aria-valuenow":e.percentage,"aria-valuemin":`0`,"aria-valuemax":`100`},[e.type===`line`?(N(),W(`div`,{key:0,class:F(Y(i).b(`bar`))},[B(`div`,{class:F(Y(i).be(`bar`,`outer`)),style:m({height:`${e.strokeWidth}px`})},[B(`div`,{class:F([Y(i).be(`bar`,`inner`),{[Y(i).bem(`bar`,`inner`,`indeterminate`)]:e.indeterminate},{[Y(i).bem(`bar`,`inner`,`striped`)]:e.striped},{[Y(i).bem(`bar`,`inner`,`striped-flow`)]:e.stripedFlow}]),style:m(a.value)},[(e.showText||t.$slots.default)&&e.textInside?(N(),W(`div`,{key:0,class:F(Y(i).be(`bar`,`innerText`))},[I(t.$slots,`default`,{percentage:e.percentage},()=>[B(`span`,null,S(v.value),1)])],2)):G(`v-if`,!0)],6)],6)],2)):(N(),W(`div`,{key:1,class:F(Y(i).b(`circle`)),style:m({height:`${e.width}px`,width:`${e.width}px`})},[(N(),W(`svg`,gL,[B(`path`,{class:F(Y(i).be(`circle`,`track`)),d:c.value,stroke:`var(${Y(i).cssVarName(`fill-color-light`)}, #e5e9f2)`,"stroke-linecap":e.strokeLinecap,"stroke-width":o.value,fill:`none`,style:m(f.value)},null,14,_L),B(`path`,{class:F(Y(i).be(`circle`,`path`)),d:c.value,stroke:h.value,fill:`none`,opacity:+!!e.percentage,"stroke-linecap":e.strokeLinecap,"stroke-width":o.value,style:m(p.value)},null,14,vL)]))],6)),(e.showText||t.$slots.default)&&!e.textInside?(N(),W(`div`,{key:2,class:F(Y(i).e(`text`)),style:m({fontSize:`${_.value}px`})},[I(t.$slots,`default`,{percentage:e.percentage},()=>[e.status?(N(),H(Y(By),{key:1},{default:V(()=>[(N(),H(L(g.value)))]),_:1})):(N(),W(`span`,yL,S(v.value),1))])],6)):G(`v-if`,!0)],10,hL))}})),xL=Q({modelValue:{type:Number,default:0},id:{type:String,default:void 0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:Z([Array,Object]),default:()=>DS([``,``,``])},voidColor:{type:String,default:``},disabledVoidColor:{type:String,default:``},icons:{type:Z([Array,Object]),default:()=>[Ey,Ey,Ey]},voidIcon:{type:Ny,default:()=>Dy},disabledVoidIcon:{type:Ny,default:()=>Ey},disabled:{type:Boolean,default:void 0},allowHalf:Boolean,showText:Boolean,showScore:Boolean,textColor:{type:String,default:``},texts:{type:Z(Array),default:()=>DS([`Extremely bad`,`Disappointed`,`Fair`,`Satisfied`,`Surprise`])},scoreTemplate:{type:String,default:`{value}`},size:xv,clearable:Boolean,...Mv([`ariaLabel`])}),SL={[xr]:e=>Md(e),[br]:e=>Md(e)},CL=[`id`,`aria-label`,`aria-labelledby`,`aria-valuenow`,`aria-valuetext`,`aria-valuemax`,`tabindex`,`aria-disabled`],wL=[`onMousemove`,`onClick`],TL=Pv(z({name:`ElRate`,__name:`rate`,props:xL,emits:SL,setup(e,{expose:t,emit:n}){function i(e,t){let n=e=>E(e),r=t[Object.keys(t).map(e=>+e).filter(r=>{let i=t[r];return n(i)&&i.excluded?ee-t)[0]];return n(r)&&r.value||r}let a=e,o=n,s=l(sb,void 0),c=cb(),u=$(`rate`),{inputId:d,isLabeledByFormItem:f}=db(a,{formItemContext:s}),p=q(Ts(a.modelValue,0,a.max)),h=q(-1),g=q(!0),_=q([]),v=K(()=>_.value.map(e=>e.$el.clientWidth)),y=K(()=>[u.b(),u.m(c.value)]),b=lb(),x=K(()=>u.cssVarBlock({"void-color":a.voidColor,"disabled-void-color":a.disabledVoidColor,"fill-color":D.value})),C=K(()=>{let e=``;return a.showScore?e=a.scoreTemplate.replace(/\{\s*value\s*\}/,b.value?`${a.modelValue}`:`${p.value}`):a.showText&&(e=a.texts[Math.ceil(p.value)-1]),e}),w=K(()=>a.modelValue*100-Math.floor(a.modelValue)*100),T=K(()=>A(a.colors)?{[a.lowThreshold]:a.colors[0],[a.highThreshold]:{value:a.colors[1],excluded:!0},[a.max]:a.colors[2]}:a.colors),D=K(()=>{let e=i(p.value,T.value);return E(e)?``:e}),O=K(()=>{let e=``;return b.value?e=`${w.value}%`:a.allowHalf&&(e=`50%`),{color:D.value,width:e}}),k=K(()=>{let e=A(a.icons)?[...a.icons]:{...a.icons};return e=Ie(e),A(e)?{[a.lowThreshold]:e[0],[a.highThreshold]:{value:e[1],excluded:!0},[a.max]:e[2]}:e}),ee=K(()=>i(a.modelValue,k.value)),j=K(()=>b.value?P(a.disabledVoidIcon)?a.disabledVoidIcon:Ie(a.disabledVoidIcon):P(a.voidIcon)?a.voidIcon:Ie(a.voidIcon)),te=K(()=>i(p.value,k.value));function ne(e){let t=b.value&&w.value>0&&e-1a.modelValue,n=a.allowHalf&&g.value&&e-.5<=p.value&&e>p.value;return t||n}function re(e){a.clearable&&e===a.modelValue&&(e=0),o(br,e),a.modelValue!==e&&o(xr,e)}function ie(e){b.value||(a.allowHalf&&g.value?re(p.value):re(e))}function ae(e){if(b.value)return;let t=Kp(e),n=a.allowHalf?.5:1,r=p.value;switch(t){case X.up:case X.right:r+=n;break;case X.left:case X.down:r-=n;break}if(r=Ts(r,0,a.max),r!==p.value)return e.stopPropagation(),e.preventDefault(),o(br,r),o(xr,r),r}function I(e,t){b.value||(a.allowHalf&&t?(g.value=t.offsetX*2<=v.value[e-1],p.value=g.value?e-.5:e):p.value=e,h.value=e)}function oe(){b.value||(a.allowHalf&&(g.value=a.modelValue!==Math.floor(a.modelValue)),p.value=Ts(a.modelValue,0,a.max),h.value=-1)}return M(()=>a.modelValue,e=>{p.value=Ts(e,0,a.max),g.value=a.modelValue!==Math.floor(a.modelValue)}),a.modelValue||o(br,0),t({setCurrentValue:I,resetCurrentValue:oe}),(t,n)=>(N(),W(`div`,{id:Y(d),class:F([y.value,Y(u).is(`disabled`,Y(b))]),role:`slider`,"aria-label":Y(f)?void 0:e.ariaLabel||`rating`,"aria-labelledby":Y(f)?Y(s)?.labelId:void 0,"aria-valuenow":p.value,"aria-valuetext":C.value||void 0,"aria-valuemin":`0`,"aria-valuemax":e.max,style:m(x.value),tabindex:Y(b)?void 0:0,"aria-disabled":Y(b),onKeydown:ae},[(N(!0),W(R,null,r(e.max,(e,t)=>(N(),W(`span`,{key:t,class:F(Y(u).e(`item`)),onMousemove:t=>I(e,t),onMouseleave:oe,onClick:t=>ie(e)},[J(Y(By),{ref_for:!0,ref_key:`iconRefs`,ref:_,class:F([Y(u).e(`icon`),{hover:h.value===e},Y(u).is(`active`,e<=p.value),Y(u).is(`focus-visible`,e===Math.ceil(p.value||1))])},{default:V(()=>[Ge((N(),H(L(te.value),null,null,512)),[[jt,!ne(e)&&e<=p.value]]),Ge((N(),H(L(j.value),null,null,512)),[[jt,!ne(e)&&e>p.value]]),Ge((N(),H(L(j.value),{class:F([Y(u).em(`decimal`,`box`)])},null,8,[`class`])),[[jt,ne(e)]]),Ge(J(Y(By),{style:m(O.value),class:F([Y(u).e(`icon`),Y(u).e(`decimal`)])},{default:V(()=>[(N(),H(L(ee.value)))]),_:1},8,[`style`,`class`]),[[jt,ne(e)]])]),_:2},1032,[`class`])],42,wL))),128)),e.showText||e.showScore?(N(),W(`span`,{key:0,class:F(Y(u).e(`text`)),style:m({color:e.textColor})},S(C.value),7)):G(`v-if`,!0)],46,CL))}})),EL={primary:`icon-primary`,success:`icon-success`,warning:`icon-warning`,error:`icon-error`,info:`icon-info`},DL={[EL.primary]:cy,[EL.success]:Yv,[EL.warning]:Ay,[EL.error]:Zv,[EL.info]:cy},OL=Pv(z({name:`ElResult`,__name:`result`,props:Q({title:{type:String,default:``},subTitle:{type:String,default:``},icon:{type:String,values:[`primary`,`success`,`warning`,`info`,`error`],default:`info`}}),setup(e){let t=e,n=$(`result`),r=K(()=>{let e=t.icon,n=e&&EL[e]?EL[e]:`icon-info`;return{class:n,component:DL[n]||DL[`icon-info`]}});return(t,i)=>(N(),W(`div`,{class:F(Y(n).b())},[B(`div`,{class:F(Y(n).e(`icon`))},[I(t.$slots,`icon`,{},()=>[r.value.component?(N(),H(L(r.value.component),{key:0,class:F(r.value.class)},null,8,[`class`])):G(`v-if`,!0)])],2),e.title||t.$slots.title?(N(),W(`div`,{key:0,class:F(Y(n).e(`title`))},[I(t.$slots,`title`,{},()=>[B(`p`,null,S(e.title),1)])],2)):G(`v-if`,!0),e.subTitle||t.$slots[`sub-title`]?(N(),W(`div`,{key:1,class:F(Y(n).e(`subtitle`))},[I(t.$slots,`sub-title`,{},()=>[B(`p`,null,S(e.subTitle),1)])],2)):G(`v-if`,!0),t.$slots.extra?(N(),W(`div`,{key:2,class:F(Y(n).e(`extra`))},[I(t.$slots,`extra`)],2)):G(`v-if`,!0)],2))}})),kL=Symbol(`ElSelectV2Injection`),AL=Q({allowCreate:Boolean,autocomplete:{type:Z(String),default:`none`},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:Ny,default:Qv},effect:{type:Z(String),default:`light`},collapseTags:Boolean,collapseTagsTooltip:Boolean,tagTooltip:{type:Z(Object),default:()=>({})},maxCollapseTags:{type:Number,default:1},defaultFirstOption:Boolean,disabled:{type:Boolean,default:void 0},estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:{type:Z(Function)},height:{type:Number,default:274},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,modelValue:{type:Z([Array,String,Number,Boolean,Object]),default:void 0},multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:{type:Z(Function)},reserveKeyword:{type:Boolean,default:!0},options:{type:Z(Array),required:!0},placeholder:{type:String},teleported:fS.teleported,persistent:{type:Boolean,default:!0},popperClass:fS.popperClass,popperStyle:fS.popperStyle,popperOptions:{type:Z(Object),default:()=>({})},remote:Boolean,debounce:{type:Number,default:300},size:xv,props:{type:Z(Object),default:()=>lE},valueKey:{type:String,default:`value`},scrollbarAlwaysOn:Boolean,validateEvent:{type:Boolean,default:!0},offset:{type:Number,default:12},remoteShowSuffix:Boolean,showArrow:{type:Boolean,default:!0},placement:{type:Z(String),values:fm,default:`bottom-start`},fallbackPlacements:{type:Z(Array),default:[`bottom-start`,`top-start`,`right`,`left`]},tagType:{...nE.type,default:`info`},tagEffect:{...nE.effect,default:`light`},tabindex:{type:[String,Number],default:0},appendTo:fS.appendTo,fitInputWidth:{type:[Boolean,Number],default:!0,validator(e){return jd(e)||Md(e)}},suffixIcon:{type:Ny,default:Bv},...kv,...Mv([`ariaLabel`])}),jL=Q({data:Array,disabled:Boolean,hovering:Boolean,item:{type:Z(Object),required:!0},index:Number,style:Object,selected:Boolean,created:Boolean}),ML={[br]:e=>!0,[xr]:e=>!0,"end-reached":US[`end-reached`],"remove-tag":e=>!0,"visible-change":e=>!0,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0},NL={hover:e=>Md(e),select:(e,t)=>!0},PL=z({props:{item:{type:Object,required:!0},style:{type:Object},height:Number},setup(){return{ns:$(`select`)}}});function FL(e,t,n,r,i,a){return N(),W(`div`,{class:F(e.ns.be(`group`,`title`)),style:m({...e.style,lineHeight:`${e.height}px`})},S(e.item.label),7)}var IL=$x(PL,[[`render`,FL]]);function LL(e,{emit:t}){return{hoverItem:()=>{e.disabled||t(`hover`,e.index)},selectOptionClick:()=>{e.disabled||t(`select`,e.item,e.index)}}}var RL=z({props:jL,emits:NL,setup(e,{emit:t}){let n=l(kL),r=$(`select`),i=uf?null:`mousemove`,{hoverItem:a,selectOptionClick:o}=LL(e,{emit:t}),{getLabel:s}=uE(n.props);return{ns:r,contentId:n.contentId,mouseMoveEventName:i,hoverItem:a,handleMousedown:e=>{let t=e.target,n=e.currentTarget;for(;t&&t!==n;){if(rp(t))return;t=t.parentElement}e.preventDefault()},selectOptionClick:o,getLabel:s}}}),zL=[`id`,`aria-selected`,`aria-disabled`];function BL(e,t,n,r,i,a){return N(),W(`li`,k({id:`${e.contentId}-${e.index}`,role:`option`,"aria-selected":e.selected,"aria-disabled":e.disabled||void 0,style:e.style,class:[e.ns.be(`dropdown`,`item`),e.ns.is(`selected`,e.selected),e.ns.is(`disabled`,e.disabled),e.ns.is(`created`,e.created),e.ns.is(`hovering`,e.hovering)]},{[ze(e.mouseMoveEventName)]:t[0]||=(...t)=>e.hoverItem&&e.hoverItem(...t)},{onMousedown:t[1]||=(...t)=>e.handleMousedown&&e.handleMousedown(...t),onClick:t[2]||=kn((...t)=>e.selectOptionClick&&e.selectOptionClick(...t),[`stop`])}),[I(e.$slots,`default`,{item:e.item,index:e.index,disabled:e.disabled},()=>[B(`span`,null,S(e.getLabel(e.item)),1)])],16,zL)}var VL=$x(RL,[[`render`,BL]]),HL=z({name:`ElSelectDropdown`,props:{loading:Boolean,data:{type:Array,required:!0},hoveringIndex:Number,width:Number,id:String,ariaLabel:String},emits:{"end-reached":US[`end-reached`]},setup(e,{slots:t,expose:n,emit:r}){let i=l(kL),a=$(`select`),{getLabel:o,getValue:s,getDisabled:c}=uE(i.props),u=q([]),d=q(),f=K(()=>e.data.length);M(()=>f.value,()=>{i.tooltipRef.value?.updatePopper?.()});let p=K(()=>Ad(i.props.estimatedOptionHeight)),m=K(()=>p.value?{itemSize:i.props.itemHeight}:{estimatedSize:i.props.estimatedOptionHeight,itemSize:e=>u.value[e]}),h=(e=[],t)=>{let{props:{valueKey:n}}=i;return E(t)?e&&e.some(e=>Me(ss(e,n))===ss(t,n)):e.includes(t)},g=(e,t)=>{if(E(t)){let{valueKey:n}=i.props;return ss(e,n)===ss(t,n)}else return e===t},_=(e,t)=>i.props.multiple?h(e,s(t)):g(e,s(t)),v=(e,t)=>{let{disabled:n,multiple:r,multipleLimit:a}=i.props;return n||!t&&(r?a>0&&e.length>=a:!1)},y=t=>e.hoveringIndex===t;n({listRef:d,isSized:p,isItemDisabled:v,isItemHovering:y,isItemSelected:_,scrollToItem:e=>{let t=d.value;t&&t.scrollToItem(e)},resetScrollTop:()=>{let e=d.value;e&&e.resetScrollTop()}});let b=e=>{let{index:n,data:r,style:a}=e,s=Y(p),{itemSize:l,estimatedSize:u}=Y(m),{modelValue:d}=i.props,{onSelect:f,onHover:h}=i,g=r[n];if(g.type===`Group`)return J(IL,{item:g,style:a,height:s?l:u},null);let b=_(d,g),x=v(d,b),S=y(n);return J(VL,k(e,{selected:b,disabled:c(g)||x,created:!!g.created,hovering:S,item:g,onSelect:f,onHover:h}),{default:e=>t.default?.(e)||J(`span`,null,[o(g)])})},{onKeyboardNavigate:x,onKeyboardSelect:S}=i,C=()=>{x(`forward`)},w=()=>{x(`backward`)},T=e=>{let t=Kp(e),{tab:n,esc:r,down:i,up:a,enter:o,numpadEnter:s}=X;switch([r,i,a,o,s].includes(t)&&(e.preventDefault(),e.stopPropagation()),t){case n:case r:break;case i:C();break;case a:w();break;case o:case s:S();break}},D=e=>{r(`end-reached`,e)};return()=>{let{data:n,width:r}=e,{height:o,multiple:s,scrollbarAlwaysOn:c}=i.props,l=uf?!0:c,u=Y(p)?gO:CO;return J(`div`,{class:[a.b(`dropdown`),a.is(`multiple`,s)],style:{width:`${r}px`}},[t.header?.(),t.loading?.()||t.empty?.()||J(u,k({ref:d},Y(m),{className:a.be(`dropdown`,`list`),scrollbarAlwaysOn:l,data:n,height:o,width:r,total:n.length,innerElement:`ul`,innerProps:{id:e.id,role:`listbox`,"aria-label":e.ariaLabel,"aria-orientation":`vertical`},onEndReached:D,onKeydown:T}),{default:e=>J(b,e,null)}),t.footer?.()])}}});function UL(e,t){let{aliasProps:n,getLabel:r,getValue:i}=uE(e),a=q(0),o=q(),s=K(()=>e.allowCreate&&e.filterable);M(()=>e.options,e=>{let n=new Set(e.map(e=>r(e)));t.createdOptions=t.createdOptions.filter(e=>!n.has(r(e)))});function c(n){let i=e=>r(e)===n;return e.options&&e.options.some(i)||t.createdOptions.some(i)}function l(t){s.value&&(e.multiple&&t.created?a.value++:o.value=t)}function u(i){if(s.value)if(i&&i.length>0){if(c(i)){t.createdOptions=t.createdOptions.filter(e=>r(e)!==t.previousQuery);return}let e={[n.value.value]:i,[n.value.label]:i,created:!0,[n.value.disabled]:!1};t.createdOptions.length>=a.value?t.createdOptions[a.value]=e:t.createdOptions.push(e)}else if(e.multiple)t.createdOptions.length=a.value;else{let e=o.value;t.createdOptions.length=0,e&&e.created&&t.createdOptions.push(e)}}function d(n){if(!s.value||!n||!n.created||n.created&&e.reserveKeyword&&t.inputValue===r(n))return;let o=t.createdOptions.findIndex(e=>i(e)===i(n));~o&&(t.createdOptions.splice(o,1),a.value--)}function f(){s.value&&(t.createdOptions.length=0,a.value=0)}return{createNewOption:u,removeNewOption:d,selectNewOption:l,clearAllNewOption:f}}var WL=(t,r)=>{let{t:i}=Dp(),a=le(),o=$(`select`),s=$(`input`),{form:c,formItem:l}=ub(),{inputId:u}=db(t,{formItemContext:l}),{aliasProps:f,getLabel:p,getValue:m,getDisabled:h,getOptions:g}=uE(t),{valueOnClear:_,isEmptyValue:v}=Av(t),y=ve({inputValue:``,cachedOptions:[],createdOptions:[],hoveringIndex:-1,inputHovering:!1,selectionWidth:0,collapseItemWidth:0,previousQuery:null,previousValue:void 0,selectedLabel:``,menuVisibleOnFocus:!1,isBeforeHide:!1}),b=q(-1),x=q(!1),S=q(),C=q(),w=q(),T=q(),D=q(),O=q(),k=q(),ee=q(),j=q(),N=q(),{isComposing:P,handleCompositionStart:te,handleCompositionEnd:ne,handleCompositionUpdate:re}=Tv({afterComposition:e=>ft(e)}),ie=lb(),{wrapperRef:ae,isFocused:F,handleBlur:I}=wv(D,{disabled:ie,afterFocus(){t.automaticDropdown&&!ce.value&&(ce.value=!0,y.menuVisibleOnFocus=!0)},beforeBlur(e){return w.value?.isFocusInsideContent(e)||T.value?.isFocusInsideContent(e)},afterBlur(){ce.value=!1,y.menuVisibleOnFocus=!1,t.validateEvent&&l?.validate?.(`blur`).catch(ge)}}),oe=K(()=>be(``)),L=K(()=>t.loading?!1:t.options.length>0||y.createdOptions.length>0),se=q([]),ce=q(!1),ue=K(()=>c?.statusIcon??!1),de=K(()=>{let e=se.value.length*t.itemHeight;return e>t.height?t.height:e}),fe=K(()=>t.multiple?A(t.modelValue)&&t.modelValue.length>0:!v(t.modelValue)),pe=K(()=>t.clearable&&!ie.value&&fe.value&&(F.value||y.inputHovering)),me=K(()=>t.remote&&t.filterable&&!t.remoteShowSuffix?``:t.suffixIcon),R=K(()=>me.value&&o.is(`reverse`,ce.value)),he=K(()=>l?.validateState||``),z=K(()=>{if(he.value)return Ly[he.value]}),_e=K(()=>t.remote?t.debounce:0),B=K(()=>t.remote&&!y.inputValue&&!L.value),ye=K(()=>t.loading?t.loadingText||i(`el.select.loading`):t.filterable&&y.inputValue&&L.value&&se.value.length===0?t.noMatchText||i(`el.select.noMatch`):L.value?null:t.noDataText||i(`el.select.noData`)),V=K(()=>t.filterable&&n(t.filterMethod)),H=K(()=>t.filterable&&t.remote&&n(t.remoteMethod)),be=e=>{let n=new RegExp(dp(e),`i`),r=t=>V.value||H.value?!0:e?n.test(p(t)||``):!0;return t.loading?[]:[...y.createdOptions,...t.options].reduce((e,n)=>{let i=g(n);if(A(i)){let t=i.filter(r);t.length>0&&e.push({label:p(n),type:`Group`},...t)}else (t.remote||r(n))&&e.push(n);return e},[])},xe=()=>{se.value=be(y.inputValue)},Se=K(()=>{let e=new Map;return oe.value.forEach((t,n)=>{e.set(Ye(m(t)),{option:t,index:n})}),e}),Ce=K(()=>{let e=new Map;return se.value.forEach((t,n)=>{e.set(Ye(m(t)),{option:t,index:n})}),e}),we=K(()=>se.value.every(e=>h(e))),Te=cb(),Ee=K(()=>Te.value===`small`?`small`:`default`),De=()=>{if(Md(t.fitInputWidth)){b.value=t.fitInputWidth;return}let e=S.value?.offsetWidth||200;!t.fitInputWidth&&L.value?U(()=>{b.value=Math.max(e,Oe())}):b.value=e},Oe=()=>{let e=document.createElement(`canvas`).getContext(`2d`),t=o.be(`dropdown`,`item`),n=(ee.value?.listRef?.innerRef||document).querySelector(`.${t}`);if(n===null||e===null)return 0;let r=getComputedStyle(n),i=Number.parseFloat(r.paddingLeft)+Number.parseFloat(r.paddingRight);return e.font=`bold ${r.font.replace(RegExp(`\\b${r.fontWeight}\\b`),``)}`,se.value.reduce((t,n)=>{let r=e.measureText(p(n));return Math.max(r.width,t)},0)+i},ke=()=>{if(!C.value)return 0;let e=window.getComputedStyle(C.value);return Number.parseFloat(e.gap||`6px`)},Ae=K(()=>{let e=ke(),n=t.filterable?e+11:0;return{maxWidth:`${N.value&&t.maxCollapseTags===1?y.selectionWidth-y.collapseItemWidth-e-n:y.selectionWidth-n}px`}}),je=K(()=>({maxWidth:`${y.selectionWidth}px`})),W=K(()=>A(t.modelValue)?t.modelValue.length===0&&!y.inputValue:t.filterable?!y.inputValue:!0),Me=K(()=>{let e=t.placeholder??i(`el.select.placeholder`);return t.multiple||!fe.value?e:y.selectedLabel}),Ne=K(()=>w.value?.popperRef?.contentRef),Pe=K(()=>{if(t.multiple){let e=t.modelValue.length;if(e>0&&Ce.value.has(t.modelValue[e-1])){let{index:n}=Ce.value.get(t.modelValue[e-1]);return n}}else if(!v(t.modelValue)&&Ce.value.has(t.modelValue)){let{index:e}=Ce.value.get(t.modelValue);return e}return-1}),Fe=K({get(){return ce.value&&(t.loading||!B.value||t.remote&&!!a.empty)&&(!x.value||!Nd(y.previousQuery)||L.value)},set(e){ce.value=e}}),Ie=K(()=>t.multiple?t.collapseTags?y.cachedOptions.slice(0,t.maxCollapseTags):y.cachedOptions:[]),G=K(()=>t.multiple&&t.collapseTags?y.cachedOptions.slice(t.maxCollapseTags):[]),{createNewOption:Le,removeNewOption:Re,selectNewOption:ze,clearAllNewOption:Be}=UL(t,y),Ve=e=>{ie.value||t.filterable&&ce.value&&e&&!k.value?.contains(e.target)||(y.menuVisibleOnFocus?y.menuVisibleOnFocus=!1:ce.value=!ce.value)},He=()=>{y.inputValue.length>0&&!ce.value&&(ce.value=!0),Le(y.inputValue),U(()=>{We(y.inputValue)})},Ue=bf(()=>{He(),x.value=!1},_e),We=e=>{y.previousQuery===e||P.value||(y.previousQuery=e,t.filterable&&n(t.filterMethod)?t.filterMethod(e):t.filterable&&t.remote&&n(t.remoteMethod)&&t.remoteMethod(e),t.defaultFirstOption&&(t.filterable||t.remote)&&se.value.length?U(Ge):U(dt))},Ge=()=>{let e=se.value.filter(e=>!e.disabled&&e.type!==`Group`),t=e.find(e=>e.created),n=e[0];y.hoveringIndex=Je(se.value,t||n)},Ke=e=>{sd(t.modelValue,e)||r(xr,e)},qe=e=>{r(br,e),Ke(e),y.previousValue=t.multiple?String(e):e,U(()=>{if(t.multiple&&A(t.modelValue)){let e=y.cachedOptions.slice(),n=t.modelValue.map(t=>gt(t,e));sd(y.cachedOptions,n)||(y.cachedOptions=n)}else vt(!0)})},Je=(e=[],n)=>{if(!E(n))return e.indexOf(n);let r=t.valueKey,i=-1;return e.some((e,t)=>ss(e,r)===ss(n,r)?(i=t,!0):!1),i},Ye=e=>E(e)?ss(e,t.valueKey):e,Xe=()=>{De()},Ze=e=>{r(`end-reached`,e)},J=()=>{y.selectionWidth=Number.parseFloat(window.getComputedStyle(C.value).width)},Y=()=>{y.collapseItemWidth=N.value.getBoundingClientRect().width},Qe=()=>{w.value?.updatePopper?.()},$e=()=>{T.value?.updatePopper?.()},et=e=>{let n=m(e);if(t.multiple){let r=t.modelValue.slice(),i=Je(r,n);i>-1?(r=[...r.slice(0,i),...r.slice(i+1)],y.cachedOptions.splice(i,1),Re(e)):(t.multipleLimit<=0||r.length{let i=t.modelValue.slice(),a=Je(i,m(n));a>-1&&!ie.value&&(i=[...t.modelValue.slice(0,a),...t.modelValue.slice(a+1)],y.cachedOptions.splice(a,1),qe(i),r(`remove-tag`,m(n)),Re(n)),e.stopPropagation(),nt()},nt=()=>{D.value?.focus()},rt=()=>{if(ce.value){ce.value=!1,U(()=>D.value?.blur());return}D.value?.blur()},it=()=>{y.inputValue.length>0?y.inputValue=``:ce.value=!1},at=e=>$u(e,e=>!y.cachedOptions.some(t=>m(t)===e&&h(t))),ot=e=>{let n=Kp(e);if(t.multiple&&n!==X.delete&&y.inputValue.length===0){e.preventDefault();let n=t.modelValue.slice(),i=at(n);if(i<0)return;let a=n[i];n.splice(i,1);let o=y.cachedOptions[i];y.cachedOptions.splice(i,1),Re(o),qe(n),r(`remove-tag`,a)}},st=()=>{let e;e=A(t.modelValue)?[]:_.value,y.selectedLabel=``,ce.value=!1,qe(e),r(`clear`),Be(),nt()},ct=(e,t=void 0)=>{let n=se.value;if(![`forward`,`backward`].includes(e)||ie.value||n.length<=0||we.value||P.value)return;if(!ce.value)return Ve();Ad(t)&&(t=y.hoveringIndex);let r=-1;e===`forward`?(r=t+1,r>=n.length&&(r=0)):e===`backward`&&(r=t-1,(r<0||r>=n.length)&&(r=n.length-1));let i=n[r];if(h(i)||i.type===`Group`)return ct(e,r);y.hoveringIndex=r,ht(r)},lt=()=>{if(ce.value)~y.hoveringIndex&&se.value[y.hoveringIndex]&&et(se.value[y.hoveringIndex]);else return Ve()},ut=e=>{y.hoveringIndex=e??-1},dt=()=>{if(!t.multiple)y.hoveringIndex=se.value.findIndex(e=>Ye(m(e))===Ye(t.modelValue));else{let e=t.modelValue.length;if(e>0){let n=t.modelValue[e-1];y.hoveringIndex=se.value.findIndex(e=>Ye(n)===Ye(m(e)))}else y.hoveringIndex=-1}},ft=e=>{if(y.inputValue=e.target.value,t.remote)x.value=!0,Ue();else return He()},pt=e=>{ce.value=!1,F.value&&I(new FocusEvent(`blur`,e))},mt=()=>(y.isBeforeHide=!1,U(()=>{~Pe.value&&ht(Pe.value)})),ht=e=>{ee.value.scrollToItem(e)},gt=(e,t)=>{let n=Ye(e);if(Se.value.has(n)){let{option:e}=Se.value.get(n);return e}if(t&&t.length){let e=t.find(e=>Ye(m(e))===n);if(e)return e}return{[f.value.value]:e,[f.value.label]:e}},_t=e=>Se.value.get(m(e))?.index??-1,vt=(e=!1)=>{if(t.multiple)if(t.modelValue.length>0){let e=y.cachedOptions.slice();y.cachedOptions.length=0,y.previousValue=t.modelValue.toString();for(let n of t.modelValue){let t=gt(n,e);y.cachedOptions.push(t)}}else y.cachedOptions=[],y.previousValue=void 0;else if(fe.value){y.previousValue=t.modelValue;let n=se.value,r=n.findIndex(e=>Ye(m(e))===Ye(t.modelValue));~r?y.selectedLabel=p(n[r]):(!y.selectedLabel||e)&&(y.selectedLabel=Ye(t.modelValue))}else y.selectedLabel=``,y.previousValue=void 0;Be(),De()};M(()=>t.fitInputWidth,()=>{De()}),M(ce,e=>{e?(t.persistent||De(),We(``)):(y.inputValue=``,y.previousQuery=null,y.isBeforeHide=!0,y.menuVisibleOnFocus=!1,Le(``))}),M(()=>t.modelValue,(e,n)=>{(!e||A(e)&&e.length===0||t.multiple&&!sd(e.toString(),y.previousValue)||!t.multiple&&Ye(e)!==Ye(y.previousValue))&&vt(!0),!sd(e,n)&&t.validateEvent&&l?.validate?.(`change`).catch(ge)},{deep:!0}),M(()=>t.options,()=>{let e=D.value;(!e||e&&document.activeElement!==e)&&vt()},{deep:!0,flush:`post`}),M(()=>se.value,()=>(De(),ee.value&&U(ee.value.resetScrollTop))),e(()=>{y.isBeforeHide||xe()}),e(()=>{let{valueKey:e,options:n}=t,r=new Map;for(let t of n){let n=m(t),i=n;if(E(i)&&(i=ss(n,e)),r.get(i)){Jd(`ElSelectV2`,`The option values you provided seem to be duplicated, which may cause some problems, please check.`);break}else r.set(i,!0)}}),d(()=>{vt()}),Uf(S,Xe),Uf(C,J),Uf(ae,Qe),Uf(j,$e),Uf(N,Y);let yt;return M(()=>Fe.value,e=>{e?yt=Uf(ee,Qe).stop:(yt?.(),yt=void 0),r(`visible-change`,e)}),{inputId:u,collapseTagSize:Ee,currentPlaceholder:Me,expanded:ce,emptyText:ye,popupHeight:de,debounce:_e,allOptions:oe,allOptionsValueMap:Se,filteredOptions:se,iconComponent:me,iconReverse:R,tagStyle:Ae,collapseTagStyle:je,popperSize:b,dropdownMenuVisible:Fe,hasModelValue:fe,shouldShowPlaceholder:W,selectDisabled:ie,selectSize:Te,needStatusIcon:ue,showClearBtn:pe,states:y,isFocused:F,nsSelect:o,nsInput:s,inputRef:D,menuRef:ee,tagMenuRef:j,tooltipRef:w,tagTooltipRef:T,selectRef:S,wrapperRef:ae,selectionRef:C,prefixRef:O,suffixRef:k,collapseItemRef:N,popperRef:Ne,validateState:he,validateIcon:z,showTagList:Ie,collapseTagList:G,debouncedOnInputChange:Ue,deleteTag:tt,getLabel:p,getValue:m,getDisabled:h,getValueKey:Ye,getIndex:_t,handleClear:st,handleClickOutside:pt,handleDel:ot,handleEsc:it,focus:nt,blur:rt,handleMenuEnter:mt,handleResize:Xe,resetSelectionWidth:J,updateTooltip:Qe,updateTagTooltip:$e,updateOptions:xe,toggleMenu:Ve,scrollTo:ht,onInput:ft,onKeyboardNavigate:ct,onKeyboardSelect:lt,onEndReached:Ze,onSelect:et,onHover:ut,handleCompositionStart:te,handleCompositionEnd:ne,handleCompositionUpdate:re}},GL=z({name:`ElSelectV2`,components:{ElSelectMenu:HL,ElTag:oE,ElTooltip:ES,ElIcon:By},directives:{ClickOutside:eT},props:AL,emits:ML,setup(e,{emit:t}){let n=K(()=>{let{modelValue:t,multiple:n}=e,r=n?[]:void 0;return A(t)?n?t:r:n?r:t}),r=WL(ve({...Se(e),modelValue:n}),t),{calculatorRef:i,inputStyle:a}=Xf(),o=rg();Qe(kL,{props:ve({...Se(e),height:r.popupHeight,modelValue:n}),expanded:r.expanded,tooltipRef:r.tooltipRef,contentId:o,onSelect:r.onSelect,onHover:r.onHover,onKeyboardNavigate:r.onKeyboardNavigate,onKeyboardSelect:r.onKeyboardSelect});let s=K(()=>e.multiple?r.states.cachedOptions.map(e=>r.getLabel(e)):r.states.selectedLabel);return{...r,modelValue:n,selectedLabel:s,calculatorRef:i,inputStyle:a,contentId:o,BORDER_HORIZONTAL_WIDTH:2}}}),KL=[`id`,`value`,`autocomplete`,`tabindex`,`aria-expanded`,`aria-label`,`disabled`,`aria-controls`,`aria-activedescendant`,`readonly`,`name`],qL=[`textContent`],JL={key:1};function YL(e,t,n,i,o,s){let c=h(`el-tag`),l=h(`el-tooltip`),u=h(`el-icon`),d=h(`el-select-menu`),f=ae(`click-outside`);return Ge((N(),W(`div`,{ref:`selectRef`,class:F([e.nsSelect.b(),e.nsSelect.m(e.selectSize)]),onMouseenter:t[15]||=t=>e.states.inputHovering=!0,onMouseleave:t[16]||=t=>e.states.inputHovering=!1},[J(l,{ref:`tooltipRef`,visible:e.dropdownMenuVisible,teleported:e.teleported,"popper-class":[e.nsSelect.e(`popper`),e.popperClass],"popper-style":e.popperStyle,"gpu-acceleration":!1,"stop-popper-mouse-event":!1,"popper-options":e.popperOptions,"fallback-placements":e.fallbackPlacements,effect:e.effect,placement:e.placement,pure:``,transition:`${e.nsSelect.namespace.value}-zoom-in-top`,trigger:`click`,persistent:e.persistent,"append-to":e.appendTo,"show-arrow":e.showArrow,offset:e.offset,onBeforeShow:e.handleMenuEnter,onHide:t[14]||=t=>e.states.isBeforeHide=!1},{default:V(()=>[B(`div`,{ref:`wrapperRef`,class:F([e.nsSelect.e(`wrapper`),e.nsSelect.is(`focused`,e.isFocused),e.nsSelect.is(`hovering`,e.states.inputHovering),e.nsSelect.is(`filterable`,e.filterable),e.nsSelect.is(`disabled`,e.selectDisabled)]),onClick:t[11]||=kn((...t)=>e.toggleMenu&&e.toggleMenu(...t),[`prevent`])},[e.$slots.prefix?(N(),W(`div`,{key:0,ref:`prefixRef`,class:F(e.nsSelect.e(`prefix`))},[I(e.$slots,`prefix`)],2)):G(`v-if`,!0),B(`div`,{ref:`selectionRef`,class:F([e.nsSelect.e(`selection`),e.nsSelect.is(`near`,e.multiple&&!e.$slots.prefix&&!!e.modelValue.length)])},[e.multiple?I(e.$slots,`tag`,{key:0,data:e.states.cachedOptions,deleteTag:e.deleteTag,selectDisabled:e.selectDisabled},()=>[(N(!0),W(R,null,r(e.showTagList,t=>(N(),W(`div`,{key:e.getValueKey(e.getValue(t)),class:F(e.nsSelect.e(`selected-item`))},[J(c,{closable:!e.selectDisabled&&!e.getDisabled(t),size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":``,style:m(e.tagStyle),onClose:n=>e.deleteTag(n,t)},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},[I(e.$slots,`label`,{index:e.getIndex(t),label:e.getLabel(t),value:e.getValue(t)},()=>[Ke(S(e.getLabel(t)),1)])],2)]),_:2},1032,[`closable`,`size`,`type`,`effect`,`style`,`onClose`])],2))),128)),e.collapseTags&&e.states.cachedOptions.length>e.maxCollapseTags?(N(),H(l,{key:0,ref:`tagTooltipRef`,disabled:e.dropdownMenuVisible||!e.collapseTagsTooltip,"fallback-placements":e.tagTooltip?.fallbackPlacements??[`bottom`,`top`,`right`,`left`],effect:e.tagTooltip?.effect??e.effect,placement:e.tagTooltip?.placement??`bottom`,"popper-class":e.tagTooltip?.popperClass??e.popperClass,"popper-style":e.tagTooltip?.popperStyle??e.popperStyle,teleported:e.tagTooltip?.teleported??e.teleported,"append-to":e.tagTooltip?.appendTo??e.appendTo,"popper-options":e.tagTooltip?.popperOptions??e.popperOptions,transition:e.tagTooltip?.transition,"show-after":e.tagTooltip?.showAfter,"hide-after":e.tagTooltip?.hideAfter,"auto-close":e.tagTooltip?.autoClose,offset:e.tagTooltip?.offset},{default:V(()=>[B(`div`,{ref:`collapseItemRef`,class:F(e.nsSelect.e(`selected-item`))},[J(c,{closable:!1,size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,style:m(e.collapseTagStyle),"disable-transitions":``},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},` + `+S(e.states.cachedOptions.length-e.maxCollapseTags),3)]),_:1},8,[`size`,`type`,`effect`,`style`])],2)]),content:V(()=>[B(`div`,{ref:`tagMenuRef`,class:F(e.nsSelect.e(`selection`))},[(N(!0),W(R,null,r(e.collapseTagList,t=>(N(),W(`div`,{key:e.getValueKey(e.getValue(t)),class:F(e.nsSelect.e(`selected-item`))},[J(c,{class:`in-tooltip`,closable:!e.selectDisabled&&!e.getDisabled(t),size:e.collapseTagSize,type:e.tagType,effect:e.tagEffect,"disable-transitions":``,onClose:n=>e.deleteTag(n,t)},{default:V(()=>[B(`span`,{class:F(e.nsSelect.e(`tags-text`))},[I(e.$slots,`label`,{index:e.getIndex(t),label:e.getLabel(t),value:e.getValue(t)},()=>[Ke(S(e.getLabel(t)),1)])],2)]),_:2},1032,[`closable`,`size`,`type`,`effect`,`onClose`])],2))),128))],2)]),_:3},8,[`disabled`,`fallback-placements`,`effect`,`placement`,`popper-class`,`popper-style`,`teleported`,`append-to`,`popper-options`,`transition`,`show-after`,`hide-after`,`auto-close`,`offset`])):G(`v-if`,!0)]):G(`v-if`,!0),B(`div`,{class:F([e.nsSelect.e(`selected-item`),e.nsSelect.e(`input-wrapper`),e.nsSelect.is(`hidden`,!e.filterable||e.selectDisabled||e.multiple&&!e.states.inputValue&&!e.isFocused)])},[B(`input`,{id:e.inputId,ref:`inputRef`,value:e.states.inputValue,style:m(e.inputStyle),autocomplete:e.autocomplete,tabindex:e.tabindex,"aria-autocomplete":`none`,"aria-haspopup":`listbox`,autocapitalize:`off`,"aria-expanded":e.expanded,"aria-label":e.ariaLabel,class:F([e.nsSelect.e(`input`),e.nsSelect.is(e.selectSize)]),disabled:e.selectDisabled,role:`combobox`,"aria-controls":e.contentId,"aria-activedescendant":e.states.hoveringIndex>=0?`${e.contentId}-${e.states.hoveringIndex}`:``,readonly:!e.filterable,spellcheck:`false`,type:`text`,name:e.name,onInput:t[0]||=(...t)=>e.onInput&&e.onInput(...t),onChange:t[1]||=kn(()=>{},[`stop`]),onCompositionstart:t[2]||=(...t)=>e.handleCompositionStart&&e.handleCompositionStart(...t),onCompositionupdate:t[3]||=(...t)=>e.handleCompositionUpdate&&e.handleCompositionUpdate(...t),onCompositionend:t[4]||=(...t)=>e.handleCompositionEnd&&e.handleCompositionEnd(...t),onKeydown:[t[5]||=jn(kn(t=>e.onKeyboardNavigate(`backward`),[`stop`,`prevent`]),[`up`]),t[6]||=jn(kn(t=>e.onKeyboardNavigate(`forward`),[`stop`,`prevent`]),[`down`]),t[7]||=jn(kn((...t)=>e.onKeyboardSelect&&e.onKeyboardSelect(...t),[`stop`,`prevent`]),[`enter`]),t[8]||=jn(kn((...t)=>e.handleEsc&&e.handleEsc(...t),[`stop`,`prevent`]),[`esc`]),t[9]||=jn(kn((...t)=>e.handleDel&&e.handleDel(...t),[`stop`]),[`delete`])],onClick:t[10]||=kn((...t)=>e.toggleMenu&&e.toggleMenu(...t),[`stop`])},null,46,KL),e.filterable?(N(),W(`span`,{key:0,ref:`calculatorRef`,"aria-hidden":`true`,class:F(e.nsSelect.e(`input-calculator`)),textContent:S(e.states.inputValue)},null,10,qL)):G(`v-if`,!0)],2),e.shouldShowPlaceholder?(N(),W(`div`,{key:1,class:F([e.nsSelect.e(`selected-item`),e.nsSelect.e(`placeholder`),e.nsSelect.is(`transparent`,!e.hasModelValue||e.expanded&&!e.states.inputValue)])},[e.hasModelValue?I(e.$slots,`label`,{key:0,index:e.allOptionsValueMap.get(e.modelValue)?.index??-1,label:e.currentPlaceholder,value:e.modelValue},()=>[B(`span`,null,S(e.currentPlaceholder),1)]):(N(),W(`span`,JL,S(e.currentPlaceholder),1))],2)):G(`v-if`,!0)],2),B(`div`,{ref:`suffixRef`,class:F(e.nsSelect.e(`suffix`))},[e.iconComponent?Ge((N(),H(u,{key:0,class:F([e.nsSelect.e(`caret`),e.nsInput.e(`icon`),e.iconReverse])},{default:V(()=>[(N(),H(L(e.iconComponent)))]),_:1},8,[`class`])),[[jt,!e.showClearBtn]]):G(`v-if`,!0),e.showClearBtn&&e.clearIcon?(N(),H(u,{key:1,class:F([e.nsSelect.e(`caret`),e.nsInput.e(`icon`),e.nsSelect.e(`clear`)]),onClick:kn(e.handleClear,[`prevent`,`stop`])},{default:V(()=>[(N(),H(L(e.clearIcon)))]),_:1},8,[`class`,`onClick`])):G(`v-if`,!0),e.validateState&&e.validateIcon&&e.needStatusIcon?(N(),H(u,{key:2,class:F([e.nsInput.e(`icon`),e.nsInput.e(`validateIcon`),e.nsInput.is(`loading`,e.validateState===`validating`)])},{default:V(()=>[(N(),H(L(e.validateIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)],2)]),content:V(()=>[J(d,{id:e.contentId,ref:`menuRef`,data:e.filteredOptions,width:e.popperSize-e.BORDER_HORIZONTAL_WIDTH,"hovering-index":e.states.hoveringIndex,"scrollbar-always-on":e.scrollbarAlwaysOn,"aria-label":e.ariaLabel,onEndReached:e.onEndReached},xe({default:V(t=>[I(e.$slots,`default`,se(a(t)))]),_:2},[e.$slots.header?{name:`header`,fn:V(()=>[B(`div`,{class:F(e.nsSelect.be(`dropdown`,`header`)),onClick:t[12]||=kn(()=>{},[`stop`])},[I(e.$slots,`header`)],2)]),key:`0`}:void 0,e.$slots.loading&&e.loading?{name:`loading`,fn:V(()=>[B(`div`,{class:F(e.nsSelect.be(`dropdown`,`loading`))},[I(e.$slots,`loading`)],2)]),key:`1`}:e.loading||e.filteredOptions.length===0?{name:`empty`,fn:V(()=>[B(`div`,{class:F(e.nsSelect.be(`dropdown`,`empty`))},[I(e.$slots,`empty`,{},()=>[B(`span`,null,S(e.emptyText),1)])],2)]),key:`2`}:void 0,e.$slots.footer?{name:`footer`,fn:V(()=>[B(`div`,{class:F(e.nsSelect.be(`dropdown`,`footer`)),onClick:t[13]||=kn(()=>{},[`stop`])},[I(e.$slots,`footer`)],2)]),key:`3`}:void 0]),1032,[`id`,`data`,`width`,`hovering-index`,`scrollbar-always-on`,`aria-label`,`onEndReached`])]),_:3},8,[`visible`,`teleported`,`popper-class`,`popper-style`,`popper-options`,`fallback-placements`,`effect`,`placement`,`transition`,`persistent`,`append-to`,`show-arrow`,`offset`,`onBeforeShow`])],34)),[[f,e.handleClickOutside,e.popperRef]])}var XL=Pv($x(GL,[[`render`,YL]])),ZL=Q({animated:Boolean,count:{type:Number,default:1},rows:{type:Number,default:3},loading:{type:Boolean,default:!0},throttle:{type:Z([Number,Object])}}),QL=z({name:`ElSkeletonItem`,__name:`skeleton-item`,props:Q({variant:{type:String,values:[`circle`,`rect`,`h1`,`h3`,`text`,`caption`,`p`,`image`,`button`],default:`text`}}),setup(e){let t=$(`skeleton`);return(n,r)=>(N(),W(`div`,{class:F([Y(t).e(`item`),Y(t).e(e.variant)])},[e.variant===`image`?(N(),H(Y(gy),{key:0})):G(`v-if`,!0)],2))}}),$L=Pv(z({name:`ElSkeleton`,__name:`skeleton`,props:ZL,setup(e,{expose:t}){let n=e,i=$(`skeleton`),a=Qh(we(n,`loading`),n.throttle);return t({uiLoading:a}),(t,n)=>Y(a)?(N(),W(`div`,k({key:0,class:[Y(i).b(),Y(i).is(`animated`,e.animated)]},t.$attrs),[(N(!0),W(R,null,r(e.count,n=>(N(),W(R,{key:n},[Y(a)?I(t.$slots,`template`,{key:n},()=>[J(QL,{class:F(Y(i).is(`first`)),variant:`p`},null,8,[`class`]),(N(!0),W(R,null,r(e.rows,t=>(N(),H(QL,{key:t,class:F([Y(i).e(`paragraph`),Y(i).is(`last`,t===e.rows&&e.rows>1)]),variant:`p`},null,8,[`class`]))),128))]):G(`v-if`,!0)],64))),128))],16)):I(t.$slots,`default`,se(k({key:1},t.$attrs)))}}),{SkeletonItem:QL}),eR=Lv(QL),tR=Symbol(`sliderContextKey`),nR=Q({modelValue:{type:Z([Number,Array]),default:0},id:{type:String,default:void 0},min:{type:Number,default:0},max:{type:Number,default:100},step:{type:Z([Number,String]),default:1},showInput:Boolean,showInputControls:{type:Boolean,default:!0},size:xv,inputSize:xv,showStops:Boolean,showTooltip:{type:Boolean,default:!0},formatTooltip:{type:Z(Function),default:void 0},disabled:{type:Boolean,default:void 0},range:Boolean,vertical:Boolean,height:String,rangeStartLabel:{type:String,default:void 0},rangeEndLabel:{type:String,default:void 0},formatValueText:{type:Z(Function),default:void 0},tooltipClass:{type:String,default:void 0},placement:{type:String,values:fm,default:`top`},marks:{type:Z(Object)},validateEvent:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},...Mv([`ariaLabel`])}),rR=e=>Md(e)||A(e)&&e.every(Md),iR={[br]:rR,[Sr]:rR,[xr]:rR},aR=(e,t,n)=>{let r=q();return d(async()=>{e.range?(A(e.modelValue)?(t.firstValue=Math.max(e.min,e.modelValue[0]),t.secondValue=Math.min(e.max,e.modelValue[1])):(t.firstValue=e.min,t.secondValue=e.max),t.oldValue=[t.firstValue,t.secondValue]):(!Md(e.modelValue)||Number.isNaN(e.modelValue)?t.firstValue=e.min:t.firstValue=Math.min(e.max,Math.max(e.min,e.modelValue)),t.oldValue=t.firstValue),kf(window,`resize`,n),await U(),n()}),{sliderWrapper:r}},oR=t=>{let n=K(()=>t.marks?Object.keys(t.marks).map(Number.parseFloat).sort((e,t)=>e-t).filter(e=>e<=t.max&&e>=t.min).map(e=>({point:e,position:(e-t.min)*100/(t.max-t.min),mark:t.marks[e]})):[]);return e(()=>{if(t.step===`mark`&&!t.marks&&Jd(`ElSlider`,`marks prop must be provided when step is mark`),t.marks){let e=Object.keys(t.marks),r=n.value.map(e=>e.point),i=e.filter(e=>{let t=Number.parseFloat(e);return Number.isNaN(t)||!r.includes(t)});i.length>0&&Jd(`ElSlider`,`Some marks keys are invalid (not a number or out of [min, max]): [${i.map(e=>`'${e}'`).join(`, `)}] and will be ignored.`)}}),n},sR=(e,t,n)=>{let{formItem:r}=ub(),i=Le(),a=q(),o=q(),s={firstButton:a,secondButton:o},c=lb(),l=K(()=>Math.min(t.firstValue,t.secondValue)),u=K(()=>Math.max(t.firstValue,t.secondValue)),d=K(()=>e.range?`${100*(u.value-l.value)/(e.max-e.min)}%`:`${100*(t.firstValue-e.min)/(e.max-e.min)}%`),f=K(()=>e.range?`${100*(l.value-e.min)/(e.max-e.min)}%`:`0%`),p=K(()=>e.vertical?{height:e.height}:{}),m=K(()=>e.vertical?{height:d.value,bottom:f.value}:{width:d.value,left:f.value}),h=()=>{i.value&&(t.sliderSize=i.value.getBoundingClientRect()[e.vertical?`height`:`width`])},g=n=>{let r=e.min+n*(e.max-e.min)/100;if(!e.range)return a;let i;return i=Math.abs(l.value-r)t.secondValue?`firstButton`:`secondButton`,s[i]},_=e=>{let t=g(e);return t.value.setPosition(e),t},v=n=>{t.firstValue=n??e.min,b(e.range?[l.value,u.value]:n??e.min)},y=n=>{t.secondValue=n,e.range&&b([l.value,u.value])},b=e=>{n(br,e),n(Sr,e)},x=async()=>{await U(),n(xr,e.range?[l.value,u.value]:e.modelValue)},S=n=>{if(c.value||t.dragging)return;h();let r=0;if(e.vertical){let e=n.touches?.item(0)?.clientY??n.clientY;r=(i.value.getBoundingClientRect().bottom-e)/t.sliderSize*100}else r=((n.touches?.item(0)?.clientX??n.clientX)-i.value.getBoundingClientRect().left)/t.sliderSize*100;if(!(r<0||r>100))return _(r)};return{elFormItem:r,slider:i,firstButton:a,secondButton:o,sliderDisabled:c,minValue:l,maxValue:u,runwayStyle:p,barStyle:m,resetSize:h,setPosition:_,emitChange:x,onSliderWrapperPrevent:e=>{(s.firstButton.value?.dragging||s.secondButton.value?.dragging)&&e.preventDefault()},onSliderClick:e=>{S(e)&&x()},onSliderDown:async e=>{let t=S(e);t&&(await U(),t.value.onButtonDown(e))},onSliderMarkerDown:e=>{c.value||t.dragging||_(e)&&x()},setFirstValue:v,setSecondValue:y}},cR=(e,t,n,r)=>({stops:K(()=>{if(!e.showStops||e.min>e.max)return[];if(e.step===`mark`||e.step===0)return e.step===0&&Jd(`ElSlider`,`step should not be 0.`),[];let i=Math.ceil((e.max-e.min)/e.step),a=100*e.step/(e.max-e.min),o=Array.from({length:i-1}).map((e,t)=>(t+1)*a);return e.range?o.filter(t=>t<100*(n.value-e.min)/(e.max-e.min)||t>100*(r.value-e.min)/(e.max-e.min)):o.filter(n=>n>100*(t.firstValue-e.min)/(e.max-e.min))}),getStopStyle:t=>e.vertical?{bottom:`${t}%`}:{left:`${t}%`}}),lR=(e,t,n,r,i,a)=>{let o=e=>{i(br,e),i(Sr,e)},s=()=>e.range?![n.value,r.value].every((e,n)=>e===t.oldValue[n]):e.modelValue!==t.oldValue,c=()=>{e.min>e.max&&qd(`Slider`,`min should not be greater than max.`);let n=e.modelValue;e.range&&A(n)?n[1]e.max?o([e.max,e.max]):n[0]e.max?o([n[0],e.max]):(t.firstValue=n[0],t.secondValue=n[1],s()&&(e.validateEvent&&a?.validate?.(`change`).catch(ge),t.oldValue=n.slice())):!e.range&&Md(n)&&!Number.isNaN(n)&&(ne.max?o(e.max):(t.firstValue=n,s()&&(e.validateEvent&&a?.validate?.(`change`).catch(ge),t.oldValue=n)))};c(),M(()=>t.dragging,e=>{e||c()}),M(()=>e.modelValue,(e,n)=>{t.dragging||A(e)&&A(n)&&e.every((e,t)=>e===n[t])&&t.firstValue===e[0]&&t.secondValue===e[1]||c()},{deep:!0}),M(()=>[e.min,e.max],()=>{c()})},uR=(e,t,n)=>{let r=q(),i=q(!1),a=K(()=>t.value instanceof Function);return{tooltip:r,tooltipVisible:i,formatValue:K(()=>a.value&&t.value(e.modelValue)||e.modelValue),displayTooltip:Hu(()=>{n.value&&(i.value=!0)},50),hideTooltip:Hu(()=>{n.value&&(i.value=!1)},50)}},dR=(e,t,n)=>{let{disabled:r,min:i,max:a,step:o,showTooltip:s,persistent:c,precision:u,sliderSize:d,formatTooltip:f,emitChange:p,resetSize:m,updateDragging:h,markList:g}=l(tR),{tooltip:_,tooltipVisible:v,formatValue:y,displayTooltip:b,hideTooltip:x}=uR(e,f,s),S=q(),C=K(()=>`${(e.modelValue-i.value)/(a.value-i.value)*100}%`),w=K(()=>e.vertical?{bottom:C.value}:{left:C.value}),T=K(()=>o.value===`mark`&&g.value.length>0),E=()=>{t.hovering=!0,b()},D=()=>{t.hovering=!1,t.dragging||x()},O=e=>{r.value||(e.preventDefault(),ae(e),window.addEventListener(`mousemove`,F),window.addEventListener(`touchmove`,F),window.addEventListener(`mouseup`,I),window.addEventListener(`touchend`,I),window.addEventListener(`contextmenu`,I),S.value.focus())},k=e=>{r.value||(t.newPosition=Number.parseFloat(C.value)+e/(a.value-i.value)*100,oe(t.newPosition),p())},A=t=>{if(r.value||!g.value.length)return;let n=e.modelValue,o=2**-52,s=Math.abs(t),c;if(t>0){let e=g.value.findIndex(e=>e.point>n+o);if(e!==-1){let t=Math.min(e+s-1,g.value.length-1);c=g.value[t].point}}else{let e=-1;for(let t=g.value.length-1;t>=0;t--)if(g.value[t].point{T.value?A(-1):Md(o.value)&&k(-o.value)},j=()=>{T.value?A(1):Md(o.value)&&k(o.value)},N=()=>{T.value?A(-4):Md(o.value)&&k(-o.value*4)},P=()=>{T.value?A(4):Md(o.value)&&k(o.value*4)},te=()=>{r.value||(oe(0),p())},ne=()=>{r.value||(oe(100),p())},re=e=>{let t=Kp(e),n=!0;switch(t){case X.left:case X.down:ee();break;case X.right:case X.up:j();break;case X.home:te();break;case X.end:ne();break;case X.pageDown:N();break;case X.pageUp:P();break;default:n=!1;break}n&&e.preventDefault()},ie=e=>{let t,n;return e.type.startsWith(`touch`)?(n=e.touches[0].clientY,t=e.touches[0].clientX):(n=e.clientY,t=e.clientX),{clientX:t,clientY:n}},ae=n=>{t.dragging=!0,t.isClick=!0;let{clientX:r,clientY:i}=ie(n);e.vertical?t.startY=i:t.startX=r,t.startPosition=Number.parseFloat(C.value),t.newPosition=t.startPosition},F=n=>{if(t.dragging){t.isClick=!1,b(),m();let r,{clientX:i,clientY:a}=ie(n);e.vertical?(t.currentY=a,r=(t.startY-t.currentY)/d.value*100):(t.currentX=i,r=(t.currentX-t.startX)/d.value*100),t.newPosition=t.startPosition+r,oe(t.newPosition)}},I=()=>{t.dragging&&(setTimeout(()=>{t.dragging=!1,t.hovering||x(),t.isClick||oe(t.newPosition),p()},0),window.removeEventListener(`mousemove`,F),window.removeEventListener(`touchmove`,F),window.removeEventListener(`mouseup`,I),window.removeEventListener(`touchend`,I),window.removeEventListener(`contextmenu`,I))},oe=async r=>{if(r===null||Number.isNaN(+r))return;r=Ts(r,0,100);let s;if(o.value===`mark`)s=g.value.length===0?r<=50?i.value:a.value:g.value.reduce((e,t)=>Math.abs(t.position-r)t.dragging,e=>{h(e)}),kf(S,`touchstart`,O,{passive:!1}),{disabled:r,button:S,tooltip:_,tooltipVisible:v,showTooltip:s,persistent:c,wrapperStyle:w,formatValue:y,handleMouseEnter:E,handleMouseLeave:D,onButtonDown:O,onKeyDown:re,setPosition:oe}},fR=Q({modelValue:{type:Number,default:0},vertical:Boolean,tooltipClass:String,placement:{type:String,values:fm,default:`top`}}),pR={[br]:e=>Md(e)},mR=[`tabindex`],hR=z({name:`ElSliderButton`,__name:`button`,props:fR,emits:pR,setup(e,{expose:t,emit:n}){let r=e,i=n,a=$(`slider`),o=ve({hovering:!1,dragging:!1,isClick:!1,startX:0,currentX:0,startY:0,currentY:0,startPosition:0,newPosition:0,oldValue:r.modelValue}),s=K(()=>d.value?f.value:!1),{disabled:c,button:l,tooltip:u,showTooltip:d,persistent:f,tooltipVisible:p,wrapperStyle:h,formatValue:g,handleMouseEnter:_,handleMouseLeave:v,onButtonDown:y,onKeyDown:b,setPosition:x}=dR(r,o,i),{hovering:C,dragging:w}=Se(o);return t({onButtonDown:y,onKeyDown:b,setPosition:x,hovering:C,dragging:w}),(e,t)=>(N(),W(`div`,{ref_key:`button`,ref:l,class:F([Y(a).e(`button-wrapper`),{hover:Y(C),dragging:Y(w)}]),style:m(Y(h)),tabindex:Y(c)?void 0:0,onMouseenter:t[0]||=(...e)=>Y(_)&&Y(_)(...e),onMouseleave:t[1]||=(...e)=>Y(v)&&Y(v)(...e),onMousedown:t[2]||=(...e)=>Y(y)&&Y(y)(...e),onFocus:t[3]||=(...e)=>Y(_)&&Y(_)(...e),onBlur:t[4]||=(...e)=>Y(v)&&Y(v)(...e),onKeydown:t[5]||=(...e)=>Y(b)&&Y(b)(...e)},[J(Y(ES),{ref_key:`tooltip`,ref:u,visible:Y(p),placement:e.placement,"fallback-placements":[`top`,`bottom`,`right`,`left`],"stop-popper-mouse-event":!1,"popper-class":e.tooltipClass,disabled:!Y(d),persistent:s.value},{content:V(()=>[B(`span`,null,S(Y(g)),1)]),default:V(()=>[B(`div`,{class:F([Y(a).e(`button`),{hover:Y(C),dragging:Y(w)}])},null,2)]),_:1},8,[`visible`,`placement`,`popper-class`,`disabled`,`persistent`])],46,mR))}}),gR=z({name:`ElSliderMarker`,props:Q({mark:{type:Z([String,Object]),default:void 0}}),setup(e){let t=$(`slider`),n=K(()=>P(e.mark)?e.mark:e.mark.label),r=K(()=>P(e.mark)?void 0:e.mark.style);return()=>Je(`div`,{class:t.e(`marks-text`),style:r.value},n.value)}}),_R=[`id`,`role`,`aria-label`,`aria-labelledby`],vR={key:1},yR=Pv(z({name:`ElSlider`,__name:`slider`,props:nR,emits:iR,setup(e,{expose:t,emit:n}){let i=e,a=n,o=$(`slider`),{t:s}=Dp(),c=ve({firstValue:0,secondValue:0,oldValue:0,dragging:!1,sliderSize:1}),{elFormItem:l,slider:u,firstButton:d,secondButton:f,sliderDisabled:p,minValue:h,maxValue:g,runwayStyle:_,barStyle:v,resetSize:y,emitChange:b,onSliderWrapperPrevent:x,onSliderClick:S,onSliderDown:C,onSliderMarkerDown:w,setFirstValue:T,setSecondValue:E}=sR(i,c,a),{stops:D,getStopStyle:O}=cR(i,c,h,g),{inputId:k,isLabeledByFormItem:A}=db(i,{formItemContext:l}),ee=cb(),j=K(()=>i.inputSize||ee.value),M=K(()=>i.showInput&&!i.range&&i.step!==`mark`),P=K(()=>i.ariaLabel||s(`el.slider.defaultLabel`,{min:i.min,max:i.max})),te=K(()=>i.range?i.rangeStartLabel||s(`el.slider.defaultRangeStartLabel`):P.value),ne=K(()=>i.formatValueText?i.formatValueText(ce.value):`${ce.value}`),re=K(()=>i.rangeEndLabel||s(`el.slider.defaultRangeEndLabel`)),ie=K(()=>i.formatValueText?i.formatValueText(le.value):`${le.value}`),ae=K(()=>[o.b(),o.m(ee.value),o.is(`vertical`,i.vertical),{[o.m(`with-input`)]:M.value}]),I=oR(i);lR(i,c,h,g,a,l);let oe=K(()=>Md(i.step)?i.step:1),L=K(()=>{let e=Md(i.step)?i.step:1,t=[i.min,i.max,e].map(e=>{let t=`${e}`.split(`.`)[1];return t?t.length:0});return Math.max.apply(null,t)}),{sliderWrapper:se}=aR(i,c,y),{firstValue:ce,secondValue:le,sliderSize:ue}=Se(c),de=e=>{c.dragging=e};return kf(se,`touchstart`,x,{passive:!1}),kf(se,`touchmove`,x,{passive:!1}),Qe(tR,{...Se(i),sliderSize:ue,disabled:p,precision:L,markList:I,emitChange:b,resetSize:y,updateDragging:de}),t({onSliderClick:S}),(e,t)=>(N(),W(`div`,{id:e.range?Y(k):void 0,ref_key:`sliderWrapper`,ref:se,class:F(ae.value),role:e.range?`group`:void 0,"aria-label":e.range&&!Y(A)?P.value:void 0,"aria-labelledby":e.range&&Y(A)?Y(l)?.labelId:void 0},[B(`div`,{ref_key:`slider`,ref:u,class:F([Y(o).e(`runway`),{"show-input":M.value},Y(o).is(`disabled`,Y(p))]),style:m(Y(_)),onMousedown:t[0]||=(...e)=>Y(C)&&Y(C)(...e),onTouchstartPassive:t[1]||=(...e)=>Y(C)&&Y(C)(...e)},[B(`div`,{class:F(Y(o).e(`bar`)),style:m(Y(v))},null,6),J(hR,{id:e.range?void 0:Y(k),ref_key:`firstButton`,ref:d,"model-value":Y(ce),vertical:e.vertical,"tooltip-class":e.tooltipClass,placement:e.placement,role:`slider`,"aria-label":e.range||!Y(A)?te.value:void 0,"aria-labelledby":!e.range&&Y(A)?Y(l)?.labelId:void 0,"aria-valuemin":e.min,"aria-valuemax":e.range?Y(le):e.max,"aria-valuenow":Y(ce),"aria-valuetext":ne.value,"aria-orientation":e.vertical?`vertical`:`horizontal`,"aria-disabled":Y(p),"onUpdate:modelValue":Y(T)},null,8,[`id`,`model-value`,`vertical`,`tooltip-class`,`placement`,`aria-label`,`aria-labelledby`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`,`aria-orientation`,`aria-disabled`,`onUpdate:modelValue`]),e.range?(N(),H(hR,{key:0,ref_key:`secondButton`,ref:f,"model-value":Y(le),vertical:e.vertical,"tooltip-class":e.tooltipClass,placement:e.placement,role:`slider`,"aria-label":re.value,"aria-valuemin":Y(ce),"aria-valuemax":e.max,"aria-valuenow":Y(le),"aria-valuetext":ie.value,"aria-orientation":e.vertical?`vertical`:`horizontal`,"aria-disabled":Y(p),"onUpdate:modelValue":Y(E)},null,8,[`model-value`,`vertical`,`tooltip-class`,`placement`,`aria-label`,`aria-valuemin`,`aria-valuemax`,`aria-valuenow`,`aria-valuetext`,`aria-orientation`,`aria-disabled`,`onUpdate:modelValue`])):G(`v-if`,!0),e.showStops?(N(),W(`div`,vR,[(N(!0),W(R,null,r(Y(D),(e,t)=>(N(),W(`div`,{key:t,class:F(Y(o).e(`stop`)),style:m(Y(O)(e))},null,6))),128))])):G(`v-if`,!0),Y(I).length>0?(N(),W(R,{key:2},[B(`div`,null,[(N(!0),W(R,null,r(Y(I),(e,t)=>(N(),W(`div`,{key:t,style:m(Y(O)(e.position)),class:F([Y(o).e(`stop`),Y(o).e(`marks-stop`)])},null,6))),128))]),B(`div`,{class:F(Y(o).e(`marks`))},[(N(!0),W(R,null,r(Y(I),(e,t)=>(N(),H(Y(gR),{key:t,mark:e.mark,style:m(Y(O)(e.position)),onMousedown:kn(t=>Y(w)(e.position),[`stop`])},null,8,[`mark`,`style`,`onMousedown`]))),128))],2)],64)):G(`v-if`,!0)],38),M.value?(N(),H(Y(HF),{key:0,ref:`input`,"model-value":Y(ce),class:F(Y(o).e(`input`)),step:oe.value,disabled:Y(p),controls:e.showInputControls,min:e.min,max:e.max,precision:L.value,size:j.value,"onUpdate:modelValue":Y(T),onChange:Y(b)},null,8,[`model-value`,`class`,`step`,`disabled`,`controls`,`min`,`max`,`precision`,`size`,`onUpdate:modelValue`,`onChange`])):G(`v-if`,!0)],10,_R))}})),bR=z({name:`ElSpaceItem`,props:Q({prefixCls:{type:String}}),setup(e,{slots:t}){let n=$(`space`),r=K(()=>`${e.prefixCls||n.b()}__item`);return()=>Je(`div`,{class:r.value},I(t,`default`))}}),xR={small:8,default:12,large:16};function SR(t){let n=$(`space`),r=K(()=>[n.b(),n.m(t.direction),t.class]),i=q(0),a=q(0),o=K(()=>[t.wrap||t.fill?{flexWrap:`wrap`}:{},{alignItems:t.alignment},{rowGap:`${a.value}px`,columnGap:`${i.value}px`},t.style]),s=K(()=>t.fill?{flexGrow:1,minWidth:`${t.fillRatio}%`}:{});return e(()=>{let{size:e=`small`,wrap:n,direction:r,fill:o}=t;if(A(e)){let[t=0,n=0]=e;i.value=t,a.value=n}else{let t;t=Md(e)?e:xR[e||`small`]||xR.small,(n||o)&&r===`horizontal`?i.value=a.value=t:r===`horizontal`?(i.value=t,a.value=0):(a.value=t,i.value=0)}}),{classes:r,containerStyle:o,itemStyle:s}}var CR=Pv(z({name:`ElSpace`,props:Q({direction:{type:String,values:[`horizontal`,`vertical`],default:`horizontal`},class:{type:Z([String,Object,Array]),default:``},style:{type:Z([String,Array,Object,Boolean]),default:``},alignment:{type:Z(String),default:`center`},prefixCls:{type:String},spacer:{type:Z([Object,String,Number,Array]),default:null,validator:e=>s(e)||Md(e)||P(e)},wrap:Boolean,fill:Boolean,fillRatio:{type:Number,default:100},size:{type:[String,Array,Number],values:wr,validator:e=>Md(e)||A(e)&&e.length===2&&e.every(Md)}}),setup(e,{slots:t}){let{classes:n,containerStyle:r,itemStyle:i}=SR(e);function a(t,n=``,r=[]){let{prefixCls:o}=e;return t.forEach((e,t)=>{mv(e)?A(e.children)&&e.children.forEach((e,t)=>{mv(e)&&A(e.children)?a(e.children,`${n+t}-`,r):s(e)&&e?.type===Te?r.push(e):r.push(J(bR,{style:i.value,prefixCls:o,key:`nested-${n+t}`},{default:()=>[e]},12,[`style`,`prefixCls`]))}):gv(e)&&r.push(J(bR,{style:i.value,prefixCls:o,key:`LoopKey${n+t}`},{default:()=>[e]},12,[`style`,`prefixCls`]))}),r}return()=>{let{spacer:o,direction:c}=e,l=I(t,`default`,{key:0},()=>[]);if((l.children??[]).length===0)return null;if(A(l.children)){let e=a(l.children);if(o){let t=e.length-1;e=e.reduce((e,n,r)=>{let a=[...e,n];return r!==t&&a.push(J(`span`,{style:[i.value,c===`vertical`?`width: 100%`:null],key:r},[s(o)?o:Ke(o,1)],4)),a},[])}return J(`div`,{class:n.value,style:r.value},e,6)}return l.children}}})),wR=Q({space:{type:[Number,String],default:``},active:{type:Number,default:0},direction:{type:String,default:`horizontal`,values:[`horizontal`,`vertical`]},alignCenter:{type:Boolean},simple:{type:Boolean},finishStatus:{type:String,values:[`wait`,`process`,`finish`,`error`,`success`],default:`finish`},processStatus:{type:String,values:[`wait`,`process`,`finish`,`error`,`success`],default:`process`}}),TR={[xr]:(e,t)=>[e,t].every(Md)},ER=`ElSteps`,DR=Q({title:{type:String,default:``},icon:{type:Ny},description:{type:String,default:``},status:{type:String,values:[``,`wait`,`process`,`finish`,`error`,`success`],default:``}}),OR=z({name:`ElSteps`,__name:`steps`,props:wR,emits:TR,setup(e,{emit:t}){let n=e,r=t,i=$(`steps`),{children:a,addChild:o,removeChild:s,ChildrenSorter:c}=bv(Xe(),`ElStep`);return M(a,()=>{a.value.forEach((e,t)=>{e.setIndex(t)})}),Qe(ER,{props:n,steps:a,addStep:o,removeStep:s}),M(()=>n.active,(e,t)=>{r(xr,e,t)}),(t,n)=>(N(),W(`div`,{class:F([Y(i).b(),Y(i).m(e.simple?`simple`:e.direction)])},[I(t.$slots,`default`),J(Y(c))],2))}}),kR=z({name:`ElStep`,__name:`item`,props:DR,setup(e){let t=e,n=$(`step`),r=q(-1),i=q({}),a=q(``),o=l(ER),s=Xe(),c=0,u=0;d(()=>{M([()=>o.props.active,()=>o.props.processStatus,()=>o.props.finishStatus],([e],[t])=>{u=t||0,c=e-u,D(e)},{immediate:!0})});let f=K(()=>t.status||a.value),p=K(()=>{let e=o.steps.value[r.value-1];return e?e.internalStatus.value:`wait`}),h=K(()=>o.props.alignCenter),g=K(()=>o.props.direction===`vertical`),_=K(()=>o.props.simple),v=K(()=>o.steps.value.length),y=K(()=>o.steps.value[v.value-1]?.uid===s.uid),b=K(()=>_.value?``:o.props.space),x=K(()=>[n.b(),n.is(_.value?`simple`:o.props.direction),n.is(`flex`,y.value&&!b.value&&!h.value),n.is(`center`,h.value&&!g.value&&!_.value)]),C=K(()=>{let e={flexBasis:Md(b.value)?`${b.value}px`:b.value?b.value:`${100/(v.value-+!h.value)}%`};return g.value||y.value&&(e.maxWidth=`${100/v.value}%`),e}),w=e=>{r.value=e},E=e=>{let t=e===`wait`,n={transitionDelay:`${Math.abs(c)===1?0:c>0?(r.value+1-u)*150:-(r.value+1-o.props.active)*150}ms`},a=e===o.props.processStatus||t?0:100;n.borderWidth=a&&!_.value?`1px`:0,n[o.props.direction===`vertical`?`height`:`width`]=`${a}%`,i.value=n},D=e=>{e>r.value?a.value=o.props.finishStatus:e===r.value&&p.value!==`error`?a.value=o.props.processStatus:a.value=`wait`;let t=o.steps.value[r.value-1];t&&t.calcProgress(a.value)},O={uid:s.uid,getVnode:()=>s.vnode,currentStatus:f,internalStatus:a,setIndex:w,calcProgress:E};return o.addStep(O),T(()=>{o.removeStep(O)}),(t,a)=>(N(),W(`div`,{style:m(C.value),class:F(x.value)},[G(` icon & line `),B(`div`,{class:F([Y(n).e(`head`),Y(n).is(f.value)])},[_.value?G(`v-if`,!0):(N(),W(`div`,{key:0,class:F(Y(n).e(`line`))},[B(`i`,{class:F(Y(n).e(`line-inner`)),style:m(i.value)},null,6)],2)),B(`div`,{class:F([Y(n).e(`icon`),Y(n).is(e.icon||t.$slots.icon?`icon`:`text`)])},[I(t.$slots,`icon`,{},()=>[e.icon?(N(),H(Y(By),{key:0,class:F(Y(n).e(`icon-inner`))},{default:V(()=>[(N(),H(L(e.icon)))]),_:1},8,[`class`])):f.value===`success`?(N(),H(Y(By),{key:1,class:F([Y(n).e(`icon-inner`),Y(n).is(`status`)])},{default:V(()=>[J(Y(Jv))]),_:1},8,[`class`])):f.value===`error`?(N(),H(Y(By),{key:2,class:F([Y(n).e(`icon-inner`),Y(n).is(`status`)])},{default:V(()=>[J(Y(ey))]),_:1},8,[`class`])):_.value?G(`v-if`,!0):(N(),W(`div`,{key:3,class:F(Y(n).e(`icon-inner`))},S(r.value+1),3))])],2)],2),G(` title & description `),B(`div`,{class:F(Y(n).e(`main`))},[B(`div`,{class:F([Y(n).e(`title`),Y(n).is(f.value)])},[I(t.$slots,`title`,{},()=>[Ke(S(e.title),1)])],2),_.value?(N(),W(`div`,{key:0,class:F(Y(n).e(`arrow`))},null,2)):(N(),W(`div`,{key:1,class:F([Y(n).e(`description`),Y(n).is(f.value)])},[I(t.$slots,`description`,{},()=>[Ke(S(e.description),1)])],2))],2)],6))}}),AR=Pv(OR,{Step:kR}),jR=Lv(kR),MR=e=>[``,...wr].includes(e),NR=Q({modelValue:{type:[Boolean,String,Number],default:!1},disabled:{type:Boolean,default:void 0},loading:Boolean,size:{type:String,validator:MR},width:{type:[String,Number],default:``},inlinePrompt:Boolean,inactiveActionIcon:{type:Ny},activeActionIcon:{type:Ny},activeIcon:{type:Ny},inactiveIcon:{type:Ny},activeText:{type:String,default:``},inactiveText:{type:String,default:``},activeValue:{type:[Boolean,String,Number],default:!0},inactiveValue:{type:[Boolean,String,Number],default:!1},name:{type:String,default:``},validateEvent:{type:Boolean,default:!0},beforeChange:{type:Z(Function)},id:String,tabindex:{type:[String,Number]},...Mv([`ariaLabel`])}),PR={[br]:e=>jd(e)||P(e)||Md(e),[xr]:e=>jd(e)||P(e)||Md(e),[Sr]:e=>jd(e)||P(e)||Md(e)},FR=[`id`,`aria-checked`,`aria-disabled`,`aria-label`,`name`,`true-value`,`false-value`,`disabled`,`tabindex`],IR=[`aria-hidden`],LR={key:1},RR={key:1},zR=[`aria-hidden`],BR=`ElSwitch`,VR=Pv(z({name:BR,__name:`switch`,props:NR,emits:PR,setup(e,{expose:t,emit:n}){let r=e,i=n,{formItem:a}=ub(),o=cb(),s=$(`switch`),{inputId:c}=db(r,{formItemContext:a}),l=lb(K(()=>{if(r.loading)return!0})),u=q(r.modelValue!==!1),p=Le(),h=K(()=>[s.b(),s.m(o.value),s.is(`disabled`,l.value),s.is(`checked`,b.value)]),g=K(()=>[s.e(`label`),s.em(`label`,`left`),s.is(`active`,!b.value)]),_=K(()=>[s.e(`label`),s.em(`label`,`right`),s.is(`active`,b.value)]),v=K(()=>({width:bp(r.width)}));M(()=>r.modelValue,()=>{u.value=!0});let y=K(()=>u.value?r.modelValue:!1),b=K(()=>y.value===r.activeValue);[r.activeValue,r.inactiveValue].includes(y.value)||(Jd(BR,`model-value must be active-value or inactive-value`),i(br,r.inactiveValue),i(xr,r.inactiveValue),i(Sr,r.inactiveValue)),M(b,e=>{p.value.checked=e,r.validateEvent&&a?.validate?.(`change`).catch(ge)});let x=()=>{let e=b.value?r.inactiveValue:r.activeValue;i(br,e),i(xr,e),i(Sr,e),U(()=>{p.value.checked=b.value})},C=()=>{if(l.value)return;let{beforeChange:e}=r;if(!e){x();return}let t=e();[f(t),jd(t)].includes(!0)||qd(BR,"beforeChange must return type `Promise` or `boolean`"),f(t)?t.then(e=>{e&&x()}).catch(e=>{Jd(BR,`some error occurred: ${e}`)}):t&&x()};return d(()=>{p.value.checked=b.value}),t({focus:()=>{p.value?.focus?.()},checked:b}),(t,n)=>(N(),W(`div`,{class:F(h.value),onClick:kn(C,[`prevent`])},[B(`input`,{id:Y(c),ref_key:`input`,ref:p,class:F(Y(s).e(`input`)),type:`checkbox`,role:`switch`,"aria-checked":b.value,"aria-disabled":Y(l),"aria-label":e.ariaLabel,name:e.name,"true-value":e.activeValue,"false-value":e.inactiveValue,disabled:Y(l),tabindex:e.tabindex,onChange:x,onKeydown:jn(C,[`enter`])},null,42,FR),!e.inlinePrompt&&(e.inactiveIcon||e.inactiveText||t.$slots.inactive)?(N(),W(`span`,{key:0,class:F(g.value)},[I(t.$slots,`inactive`,{},()=>[e.inactiveIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.inactiveIcon)))]),_:1})):G(`v-if`,!0),!e.inactiveIcon&&e.inactiveText?(N(),W(`span`,{key:1,"aria-hidden":b.value},S(e.inactiveText),9,IR)):G(`v-if`,!0)])],2)):G(`v-if`,!0),B(`span`,{class:F(Y(s).e(`core`)),style:m(v.value)},[e.inlinePrompt?(N(),W(`div`,{key:0,class:F(Y(s).e(`inner`))},[b.value?(N(),W(`div`,{key:1,class:F(Y(s).e(`inner-wrapper`))},[I(t.$slots,`active`,{},()=>[e.activeIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.activeIcon)))]),_:1})):G(`v-if`,!0),!e.activeIcon&&e.activeText?(N(),W(`span`,RR,S(e.activeText),1)):G(`v-if`,!0)])],2)):(N(),W(`div`,{key:0,class:F(Y(s).e(`inner-wrapper`))},[I(t.$slots,`inactive`,{},()=>[e.inactiveIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.inactiveIcon)))]),_:1})):G(`v-if`,!0),!e.inactiveIcon&&e.inactiveText?(N(),W(`span`,LR,S(e.inactiveText),1)):G(`v-if`,!0)])],2))],2)):G(`v-if`,!0),B(`div`,{class:F(Y(s).e(`action`))},[e.loading?(N(),H(Y(By),{key:0,class:F(Y(s).is(`loading`))},{default:V(()=>[J(Y(dy))]),_:1},8,[`class`])):b.value?I(t.$slots,`active-action`,{key:1},()=>[e.activeActionIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.activeActionIcon)))]),_:1})):G(`v-if`,!0)]):b.value?G(`v-if`,!0):I(t.$slots,`inactive-action`,{key:2},()=>[e.inactiveActionIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.inactiveActionIcon)))]),_:1})):G(`v-if`,!0)])],2)],6),!e.inlinePrompt&&(e.activeIcon||e.activeText||t.$slots.active)?(N(),W(`span`,{key:1,class:F(_.value)},[I(t.$slots,`active`,{},()=>[e.activeIcon?(N(),H(Y(By),{key:0},{default:V(()=>[(N(),H(L(e.activeIcon)))]),_:1})):G(`v-if`,!0),!e.activeIcon&&e.activeText?(N(),W(`span`,{key:1,"aria-hidden":!b.value},S(e.activeText),9,zR)):G(`v-if`,!0)])],2)):G(`v-if`,!0)],2))}})),HR={data:{type:Array,default:()=>[]},size:xv,width:[String,Number],height:[String,Number],maxHeight:[String,Number],fit:{type:Boolean,default:!0},stripe:Boolean,border:Boolean,rowKey:[String,Function],showHeader:{type:Boolean,default:!0},showSummary:Boolean,sumText:String,summaryMethod:Function,rowClassName:[String,Function],rowStyle:[Object,Function],cellClassName:[String,Function],cellStyle:[Object,Function],headerRowClassName:[String,Function],headerRowStyle:[Object,Function],headerCellClassName:[String,Function],headerCellStyle:[Object,Function],highlightCurrentRow:Boolean,currentRowKey:[String,Number],emptyText:String,expandRowKeys:Array,defaultExpandAll:Boolean,rowExpandable:{type:Function},defaultSort:Object,tooltipEffect:String,tooltipOptions:Object,spanMethod:Function,selectOnIndeterminate:{type:Boolean,default:!0},indent:{type:Number,default:16},treeProps:{type:Object,default:()=>({hasChildren:`hasChildren`,children:`children`,checkStrictly:!1})},lazy:Boolean,load:Function,style:{type:[String,Object,Array,Boolean],default:()=>({})},className:{type:String,default:``},tableLayout:{type:String,default:`fixed`},scrollbarAlwaysOn:Boolean,flexible:Boolean,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,appendFilterPanelTo:String,scrollbarTabindex:{type:[Number,String],default:void 0},allowDragLastColumn:{type:Boolean,default:!0},preserveExpandedContent:Boolean,nativeScrollbar:Boolean},UR=1,WR=1,GR=e=>`${e}-table_${UR++}`,KR=e=>`${e}_column_${WR++}`,qR=function(e){return e.target?.closest(`td`)},JR=function(e,t,n,r,i){if(!t&&!r&&(!i||A(i)&&!i.length))return e;n=P(n)?n===`descending`?-1:1:n&&n<0?-1:1;let a=r?null:function(n,r){return i?nd(Cs(i),t=>P(t)?ss(n,t):t(n,r,e)):(t!==`$key`&&E(n)&&`$value`in n&&(n=n.$value),[E(n)?t?ss(n,t):null:n])},o=function(e,t){if(r)return r(e.value,t.value);for(let n=0,r=e.key?.length??0;nt.key?.[n])return 1}return 0};return e.map((e,t)=>({value:e,index:t,key:a?a(e,t):null})).sort((e,t)=>{let r=o(e,t);return r||=e.index-t.index,r*+n}).map(e=>e.value)},YR=function(e,t){let n=null;return e.columns.forEach(e=>{e.id===t&&(n=e)}),n},XR=function(e,t){let n=null;for(let r=0;r{if(!e)throw Error(`Row is required when get row identity`);if(P(t)){if(!t.includes(`.`))return`${e[t]}`;let n=t.split(`.`),r=e;for(let e of n)r=r[e];return`${r}`}else if(n(t))return t.call(null,e);return``},$R=function(e,t,n=!1,r=`children`){let i=e||[],a={};return i.forEach((e,i)=>{if(a[QR(e,t)]={row:e,index:i},n){let n=e[r];A(n)&&Object.assign(a,$R(n,t,!0,r))}}),a};function ez(e,t){let n={},r;for(r in e)n[r]=e[r];for(r in t)if(Ye(t,r)){let e=t[r];Ad(e)||(n[r]=e)}return n}function tz(e){return e===``||Ad(e)||(e=Number.parseInt(e,10),Number.isNaN(e)&&(e=``)),e}function nz(e){return e===``||Ad(e)||(e=tz(e),Number.isNaN(e)&&(e=80)),e}function rz(e){return Md(e)?e:P(e)?/^\d+(?:px)?$/.test(e)?Number.parseInt(e,10):e:null}function iz(...e){return e.length===0?e=>e:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function az(e,t,n,r,i,a,o){let s=a??0,c=!1,l=(()=>{if(!o)return e.indexOf(t);let n=QR(t,o);return e.findIndex(e=>QR(e,o)===n)})(),u=l!==-1,d=i?.call(null,t,s),f=n=>{n===`add`?e.push(t):e.splice(l,1),c=!0},p=e=>{let t=0,n=r?.children&&e[r.children];return n&&A(n)&&(t+=n.length,n.forEach(e=>{t+=p(e)})),t};return(!i||d)&&(jd(n)?n&&!u?f(`add`):!n&&u&&f(`remove`):f(u?`remove`:`add`)),!r?.checkStrictly&&r?.children&&A(t[r.children])&&t[r.children].forEach(t=>{let a=az(e,t,n??!u,r,i,s+1,o);s+=p(t)+1,a&&(c=a)}),c}function oz(e,t,n=`children`,r=`hasChildren`,i=!1){let a=e=>!(A(e)&&e.length);function o(e,s,c){t(e,s,c),s.forEach(e=>{if(e[r]&&i){t(e,null,c+1);return}let s=e[n];a(s)||o(e,s,c+1)})}e.forEach(e=>{if(e[r]&&i){t(e,null,0);return}let s=e[n];a(s)||o(e,s,0)})}var sz=(e,t,r,i)=>{let a=n(i?.tooltipFormatter)?i.tooltipFormatter({row:r,column:i,cellValue:Bd(r,i.property).value}):void 0;return s(a)?{slotContent:a,content:null,strategy:`fixed`,...e}:{slotContent:null,content:a??t,strategy:`fixed`,...e}},cz=null;function lz(e,t,n,r,i,a){let o=sz(e,t,n,r),s={...o,slotContent:void 0};if(cz?.trigger===i){let e=cz.vm?.component;dd(e?.props,s),e&&o.slotContent&&(e.slots.content=()=>[o.slotContent]);return}cz?.();let c=a?.refs.tableWrapper,l=c?.dataset.prefix,u=J(ES,{virtualTriggering:!0,virtualRef:i,appendTo:c,placement:`top`,transition:`none`,offset:0,hideAfter:0,...s},o.slotContent?{content:()=>o.slotContent}:void 0);u.appContext={...a.appContext,...a};let d=document.createElement(`div`);Fn(u,d),u.component.exposed.onOpen();let f=c?.querySelector(`.${l}-scrollbar__wrap`);cz=()=>{u.component?.exposed?.onClose&&u.component.exposed.onClose(),Fn(null,d);let e=cz;f?.removeEventListener(`scroll`,e),e.trigger=void 0,e.vm=void 0,cz=null},cz.trigger=i??void 0,cz.vm=u,f?.addEventListener(`scroll`,cz)}function uz(e){return e.children?nd(e.children,uz):[e]}function dz(e,t){return e+t.colSpan}var fz=(e,t,n,r)=>{let i=0,a=e,o=n.states.columns.value;if(r){let t=uz(r[e]);i=o.slice(0,o.indexOf(t[0])).reduce(dz,0),a=i+t.reduce(dz,0)-1}else i=e;let s;switch(t){case`left`:a=o.length-n.states.rightFixedLeafColumnsLength.value&&(s=`right`);break;default:a=o.length-n.states.rightFixedLeafColumnsLength.value&&(s=`right`)}return s?{direction:s,start:i,after:a}:{}},pz=(e,t,n,r,i,a=0)=>{let o=[],{direction:s,start:c,after:l}=fz(t,n,r,i);if(s){let t=s===`left`;o.push(`${e}-fixed-column--${s}`),t&&l+a===r.states.fixedLeafColumnsLength.value-1?o.push(`is-last-column`):!t&&c-a===r.states.columns.value.length-r.states.rightFixedLeafColumnsLength.value&&o.push(`is-first-column`)}return o};function mz(e,t){return e+(ld(t.realWidth)||Number.isNaN(t.realWidth)?Number(t.width):t.realWidth)}var hz=(e,t,n,r)=>{let{direction:i,start:a=0,after:o=0}=fz(e,t,n,r);if(!i)return;let s={},c=i===`left`,l=n.states.columns.value;return c?s.left=l.slice(0,a).reduce(mz,0):s.right=l.slice(o+1).reverse().reduce(mz,0),s},gz=(e,t)=>{e&&(Number.isNaN(e[t])||(e[t]=`${e[t]}px`))};function _z(e){return e.some(e=>s(e)?!(e.type===Te||e.type===R&&!_z(e.children)):!0)?e:null}function vz(e){let t=Xe(),n=q(!1),r=q([]),i=(e,n)=>{let r=t.store.states.rowExpandable.value;return r?.(e,n)??!0};return{updateExpandRows:()=>{let a=e.data.value||[],o=e.rowKey.value;if(n.value)r.value=t.store.states.rowExpandable.value?a.filter(i):a.slice();else if(o){let e=$R(r.value,o);r.value=a.filter((t,n)=>!!e[QR(t,o)]&&i(t,n))}else r.value=[]},toggleRowExpansion:(n,a)=>{let o=(e.data.value||[]).indexOf(n);o>-1&&!i(n,o)||az(r.value,n,a,void 0,void 0,void 0,e.rowKey.value)&&t.emit(`expand-change`,n,r.value.slice())},setExpandRowKeys:n=>{t.store.assertRowKey();let a=e.data.value||[],o=e.rowKey.value,s=$R(a,o);r.value=n.reduce((e,t)=>{let n=s[t];return n&&i(n.row,n.index)&&e.push(n.row),e},[])},isRowExpanded:t=>{let n=e.rowKey.value;return n?!!$R(r.value,n)[QR(t,n)]:r.value.includes(t)},states:{expandRows:r,defaultExpandAll:n}}}function yz(e){let t=Xe(),n=q(null),r=q(null),i=e=>{t.store.assertRowKey(),n.value=e,o(e)},a=()=>{n.value=null},o=n=>{let{data:i,rowKey:a}=e,o=r.value,s=null;a.value&&(s=(Y(i)||[]).find(e=>QR(e,a.value)===n)??null),r.value=s??null,t.emit(`current-change`,r.value,o)};return{setCurrentRowKey:i,restoreCurrentRowKey:a,setCurrentRowByKey:o,updateCurrentRow:e=>{let n=r.value;if(e&&e!==n){r.value=e,t.emit(`current-change`,r.value,n);return}!e&&n&&(r.value=null,t.emit(`current-change`,null,n))},updateCurrentRowData:()=>{let i=e.rowKey.value,s=e.data.value||[],c=r.value;c&&!s.includes(c)?i?o(QR(c,i)):(r.value=null,t.emit(`current-change`,null,c)):n.value&&(o(n.value),a())},states:{_currentRowKey:n,currentRow:r}}}function bz(e){let t=q([]),n=q({}),r=q(16),i=q(!1),a=q({}),o=q(`hasChildren`),s=q(`children`),c=q(!1),l=Xe(),u=K(()=>e.rowKey.value?f(e.data.value||[]):{}),d=K(()=>{let t=e.rowKey.value,n=Object.keys(a.value),r={};return n.length&&n.forEach(e=>{if(a.value[e].length){let n={children:[]};a.value[e].forEach(e=>{let i=QR(e,t);n.children.push(i),e[o.value]&&!r[i]&&(r[i]={children:[]})}),r[e]=n}}),r}),f=t=>{let n=e.rowKey.value,r={};return oz(t,(e,t,a)=>{let o=QR(e,n);A(t)?r[o]={children:t.map(e=>QR(e,n)),level:a}:i.value&&(r[o]={children:[],lazy:!0,level:a})},s.value,o.value,i.value),r},p=(e=!1,r)=>{r||=l.store?.states.defaultExpandAll.value;let a=u.value,o=d.value,s=Object.keys(a),c={};if(s.length){let l=Y(n),u=[],d=(n,i)=>{if(e)return t.value?r||t.value.includes(i):!!(r||n?.expanded);{let e=r||t.value&&t.value.includes(i);return!!(n?.expanded||e)}};s.forEach(e=>{let t=l[e],n={...a[e]};if(n.expanded=d(t,e),n.lazy){let{loaded:r=!1,loading:i=!1}=t||{};n.loaded=!!r,n.loading=!!i,u.push(e)}c[e]=n});let f=Object.keys(o);i.value&&f.length&&u.length&&f.forEach(e=>{let t=l[e],n=o[e].children;if(u.includes(e)){if(c[e].children?.length!==0)throw Error(`[ElTable]children must be an empty array.`);c[e].children=n}else{let{loaded:r=!1,loading:i=!1}=t||{};c[e]={lazy:!0,loaded:!!r,loading:!!i,expanded:d(t,e),children:n,level:void 0}}})}n.value=c,l.store?.updateTableScrollY()};M(()=>t.value,()=>{p(!0)},{deep:!0}),M(()=>u.value,()=>{p()}),M(()=>d.value,()=>{p()});let m=e=>{t.value=e,p()},h=e=>i.value&&e&&`loaded`in e&&!e.loaded,g=(t,r)=>{l.store.assertRowKey();let i=e.rowKey.value,a=QR(t,i),o=a&&n.value[a];if(a&&o&&`expanded`in o){let e=o.expanded;r=Ad(r)?!o.expanded:r,n.value[a].expanded=r,e!==r&&l.emit(`expand-change`,t,r),r&&h(o)&&v(t,a,o),l.store.updateTableScrollY()}},_=t=>{l.store.assertRowKey();let r=e.rowKey.value,i=QR(t,r),a=n.value[i];h(a)?v(t,i,a):g(t,void 0)},v=(e,t,r)=>{let{load:i}=l.props;i&&!n.value[t].loaded&&(n.value[t].loading=!0,i(e,r,r=>{if(!A(r))throw TypeError(`[ElTable] data must be an array`);n.value[t].loading=!1,n.value[t].loaded=!0,n.value[t].expanded=!0,r.length&&(a.value={...a.value,[t]:r}),l.emit(`expand-change`,e,!0)}))};return{loadData:v,loadOrToggle:_,toggleTreeExpansion:g,updateTreeExpandKeys:m,updateTreeData:p,updateKeyChildren:(e,t)=>{let{lazy:n,rowKey:r}=l.props;if(n){if(!r)throw Error(`[Table] rowKey is required in updateKeyChild`);a.value[e]&&(a.value={...a.value,[e]:t})}},normalize:f,states:{expandRowKeys:t,treeData:n,indent:r,lazy:i,lazyTreeNodeMap:a,lazyColumnIdentifier:o,childrenColumnName:s,checkStrictly:c}}}var xz=(e,t)=>{let n=t.sortingColumn;return!n||P(n.sortable)?e:JR(e,t.sortProp,t.sortOrder,n.sortMethod,n.sortBy)},Sz=e=>{let t=[];return e.forEach(e=>{e.children&&e.children.length>0?t.push.apply(t,Sz(e.children)):t.push(e)}),t};function Cz(){let e=Xe(),{size:t}=Se(e.proxy?.$props),n=q(null),r=q([]),i=q([]),a=q(!1),o=q([]),s=q([]),c=q([]),l=q([]),u=q([]),d=q([]),f=q([]),p=q([]),m=[],h=q(0),g=q(0),_=q(0),v=q(!1),y=q([]),b=q({}),x=q(!1),S=q(!1),C=q(null),w=q(null),T=q({}),E=q(null),D=q(null),O=q(null),k=q(null),ee=q(null),j=[],N=K(()=>n.value?$R(y.value,n.value):void 0),te=t=>{let{childrenColumnName:r,lazyTreeNodeMap:i}=e.store.states,a=t[r.value]??[];if(!n.value)return a;let o=QR(t,n.value);return[...i.value?.[o]??[],...a]};M(r,()=>{e.state&&(ae(!1),e.props.tableLayout===`auto`&&e.refs.tableHeaderRef?.updateFixedColumnStyle())},{deep:!0});let ne=()=>{if(!n.value)throw Error(`[ElTable] prop row-key is required`)},re=e=>{e.children?.forEach(t=>{t.fixed=e.fixed,re(t)})},ie=()=>{o.value.forEach(e=>{re(e)}),l.value=o.value.filter(e=>[!0,`left`].includes(e.fixed));let e=o.value.find(e=>e.type===`selection`),t;e&&e.fixed!==`right`&&!l.value.includes(e)&&o.value.indexOf(e)===0&&l.value.length&&(l.value.unshift(e),t=!0),u.value=o.value.filter(e=>e.fixed===`right`);let n=o.value.filter(e=>(t?e.type!==`selection`:!0)&&!e.fixed);s.value=Array.from(l.value).concat(n).concat(u.value);let r=Sz(n),i=Sz(l.value),d=Sz(u.value);h.value=r.length,g.value=i.length,_.value=d.length,c.value=Array.from(i).concat(r).concat(d),a.value=l.value.length>0||u.value.length>0},ae=(t,n=!1)=>{t&&ie(),n?e.state.doLayout():e.state.debouncedUpdateLayout()},F=e=>N.value?!!N.value[QR(e,n.value)]:y.value.includes(e),I=K(()=>{let e=new Map;if(!n.value||!C.value)return e;let t=0,i=r=>{A(r)&&r.forEach(r=>{let a=QR(r,n.value);e.set(a,t),t+=1;let o=te(r);o.length&&i(o)})};return i(r.value||[]),e}),oe=(t={})=>{let{emitChange:i=!0}=t;if(U.checkStrictly.value||!n.value){b.value={},j=[];return}let a=n.value,o=t.rowIndexMap??I.value,s=C.value,c=new WeakMap,l=e=>{let t=c.get(e);if(t)return t;let n=QR(e,a);return c.set(e,n),n},u={},d=[],f=new Set(y.value.map(e=>l(e))),p=[],m=!1,h=(e,t,n)=>{let r=f.has(t);n&&!r?(p.push(e),f.add(t),m=!0):!n&&r&&(f.delete(t),m=!0)},g=e=>{let t=0,n=0;return A(e)&&e.forEach(e=>{let r=l(e),i=te(e),a=0,c=0;if(i.length){let e=g(i);a=e.selectedCount,c=e.selectableCount}let p=s?s.call(null,e,o.get(r)??0):!0;if(p&&c>0){let t=a===c;!t&&a!==0&&(u[r]=!0,d.push(e)),h(e,r,t)}p&&(n+=1,f.has(r)&&(t+=1)),t+=a,n+=c}),{selectedCount:t,selectableCount:n}};if(g(r.value||[]),m){let e=y.value.filter(e=>f.has(l(e)));p.forEach(t=>{f.has(l(t))&&e.push(t)}),y.value=e}b.value=u,j=d,m&&i&&e.emit(`selection-change`,y.value?y.value.slice():[])},L=()=>{v.value=!1;let t=y.value;y.value=[],b.value={},j=[],t.length&&e.emit(`selection-change`,[])},se=()=>{let t;if(n.value){t=[];let i=e?.store?.states?.childrenColumnName.value,a=$R(r.value,n.value,!0,i),{lazyTreeNodeMap:o}=e.store.states;o.value&&Object.entries(o.value).forEach(([e,t])=>{a[e]&&t.forEach(e=>{let t=QR(e,n.value);a[t]||(a[t]={row:e,index:-1})})});for(let e in N.value)Ye(N.value,e)&&!a[e]&&t.push(N.value[e].row)}else t=y.value.filter(e=>!r.value.includes(e));if(t.length){let n=y.value.filter(e=>!t.includes(e));y.value=n,oe({emitChange:!1}),e.emit(`selection-change`,[...n])}},ce=()=>(y.value||[]).slice(),le=()=>j.slice(),ue=(t,r,i)=>{if(!n.value||U.checkStrictly.value||!U.lazy.value)return;let{lazyTreeNodeMap:a,childrenColumnName:o}=e.store.states,s=QR(t,n.value),c=a.value?.[s]??[],l=t[o.value]??[],u={children:o.value,checkStrictly:!1};for(let e of c){let t=i.get(QR(e,n.value))??0;az(y.value,e,r,u,C.value,t,n.value),ue(e,r,i)}for(let e of l)ue(e,r,i)},de=(t,i,a=!0,o=!1)=>{let s={children:e?.store?.states?.childrenColumnName.value,checkStrictly:e?.store?.states?.checkStrictly.value};if(az(y.value,t,i,s,o?void 0:C.value,r.value.indexOf(t),n.value)){U.lazy.value&&!U.checkStrictly.value?(ue(t,i??F(t),I.value),oe({emitChange:!1,rowIndexMap:I.value})):oe({emitChange:!1});let n=(y.value||[]).slice();a&&e.emit(`select`,n,t),e.emit(`selection-change`,n)}},fe=()=>{let t=S.value?!v.value:!(v.value||y.value.length);v.value=t;let n=!1,i=0,a=e?.store?.states?.rowKey.value,{childrenColumnName:o}=e.store.states,s={children:o.value,checkStrictly:!1};r.value.forEach((e,r)=>{let o=r+i;az(y.value,e,t,s,C.value,o,a)&&(n=!0),i+=R(QR(e,a))});let c=I.value;if(U.lazy.value&&!U.checkStrictly.value&&a)for(let e of Object.values(U.lazyTreeNodeMap.value))for(let r of e){let e=c.get(QR(r,a))??0;az(y.value,r,t,s,C.value,e,a)&&(n=!0),ue(r,t,c)}oe({emitChange:!1,rowIndexMap:c}),n&&e.emit(`selection-change`,y.value?[...y.value]:[]),e.emit(`select-all`,(y.value||[]).slice())},pe=()=>{if(r.value?.length===0){v.value=!1;return}let e=0,t=0,n=r=>{for(let i of r){let r=C.value&&C.value.call(null,i,e);if(F(i))t++;else if(!C.value||r)return!1;e++;let a=te(i);if(a.length&&!n(a))return!1}return!0},i=n(r.value||[]);v.value=t===0?!1:i},me=e=>{if(!n.value)return!1;let t=QR(e,n.value);return!!b.value[t]},R=t=>{if(!e||!e.store)return 0;let{treeData:n}=e.store.states,r=0,i=n.value[t]?.children;return i&&(r+=i.length,i.forEach(e=>{r+=R(e)})),r},he=(e,t)=>{let n={};return Cs(e).forEach(e=>{T.value[e.id]=t,n[e.columnKey||e.id]=t}),n},z=(e,t,n)=>{D.value&&D.value!==e&&(D.value.order=null),D.value=e,O.value=t,k.value=n},ge=()=>{let e=Y(i);Object.keys(T.value).forEach(t=>{let n=T.value[t];if(!n||n.length===0)return;let r=YR({columns:c.value},t);r&&r.filterMethod&&(e=e.filter(e=>n.some(t=>r.filterMethod.call(null,t,e,r))))}),E.value=e},_e=()=>{r.value=xz(E.value??[],{sortingColumn:D.value,sortProp:O.value,sortOrder:k.value})},ve=(e=void 0)=>{e?.filter||ge(),_e()},B=t=>{let{tableHeaderRef:n}=e.refs;if(!n)return;let r=Object.assign({},n.filterPanels),i=Object.keys(r);if(i.length)if(P(t)&&(t=[t]),A(t)){let n=t.map(e=>XR({columns:c.value},e));i.forEach(e=>{let t=n.find(t=>t.id===e);t&&(t.filteredValue=[])}),e.store.commit(`filterChange`,{column:n,values:[],silent:!0,multi:!0})}else i.forEach(e=>{let t=c.value.find(t=>t.id===e);t&&(t.filteredValue=[])}),T.value={},e.store.commit(`filterChange`,{column:{},values:[],silent:!0})},ye=()=>{D.value&&(z(null,null,null),e.store.commit(`changeSortCondition`,{silent:!0}))},{setExpandRowKeys:V,toggleRowExpansion:H,updateExpandRows:be,states:xe,isRowExpanded:Ce}=vz({data:r,rowKey:n}),{updateTreeExpandKeys:we,toggleTreeExpansion:Te,updateTreeData:Ee,updateKeyChildren:De,loadOrToggle:Oe,states:U}=bz({data:r,rowKey:n}),{updateCurrentRowData:ke,updateCurrentRow:Ae,setCurrentRowKey:je,states:W}=yz({data:r,rowKey:n});return M(()=>U.checkStrictly.value,e=>{e?(b.value={},j=[]):oe({emitChange:!1}),pe()}),M(()=>U.lazyTreeNodeMap.value,()=>{if(!U.lazy.value||U.checkStrictly.value||!n.value)return;let t=I.value,r=y.value.length;for(let e of Object.keys(U.lazyTreeNodeMap.value))N.value?.[e]&&ue(N.value[e].row,!0,t);let i=y.value.length!==r;oe({emitChange:!i,rowIndexMap:t}),pe(),i&&e.emit(`selection-change`,[...y.value])}),{assertRowKey:ne,updateColumns:ie,scheduleLayout:ae,isSelected:F,clearSelection:L,cleanSelection:se,getSelectionRows:ce,getHalfSelectionRows:le,toggleRowSelection:de,_toggleAllSelection:fe,toggleAllSelection:null,updateAllSelected:pe,updateSelectionByChildren:oe,getRowIndeterminate:me,updateFilters:he,updateCurrentRow:Ae,updateSort:z,execFilter:ge,execSort:_e,execQuery:ve,clearFilter:B,clearSort:ye,toggleRowExpansion:H,setExpandRowKeysAdapter:e=>{V(e),we(e)},setCurrentRowKey:je,toggleRowExpansionAdapter:(e,t)=>{c.value.some(({type:e})=>e===`expand`)?H(e,t):Te(e,t)},isRowExpanded:Ce,updateExpandRows:be,updateCurrentRowData:ke,loadOrToggle:Oe,updateTreeData:Ee,updateKeyChildren:De,states:{tableSize:t,rowKey:n,data:r,_data:i,isComplex:a,_columns:o,originColumns:s,columns:c,fixedColumns:l,rightFixedColumns:u,leafColumns:d,fixedLeafColumns:f,rightFixedLeafColumns:p,updateOrderFns:m,leafColumnsLength:h,fixedLeafColumnsLength:g,rightFixedLeafColumnsLength:_,isAllSelected:v,selection:y,selectionIndeterminate:b,reserveSelection:x,selectOnIndeterminate:S,selectable:C,rowExpandable:w,filters:T,filteredData:E,sortingColumn:D,sortProp:O,sortOrder:k,hoverRow:ee,...xe,...U,...W}}}function wz(e,t){return e.map(e=>e.id===t.id?t:(e.children?.length&&(e.children=wz(e.children,t)),e))}function Tz(e){e.forEach(e=>{e.no=e.getColumnIndex?.(),e.children?.length&&Tz(e.children)}),e.sort((e,t)=>e.no-t.no)}function Ez(){let e=Xe(),t=Cz(),n=$(`table`),{t:r}=Dp(),i={setData(t,n){let r=Y(t._data)!==n;t.data.value=n,t._data.value=n,e.store.execQuery(),e.store.updateCurrentRowData(),e.store.updateExpandRows(),e.store.updateTreeData(e.store.states.defaultExpandAll.value),Y(t.reserveSelection)?e.store.assertRowKey():r?e.store.clearSelection():e.store.cleanSelection(),e.store.updateSelectionByChildren({emitChange:!1}),e.store.updateAllSelected(),e.$ready&&e.store.scheduleLayout()},insertColumn(t,n,r,i){let a=Y(t._columns),o=[];r?(r&&!r.children&&(r.children=[]),r.children?.push(n),o=wz(a,r)):(a.push(n),o=a),Tz(o),t._columns.value=o,t.updateOrderFns.push(i),n.type===`selection`&&(t.selectable.value=n.selectable,t.reserveSelection.value=n.reserveSelection),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},updateColumnOrder(t,n){n.getColumnIndex?.()!==n.no&&(Tz(t._columns.value),e.$ready&&e.store.updateColumns())},removeColumn(t,n,r,i){let a=Y(t._columns)||[];if(r)r.children?.splice(r.children.findIndex(e=>e.id===n.id),1),U(()=>{r.children?.length===0&&delete r.children}),t._columns.value=wz(a,r);else{let e=a.indexOf(n);e>-1&&(a.splice(e,1),t._columns.value=a)}let o=t.updateOrderFns.indexOf(i);o>-1&&t.updateOrderFns.splice(o,1),e.$ready&&(e.store.updateColumns(),e.store.scheduleLayout())},sort(t,n){let{prop:r,order:i,init:a}=n;if(r){let n=Y(t.columns).find(e=>e.property===r);n&&(n.order=i,e.store.updateSort(n,r,i),e.store.commit(`changeSortCondition`,{init:a}))}},changeSortCondition(t,n){let{sortingColumn:r,sortProp:i,sortOrder:a}=t,o=Y(r),s=Y(i),c=Y(a);ld(c)&&(t.sortingColumn.value=null,t.sortProp.value=null),e.store.execQuery({filter:!0}),(!n||!(n.silent||n.init))&&e.emit(`sort-change`,{column:o,prop:s,order:c}),e.store.updateTableScrollY()},filterChange(t,n){let{column:r,values:i,silent:a}=n,o=e.store.updateFilters(r,i);e.store.execQuery(),a||e.emit(`filter-change`,o),e.store.updateTableScrollY()},toggleAllSelection(){e.store.toggleAllSelection?.()},rowSelectedChanged(t,n){e.store.toggleRowSelection(n),e.store.updateAllSelected()},setHoverRow(e,t){e.hoverRow.value=t},setCurrentRow(t,n){e.store.updateCurrentRow(n)}},a=function(t,...n){let r=e.store.mutations;if(r[t])r[t].apply(e,[e.store.states,...n]);else throw Error(`Action not found: ${t}`)},o=function(){U(()=>e.layout.updateScrollY.apply(e.layout))};return{ns:n,t:r,...t,mutations:i,commit:a,updateTableScrollY:o}}var Dz={rowKey:`rowKey`,defaultExpandAll:`defaultExpandAll`,rowExpandable:`rowExpandable`,selectOnIndeterminate:`selectOnIndeterminate`,indent:`indent`,lazy:`lazy`,"treeProps.hasChildren":{key:`lazyColumnIdentifier`,default:`hasChildren`},"treeProps.children":{key:`childrenColumnName`,default:`children`},"treeProps.checkStrictly":{key:`checkStrictly`,default:!1}};function Oz(e,t){if(!e)throw Error(`Table is required.`);let n=Ez();return n.toggleAllSelection=Hu(n._toggleAllSelection,10),Object.keys(Dz).forEach(e=>{Az(jz(t,e),e,n)}),kz(n,t),n}function kz(e,t){Object.keys(Dz).forEach(n=>{M(()=>jz(t,n),t=>{Az(t,n,e)})})}function Az(e,t,n){let r=e,i=Dz[t];E(i)&&(r||=i.default,i=i.key),n.states[i].value=r}function jz(e,t){if(t.includes(`.`)){let n=t.split(`.`),r=e;return n.forEach(e=>{r=r[e]}),r}else return e[t]}var Mz=class{constructor(e){this.observers=[],this.table=null,this.store=null,this.columns=[],this.fit=!0,this.showHeader=!0,this.heightMap={},this.height=q(null),this.scrollX=q(!1),this.scrollY=q(!1),this.bodyWidth=q(null),this.fixedWidth=q(null),this.rightFixedWidth=q(null),this.gutterWidth=0;for(let t in e)Ye(e,t)&&(he(this[t])?this[t].value=e[t]:this[t]=e[t]);if(!this.table)throw Error(`Table is required for Table Layout`);if(!this.store)throw Error(`Store is required for Table Layout`)}updateScrollY(){let e=this.height.value;if(ld(e))return!1;let t=this.table.refs.scrollBarRef;if(this.table.vnode.el&&t?.wrapRef){let e=!0,n=this.scrollY.value;return e=t.wrapRef.scrollHeight>t.wrapRef.clientHeight,this.scrollY.value=e,n!==e}return!1}setHeight(e,t=`height`){if(!nf)return;let n=this.table.vnode.el;if(e=rz(e),this.height.value=Number(e),this.heightMap[t]=e,!n&&(e||e===0)){U(()=>{this.heightMap[t]===e&&this.setHeight(e,t)});return}n&&Md(e)?(n.style[t]=`${e}px`,this.updateElsHeight()):n&&P(e)&&(n.style[t]=e,this.updateElsHeight())}setMaxHeight(e){this.setHeight(e,`max-height`)}getFlattenColumns(){let e=[];return this.table.store.states.columns.value.forEach(t=>{t.isColumnGroup?e.push.apply(e,t.columns):e.push(t)}),e}updateElsHeight(){this.updateScrollY(),this.notifyObservers(`scrollable`)}headerDisplayNone(e){if(!e)return!0;let t=e;for(;t.tagName!==`DIV`;){if(getComputedStyle(t).display===`none`)return!0;t=t.parentElement}return!1}updateColumnsWidth(){if(!nf)return;let e=this.fit,t=this.table.vnode.el?.clientWidth,n=0,r=this.getFlattenColumns(),i=r.filter(e=>!Md(e.width));if(r.forEach(e=>{Md(e.width)&&e.realWidth&&(e.realWidth=null)}),i.length>0&&e){if(r.forEach(e=>{n+=Number(e.width||e.minWidth||80)}),n<=t){this.scrollX.value=!1;let e=t-n;if(i.length===1)i[0].realWidth=Number(i[0].minWidth||80)+e;else{let t=e/i.reduce((e,t)=>e+Number(t.minWidth||80),0),n=0;i.forEach((e,r)=>{if(r===0)return;let i=Math.floor(Number(e.minWidth||80)*t);n+=i,e.realWidth=Number(e.minWidth||80)+i}),i[0].realWidth=Number(i[0].minWidth||80)+e-n}}else this.scrollX.value=!0,i.forEach(e=>{e.realWidth=Number(e.minWidth)});this.bodyWidth.value=Math.max(n,t),this.table.state.resizeState.value.width=this.bodyWidth.value}else r.forEach(e=>{!e.width&&!e.minWidth?e.realWidth=80:e.realWidth=Number(e.width||e.minWidth),n+=e.realWidth}),this.scrollX.value=n>t,this.bodyWidth.value=n;let a=this.store.states.fixedColumns.value;if(a.length>0){let e=0;a.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.fixedWidth.value=e}let o=this.store.states.rightFixedColumns.value;if(o.length>0){let e=0;o.forEach(t=>{e+=Number(t.realWidth||t.width)}),this.rightFixedWidth.value=e}this.notifyObservers(`columns`)}addObserver(e){this.observers.push(e)}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&this.observers.splice(t,1)}notifyObservers(e){this.observers.forEach(t=>{switch(e){case`columns`:t.state?.onColumnsChange(this);break;case`scrollable`:t.state?.onScrollableChange(this);break;default:throw Error(`Table Layout don't have event ${e}.`)}})}},Nz=Symbol(`ElTable`),Pz=e=>{let t=[];return e.forEach(e=>{e.children?(t.push(e),t.push.apply(t,Pz(e.children))):t.push(e)}),t},Fz=e=>{let t=1,n=(e,r)=>{if(r&&(e.level=r.level+1,t{n(r,e),t+=r.colSpan}),e.colSpan=t}else e.colSpan=1};e.forEach(e=>{e.level=1,n(e,void 0)});let r=[];for(let e=0;e{e.children?(e.rowSpan=1,e.children.forEach(e=>e.isSubColumn=!0)):e.rowSpan=t-e.level+1,r[e.level-1].push(e)}),r};function Iz(e){let t=l(Nz),n=K(()=>Fz(e.store.states.originColumns.value));return{isGroup:K(()=>{let e=n.value.length>1;return e&&t&&(t.state.isGroup.value=!0),e}),toggleAllSelection:e=>{e.stopPropagation(),t?.store.commit(`toggleAllSelection`)},columnRows:n}}var Lz=z({name:`ElTableFilterPanel`,components:{ElCheckbox:ok,ElCheckboxGroup:ck,ElScrollbar:tC,ElTooltip:ES,ElIcon:By,ArrowDown:Bv,ArrowUp:Uv},props:{placement:{type:String,default:`bottom-start`},store:{type:Object},column:{type:Object},upDataColumn:{type:Function},appendTo:fS.appendTo},setup(e){let t=Xe(),{t:n}=Dp(),r=$(`table-filter`),i=t?.parent;e.column&&!i.filterPanels.value[e.column.id]&&(i.filterPanels.value[e.column.id]=t);let a=q(null),o=q(null),s=q(0),c=K(()=>e.column&&e.column.filters),l=K(()=>e.column&&e.column.filterClassName?`${r.b()} ${e.column.filterClassName}`:r.b()),u=K({get:()=>(e.column?.filteredValue||[])[0],set:e=>{d.value&&(Fd(e)?d.value.splice(0,1):d.value.splice(0,1,e))}}),d=K({get(){return e.column&&e.column.filteredValue||[]},set(t){e.column&&e.upDataColumn?.(`filteredValue`,t)}}),f=K(()=>e.column?e.column.filterMultiple:!0),p=e=>e.value===u.value,m=()=>{a.value?.onClose()},h=()=>{v(d.value),m()},g=()=>{d.value=[],v(d.value),m()},_=(e,t)=>{u.value=e,s.value=t,Fd(e)?v([]):v(d.value),m()},v=t=>{e.store?.commit(`filterChange`,{column:e.column,values:t}),e.store?.updateAllSelected()},y=()=>{o.value?.focus(),!f.value&&x(),e.column&&e.upDataColumn?.(`filterOpened`,!0)},b=()=>{e.column&&e.upDataColumn?.(`filterOpened`,!1)},x=()=>{if(Fd(u)){s.value=0;return}let e=(c.value||[]).findIndex(e=>e.value===u.value);s.value=e>=0?e+1:0};return{multiple:f,filterClassName:l,filteredValue:d,filterValue:u,filters:c,handleConfirm:h,handleReset:g,handleSelect:_,isPropAbsent:Fd,isActive:p,t:n,ns:r,tooltipRef:a,rootRef:o,checkedIndex:s,handleShowTooltip:y,handleHideTooltip:b,handleKeydown:e=>{let t=Kp(e),n=(c.value?c.value.length:0)+1,i=s.value,a=!0;switch(t){case X.down:case X.right:i=(i+1)%n;break;case X.up:case X.left:i=(i-1+n)%n;break;case X.tab:m(),a=!1;break;case X.enter:case X.space:if(i===0)_(null,0);else{let e=(c.value||[])[i-1];e.value&&_(e.value,i)}break;default:a=!1;break}a&&e.preventDefault(),s.value=i,o.value?.querySelector(`.${r.e(`list-item`)}:nth-child(${i+1})`)?.focus()}}}}),Rz=[`disabled`],zz=[`tabindex`,`aria-checked`],Bz=[`tabindex`,`aria-checked`,`onClick`],Vz=[`aria-label`];function Hz(e,t,n,i,a,o){let s=h(`el-checkbox`),c=h(`el-checkbox-group`),l=h(`el-scrollbar`),u=h(`arrow-up`),d=h(`arrow-down`),f=h(`el-icon`),p=h(`el-tooltip`);return N(),H(p,{ref:`tooltipRef`,offset:0,placement:e.placement,"show-arrow":!1,trigger:`click`,role:`dialog`,teleported:``,effect:`light`,pure:``,loop:``,"popper-class":e.filterClassName,persistent:``,"append-to":e.appendTo,onShow:e.handleShowTooltip,onHide:e.handleHideTooltip},{content:V(()=>[e.multiple?(N(),W(`div`,{key:0,ref:`rootRef`,tabindex:`-1`,class:F(e.ns.e(`multiple`))},[B(`div`,{class:F(e.ns.e(`content`))},[J(l,{"wrap-class":e.ns.e(`wrap`)},{default:V(()=>[J(c,{modelValue:e.filteredValue,"onUpdate:modelValue":t[0]||=t=>e.filteredValue=t,class:F(e.ns.e(`checkbox-group`))},{default:V(()=>[(N(!0),W(R,null,r(e.filters,e=>(N(),H(s,{key:e.value,value:e.value},{default:V(()=>[Ke(S(e.text),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`,`class`])]),_:1},8,[`wrap-class`])],2),B(`div`,{class:F(e.ns.e(`bottom`))},[B(`button`,{class:F(e.ns.is(`disabled`,e.filteredValue.length===0)),disabled:e.filteredValue.length===0,type:`button`,onClick:t[1]||=(...t)=>e.handleConfirm&&e.handleConfirm(...t)},S(e.t(`el.table.confirmFilter`)),11,Rz),B(`button`,{type:`button`,onClick:t[2]||=(...t)=>e.handleReset&&e.handleReset(...t)},S(e.t(`el.table.resetFilter`)),1)],2)],2)):(N(),W(`ul`,{key:1,ref:`rootRef`,tabindex:`-1`,role:`radiogroup`,class:F(e.ns.e(`list`)),onKeydown:t[4]||=(...t)=>e.handleKeydown&&e.handleKeydown(...t)},[B(`li`,{role:`radio`,class:F([e.ns.e(`list-item`),e.ns.is(`active`,e.isPropAbsent(e.filterValue))]),tabindex:e.checkedIndex===0?0:-1,"aria-checked":e.isPropAbsent(e.filterValue),onClick:t[3]||=t=>e.handleSelect(null,0)},S(e.t(`el.table.clearFilter`)),11,zz),(N(!0),W(R,null,r(e.filters,(t,n)=>(N(),W(`li`,{key:t.value,role:`radio`,class:F([e.ns.e(`list-item`),e.ns.is(`active`,e.isActive(t))]),tabindex:e.checkedIndex===n+1?0:-1,"aria-checked":e.isActive(t),onClick:r=>e.handleSelect(t.value,n+1)},S(t.text),11,Bz))),128))],34))]),default:V(()=>[B(`button`,{type:`button`,class:F(`${e.ns.namespace.value}-table__column-filter-trigger`),"aria-label":e.t(`el.table.filterLabel`,{column:e.column?.label||``})},[J(f,null,{default:V(()=>[I(e.$slots,`filter-icon`,{},()=>[e.column?.filterOpened?(N(),H(u,{key:0})):(N(),H(d,{key:1}))])]),_:3})],10,Vz)]),_:3},8,[`placement`,`popper-class`,`append-to`,`onShow`,`onHide`])}var Uz=$x(Lz,[[`render`,Hz]]);function Wz(e){let t=Xe();De(()=>{n.value.addObserver(t)}),d(()=>{r(n.value),i(n.value)}),C(()=>{r(n.value),i(n.value)}),_(()=>{n.value.removeObserver(t)});let n=K(()=>{let t=e.layout;if(!t)throw Error(`Can not find table layout.`);return t}),r=t=>{let n=e.vnode.el?.querySelectorAll(`colgroup > col`)||[];if(!n.length)return;let r=t.getFlattenColumns(),i={};r.forEach(e=>{i[e.id]=e});for(let e=0,t=n.length;e{let n=e.vnode.el?.querySelectorAll(`colgroup > col[name=gutter]`)||[];for(let e=0,r=n.length;e{e.stopPropagation()},a=(e,t)=>{!t.filters&&t.sortable?h(e,t,!1):t.filterable&&!t.sortable&&i(e),r?.emit(`header-click`,t,e)},o=(e,t)=>{r?.emit(`header-contextmenu`,t,e)},s=q(null),c=q(!1),u=q(),d=(i,a)=>{if(nf&&!(a.children&&a.children.length>0)&&s.value&&e.border&&s.value.id===a.id){c.value=!0;let o=r;t(`set-drag-visible`,!0);let l=(o?.vnode.el)?.getBoundingClientRect().left,d=n?.vnode?.el?.querySelector(`th.${a.id}`),f=d.getBoundingClientRect(),p=f.left-l+30;gp(d,`noclick`),u.value={startMouseLeft:i.clientX,startLeft:f.right-l,startColumnLeft:f.left-l,tableLeft:l};let m=o?.refs.resizeProxy;m.style.left=`${u.value.startLeft}px`,document.onselectstart=function(){return!1},document.ondragstart=function(){return!1};let h=e=>{let t=e.clientX-u.value.startMouseLeft,n=u.value.startLeft+t;m.style.left=`${Math.max(p,n)}px`},g=()=>{if(c.value){let{startColumnLeft:n,startLeft:r}=u.value;a.width=a.realWidth=Number.parseInt(m.style.left,10)-n,o?.emit(`header-dragend`,a.width,r-n,a,i),requestAnimationFrame(()=>{e.store.scheduleLayout(!1,!0)}),document.body.style.cursor=``,c.value=!1,s.value=null,u.value=void 0,t(`set-drag-visible`,!1)}document.removeEventListener(`mousemove`,h),document.removeEventListener(`mouseup`,g),document.onselectstart=null,document.ondragstart=null,setTimeout(()=>{_p(d,`noclick`)},0)};document.addEventListener(`mousemove`,h),document.addEventListener(`mouseup`,g)}},f=(t,n)=>{if(!e.border||n.children&&n.children.length>0)return;let r=t.target,i=Pd(r)?r.closest(`th`):null;if(!i)return;let a=hp(i,`is-sortable`);if(a){let e=c.value?`col-resize`:``;i.style.cursor=e;let t=i.querySelector(`.caret-wrapper`);t&&(t.style.cursor=e)}if(!n.resizable||c.value){s.value=null;return}let o=i.getBoundingClientRect(),l=i.parentNode?.lastElementChild===i,u=e.allowDragLastColumn||!l,d=o.width>12&&o.right-t.clientX<8&&u,f=d?`col-resize`:``;document.body.style.cursor=f,s.value=d?n:null,a&&(i.style.cursor=f)},p=()=>{!nf||c.value||(document.body.style.cursor=``)},m=({order:e,sortOrders:t})=>{if(e===``)return t[0];let n=t.indexOf(e||null);return t[n>t.length-2?0:n+1]},h=(t,n,i)=>{t.stopPropagation();let a=n.order===i?null:i||m(n),o=t.target?.closest(`th`);if(o&&hp(o,`noclick`)){_p(o,`noclick`);return}if(!n.sortable)return;let s=t.currentTarget;if([`ascending`,`descending`].some(e=>hp(s,e)&&!n.sortOrders.includes(e)))return;let c=e.store.states,l=c.sortProp.value,u,d=c.sortingColumn.value;(d!==n||d===n&&ld(d.order))&&(d&&(d.order=null),c.sortingColumn.value=n,l=n.property??null),u=a?n.order=a:n.order=null,c.sortProp.value=l,c.sortOrder.value=u,r?.store.commit(`changeSortCondition`)};return{handleHeaderClick:a,handleHeaderContextMenu:o,handleMouseDown:d,handleMouseMove:f,handleMouseOut:p,handleSortClick:h,handleFilterClick:i}}function Kz(e){let t=l(Nz),r=$(`table`);return{getHeaderRowStyle:e=>{let r=t?.props.headerRowStyle;return n(r)?r.call(null,{rowIndex:e}):r},getHeaderRowClass:e=>{let r=[],i=t?.props.headerRowClassName;return P(i)?r.push(i):n(i)&&r.push(i.call(null,{rowIndex:e})),r.join(` `)},getHeaderCellStyle:(r,i,a,o)=>{let s=t?.props.headerCellStyle??{};n(s)&&(s=s.call(null,{rowIndex:r,columnIndex:i,row:a,column:o}));let c=hz(i,o.fixed,e.store,a);return gz(c,`left`),gz(c,`right`),Object.assign({},s,c)},getHeaderCellClass:(i,a,o,s)=>{let c=pz(r.b(),a,s.fixed,e.store,o),l=[s.id,s.order,s.headerAlign,s.className,s.labelClassName,...c];s.children||l.push(`is-leaf`),s.sortable&&l.push(`is-sortable`);let u=t?.props.headerCellClassName;return P(u)?l.push(u):n(u)&&l.push(u.call(null,{rowIndex:i,columnIndex:a,row:o,column:s})),l.push(r.e(`cell`)),l.filter(e=>!!e).join(` `)}}}var qz=z({name:`ElTableHeader`,components:{ElCheckbox:ok},props:{fixed:{type:String,default:``},store:{required:!0,type:Object},border:Boolean,defaultSort:{type:Object,default:()=>({prop:``,order:``})},appendFilterPanelTo:{type:String},allowDragLastColumn:{type:Boolean}},setup(e,{emit:t}){let n=Xe(),r=l(Nz),i=$(`table`),a=q({}),{onColumnsChange:o,onScrollableChange:s}=Wz(r),c=r?.props.tableLayout===`auto`,u=ve(new Map),f=q(),p,m=()=>{p=setTimeout(()=>{u.size>0&&(u.forEach((e,t)=>{let n=f.value.querySelector(`.${t.replace(/\s/g,`.`)}`);n&&(e.width=n.getBoundingClientRect().width||e.width)}),u.clear())})};M(u,m),T(()=>{p&&=(clearTimeout(p),void 0)}),d(async()=>{await U(),await U();let{prop:t,order:n}=e.defaultSort;r?.store.commit(`sort`,{prop:t,order:n,init:!0}),m()});let{handleHeaderClick:h,handleHeaderContextMenu:g,handleMouseDown:_,handleMouseMove:v,handleMouseOut:y,handleSortClick:b,handleFilterClick:x}=Gz(e,t),{getHeaderRowStyle:S,getHeaderRowClass:C,getHeaderCellStyle:w,getHeaderCellClass:E}=Kz(e),{isGroup:D,toggleAllSelection:O,columnRows:k}=Iz(e),{t:A}=Dp();return n.state={onColumnsChange:o,onScrollableChange:s},n.filterPanels=a,{ns:i,t:A,filterPanels:a,onColumnsChange:o,onScrollableChange:s,columnRows:k,getHeaderRowClass:C,getHeaderRowStyle:S,getHeaderCellClass:E,getHeaderCellStyle:w,handleHeaderClick:h,handleHeaderContextMenu:g,handleMouseDown:_,handleMouseMove:v,handleMouseOut:y,handleSortClick:b,handleFilterClick:x,isGroup:D,toggleAllSelection:O,saveIndexSelection:u,isTableLayoutAuto:c,theadRef:f,updateFixedColumnStyle:m}},render(){let{ns:e,t,isGroup:n,columnRows:r,getHeaderCellStyle:i,getHeaderCellClass:a,getHeaderRowClass:o,getHeaderRowStyle:s,handleHeaderClick:c,handleHeaderContextMenu:l,handleMouseDown:u,handleMouseMove:d,handleSortClick:f,handleMouseOut:p,store:m,$parent:h,saveIndexSelection:g,isTableLayoutAuto:_}=this,v=1;return Je(`thead`,{ref:`theadRef`,class:e.is(`group`,n)},r.map((e,n)=>Je(`tr`,{class:o(n),key:n,style:s(n)},e.map((r,o)=>{r.rowSpan>v&&(v=r.rowSpan);let s=a(n,o,e,r);return _&&r.fixed&&g.set(s,r),Je(`th`,{class:s,colspan:r.colSpan,key:`${r.id}-thead`,rowspan:r.rowSpan,scope:r.colSpan>1?`colgroup`:`col`,ariaSort:r.sortable?r.order:void 0,style:i(n,o,e,r),onClick:e=>{e.currentTarget?.classList.contains(`noclick`)||c(e,r)},onContextmenu:e=>l(e,r),onMousedown:e=>u(e,r),onMousemove:e=>d(e,r),onMouseout:p},[Je(`div`,{class:[`cell`,r.filteredValue&&r.filteredValue.length>0?`highlight`:``]},[r.renderHeader?r.renderHeader({column:r,$index:o,store:m,_self:h}):r.label,r.sortable&&Je(`button`,{type:`button`,class:`caret-wrapper`,"aria-label":t(`el.table.sortLabel`,{column:r.label||``}),onClick:e=>f(e,r)},[Je(`i`,{onClick:e=>f(e,r,`ascending`),class:`sort-caret ascending`}),Je(`i`,{onClick:e=>f(e,r,`descending`),class:`sort-caret descending`})]),r.filterable&&Je(Uz,{store:m,placement:r.filterPlacement||`bottom-start`,appendTo:h?.appendFilterPanelTo,column:r,upDataColumn:(e,t)=>{r[e]=t}},{"filter-icon":()=>r.renderFilterIcon?r.renderFilterIcon({filterOpened:r.filterOpened}):null})])])}))))}});function Jz(e){let t=l(Nz),n=q(``),r=q(Je(`div`)),i=(n,r,i)=>{let a=t,o=qR(n),s=null,c=a?.vnode.el?.dataset.prefix;o&&(s=ZR({columns:e.store?.states.columns.value??[]},o,c),s&&a?.emit(`cell-${i}`,r,s,o,n)),a?.emit(`row-${i}`,r,s,n)},a=(e,t)=>{i(e,t,`dblclick`)},o=(t,n)=>{e.store?.commit(`setCurrentRow`,n),i(t,n,`click`)},s=(e,t)=>{i(e,t,`contextmenu`)},c=Hu(t=>{e.store?.commit(`setHoverRow`,t)},30),u=Hu(()=>{e.store?.commit(`setHoverRow`,null)},30),d=e=>{let t=window.getComputedStyle(e,null);return{left:Number.parseInt(t.paddingLeft,10)||0,right:Number.parseInt(t.paddingRight,10)||0,top:Number.parseInt(t.paddingTop,10)||0,bottom:Number.parseInt(t.paddingBottom,10)||0}},f=(e,t,n)=>{let r=t?.target?.parentNode;for(;e>1&&(r=r?.nextSibling,!(!r||r.nodeName!==`TR`));)n(r,`hover-row hover-fixed-row`),e--};return{handleDoubleClick:a,handleClick:o,handleContextMenu:s,handleMouseEnter:c,handleMouseLeave:u,handleCellMouseEnter:(n,r,i)=>{if(!t)return;let a=t,o=qR(n),s=a?.vnode.el?.dataset.prefix,c=null;if(o){if(c=ZR({columns:e.store?.states.columns.value??[]},o,s),!c)return;o.rowSpan>1&&f(o.rowSpan,n,gp);let t=a.hoverState={cell:o,column:c,row:r};a?.emit(`cell-mouse-enter`,t.row,t.column,t.cell,n)}if(!i){cz?.trigger===o&&cz?.();return}let l=n.target.querySelector(`.cell`);if(!(hp(l,`${s}-tooltip`)&&l.childNodes.length&&l.textContent?.trim()))return;let u=document.createRange();u.setStart(l,0),u.setEnd(l,l.childNodes.length);let{width:p,height:m}=u.getBoundingClientRect(),{width:h,height:g}=l.getBoundingClientRect(),{top:_,left:v,right:y,bottom:b}=d(l),x=v+y,S=_+b;JS(p+x,h)||JS(m+S,g)||JS(l.scrollWidth,h)?lz(i,(o?.innerText||o?.textContent)??``,r,c,o,a):cz?.trigger===o&&cz?.()},handleCellMouseLeave:e=>{let n=qR(e);if(!n)return;n.rowSpan>1&&f(n.rowSpan,e,_p);let r=t?.hoverState;t?.emit(`cell-mouse-leave`,r?.row,r?.column,r?.cell,e)},tooltipContent:n,tooltipTrigger:r}}function Yz(e){let t=l(Nz),r=$(`table`);return{getRowStyle:(e,r)=>{let i=t?.props.rowStyle;return n(i)?i.call(null,{row:e,rowIndex:r}):i||null},getRowClass:(i,a,o)=>{let s=[r.e(`row`)];t?.props.highlightCurrentRow&&i===e.store?.states.currentRow.value&&s.push(`current-row`),e.stripe&&o%2==1&&s.push(r.em(`row`,`striped`));let c=t?.props.rowClassName;return P(c)?s.push(c):n(c)&&s.push(c.call(null,{row:i,rowIndex:a})),s},getCellStyle:(r,i,a,o)=>{let s=t?.props.cellStyle,c=s??{};n(s)&&(c=s.call(null,{rowIndex:r,columnIndex:i,row:a,column:o}));let l=hz(i,e?.fixed,e.store);return gz(l,`left`),gz(l,`right`),Object.assign({},c,l)},getCellClass:(i,a,o,s,c)=>{let l=pz(r.b(),a,e?.fixed,e.store,void 0,c),u=[s.id,s.align,s.className,...l],d=t?.props.cellClassName;return P(d)?u.push(d):n(d)&&u.push(d.call(null,{rowIndex:i,columnIndex:a,row:o,column:s})),u.push(r.e(`cell`)),u.filter(e=>!!e).join(` `)},getSpan:(e,r,i,a)=>{let o=1,s=1,c=t?.props.spanMethod;if(n(c)){let t=c({row:e,column:r,rowIndex:i,columnIndex:a});A(t)?(o=t[0],s=t[1]):E(t)&&(o=t.rowspan,s=t.colspan)}return{rowspan:o,colspan:s}},getColspanRealWidth:(e,t,n)=>{if(t<1)return e[n].realWidth;let r=e.map(({realWidth:e,width:t})=>e||t).slice(n,n+t);return Number(r.reduce((e,t)=>Number(e)+Number(t),-1))}}}var Xz=[`colspan`,`rowspan`],Zz=z({name:`TableTdWrapper`,__name:`td-wrapper`,props:{colspan:{type:Number,default:1},rowspan:{type:Number,default:1}},setup(e){return(t,n)=>(N(),W(`td`,{colspan:e.colspan,rowspan:e.rowspan},[I(t.$slots,`default`)],8,Xz))}});function Qz(e){let t=l(Nz),n=$(`table`),{handleDoubleClick:r,handleClick:i,handleContextMenu:a,handleMouseEnter:o,handleMouseLeave:s,handleCellMouseEnter:c,handleCellMouseLeave:u,tooltipContent:d,tooltipTrigger:f}=Jz(e),{getRowStyle:p,getRowClass:m,getCellStyle:h,getCellClass:g,getSpan:_,getColspanRealWidth:v}=Yz(e),y=-1,b=K(()=>e.store?.states.columns.value.findIndex(({type:e})=>e==="default")),x=(e,n)=>{let r=t?.props?.rowKey;return r?QR(e,r):n},S=(l,d,f,S=!1)=>{let{tooltipEffect:w,tooltipOptions:T,store:E}=e,{indent:D,columns:O}=E.states,k=[],A=!0;return f&&(k.push(n.em(`row`,`level-${f.level}`)),A=!!f.display),d===0&&(y=-1),e.stripe&&A&&y++,k.push(...m(l,d,y)),Je(`tr`,{style:[A?null:{display:`none`},p(l,d)],class:k,key:x(l,d),onDblclick:e=>r(e,l),onClick:e=>i(e,l),onContextmenu:e=>a(e,l),onMouseenter:()=>o(d),onMouseleave:s},O.value.map((n,r)=>{let{rowspan:i,colspan:a}=_(l,n,d,r);if(!i||!a)return null;let o=Object.assign({},n);o.realWidth=v(O.value,a,r);let s={store:E,_self:e.context||t,column:o,row:l,$index:d,cellIndex:r,expanded:S};r===b.value&&f&&(s.treeNode={indent:f.level&&f.level*D.value,level:f.level},jd(f.expanded)&&(s.treeNode.expanded=f.expanded,`loading`in f&&(s.treeNode.loading=f.loading),`noLazyChildren`in f&&(s.treeNode.noLazyChildren=f.noLazyChildren)));let p=`${x(l,d)},${r}`,m=o.columnKey||o.rawColumnKey||``,y=n.showOverflowTooltip&&dd({effect:w},T,n.showOverflowTooltip);return Je(Zz,{style:h(d,r,l,n),class:g(d,r,l,n,a-1),key:`${m}${p}`,rowspan:i,colspan:a,onMouseenter:e=>c(e,l,y),onMouseleave:u},{default:()=>C(r,n,s)})}))},C=(e,t,n)=>t.renderCell(n);return{wrappedRowRender:(r,i)=>{let a=e.store,{isRowExpanded:o,assertRowKey:s}=a,{treeData:c,lazyTreeNodeMap:l,childrenColumnName:u,rowKey:d}=a.states,f=a.states.columns.value;if(f.some(({type:e})=>e===`expand`)){let e=o(r),s=S(r,i,void 0,e),c=t?.renderExpanded;if(!c)return console.error(`[Element Error]renderExpanded is required.`),s;let l=[[s]];return(t.props.preserveExpandedContent||e)&&l[0].push(Je(`tr`,{key:`expanded-row__${s.key}`,style:{display:e?``:`none`}},[Je(`td`,{colspan:f.length,class:`${n.e(`cell`)} ${n.e(`expanded-cell`)}`},[c({row:r,$index:i,store:a,expanded:e})])])),l}else if(Object.keys(c.value).length){s();let e=QR(r,d.value),t=c.value[e],n=null;t&&(n={expanded:t.expanded,level:t.level,display:!0,noLazyChildren:void 0,loading:void 0},jd(t.lazy)&&(n&&jd(t.loaded)&&t.loaded&&(n.noLazyChildren=!(t.children&&t.children.length)),n.loading=t.loading));let a=[S(r,i,n??void 0)];if(t){let n=0,o=(e,r)=>{e&&e.length&&r&&e.forEach(e=>{let s={display:r.display&&r.expanded,level:r.level+1,expanded:!1,noLazyChildren:!1,loading:!1},f=QR(e,d.value);if(Fd(f))throw Error(`For nested data item, row-key is required.`);t={...c.value[f]},t&&(s.expanded=t.expanded,t.level=t.level||s.level,t.display=!!(t.expanded&&s.display),jd(t.lazy)&&(jd(t.loaded)&&t.loaded&&(s.noLazyChildren=!(t.children&&t.children.length)),s.loading=t.loading)),n++,a.push(S(e,i+n,s)),t&&o(l.value[f]||e[u.value],t)})};t.display=!0,o(l.value[e]||r[u.value],t)}return a}else return S(r,i,void 0)},tooltipContent:d,tooltipTrigger:f}}var $z=z({name:`ElTableBody`,props:{store:{required:!0,type:Object},stripe:Boolean,tooltipEffect:String,tooltipOptions:{type:Object},context:{default:()=>({}),type:Object},rowClassName:[String,Function],rowStyle:[Object,Function],fixed:{type:String,default:``},highlight:Boolean},setup(e){let t=Xe(),n=l(Nz),r=$(`table`),{wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}=Qz(e),{onColumnsChange:s,onScrollableChange:c}=Wz(n),u=[];return M(e.store?.states.hoverRow,(n,i)=>{let a=t?.vnode.el,o=Array.from(a?.children||[]).filter(e=>e?.classList.contains(`${r.e(`row`)}`)),s=n,c=o[s]?.childNodes;if(c?.length){let e=0;Array.from(c).reduce((t,n,r)=>(c[r]?.colSpan>1&&(e=c[r]?.colSpan),n.nodeName!==`TD`&&e===0&&t.push(r),e>0&&e--,t),[]).forEach(e=>{for(s=n;s>0;){let t=o[s-1]?.childNodes;if(t[e]&&t[e].nodeName===`TD`&&t[e].rowSpan>1){gp(t[e],`hover-cell`),u.push(t[e]);break}s--}})}else u.forEach(e=>_p(e,`hover-cell`)),u.length=0;!e.store?.states.isComplex.value||!nf||Np(()=>{let e=o[i],t=o[n];e&&!e.classList.contains(`hover-fixed-row`)&&_p(e,`hover-row`),t&&gp(t,`hover-row`)})}),_(()=>{cz?.()}),{ns:r,onColumnsChange:s,onScrollableChange:c,wrappedRowRender:i,tooltipContent:a,tooltipTrigger:o}},render(){let{wrappedRowRender:e,store:t}=this;return Je(`tbody`,{tabIndex:-1},[(t?.states.data.value||[]).reduce((t,n)=>t.concat(e(n,t.length)),[])])}});function eB(){let e=l(Nz)?.store;return{leftFixedLeafCount:K(()=>e?.states.fixedLeafColumnsLength.value??0),rightFixedLeafCount:K(()=>e?.states.rightFixedColumns.value.length??0),columnsCount:K(()=>e?.states.columns.value.length??0),leftFixedCount:K(()=>e?.states.fixedColumns.value.length??0),rightFixedCount:K(()=>e?.states.rightFixedColumns.value.length??0),columns:K(()=>e?.states.columns.value??[])}}function tB(e){let{columns:t}=eB(),n=$(`table`);return{getCellClasses:(t,r)=>{let i=t[r],a=[n.e(`cell`),i.id,i.align,i.labelClassName,...pz(n.b(),r,i.fixed,e.store)];return i.className&&a.push(i.className),i.children||a.push(n.is(`leaf`)),a},getCellStyles:(t,n)=>{let r=hz(n,t.fixed,e.store);return gz(r,`left`),gz(r,`right`),r},columns:t}}var nB=z({name:`ElTableFooter`,props:{fixed:{type:String,default:``},store:{required:!0,type:Object},summaryMethod:Function,sumText:String,border:Boolean,defaultSort:{type:Object,default:()=>({prop:``,order:``})}},setup(e){let t=l(Nz),n=$(`table`),{getCellClasses:r,getCellStyles:i,columns:a}=tB(e),{onScrollableChange:o,onColumnsChange:s}=Wz(t);return{ns:n,onScrollableChange:o,onColumnsChange:s,getCellClasses:r,getCellStyles:i,columns:a}},render(){let{columns:e,getCellStyles:t,getCellClasses:n,summaryMethod:r,sumText:i}=this,a=this.store.states.data.value,o=[];return r?o=r({columns:e,data:a}):e.forEach((e,t)=>{if(t===0){o[t]=i;return}let n=a.map(t=>Number(t[e.property])),r=[],s=!0;n.forEach(e=>{if(!Number.isNaN(+e)){s=!1;let t=`${e}`.split(`.`)[1];r.push(t?t.length:0)}});let c=Math.max.apply(null,r);s?o[t]=``:o[t]=n.reduce((e,t)=>{let n=Number(t);return Number.isNaN(+n)?e:Number.parseFloat((e+t).toFixed(Math.min(c,20)))},0)}),Je(Je(`tfoot`,[Je(`tr`,{},[...e.map((r,i)=>Je(`td`,{key:i,colspan:r.colSpan,rowspan:r.rowSpan,class:n(e,i),style:t(r,i)},[Je(`div`,{class:[`cell`,r.labelClassName]},[o[i]])]))])]))}});function rB(e){return{setCurrentRow:t=>{e.commit(`setCurrentRow`,t)},getSelectionRows:()=>e.getSelectionRows(),getHalfSelectionRows:()=>e.getHalfSelectionRows(),toggleRowSelection:(t,n,r=!0)=>{e.toggleRowSelection(t,n,!1,r),e.updateAllSelected()},clearSelection:()=>{e.clearSelection()},clearFilter:t=>{e.clearFilter(t)},toggleAllSelection:()=>{e.commit(`toggleAllSelection`)},toggleRowExpansion:(t,n)=>{e.toggleRowExpansionAdapter(t,n)},clearSort:()=>{e.clearSort()},sort:(t,n)=>{e.commit(`sort`,{prop:t,order:n})},updateKeyChildren:(t,n)=>{e.updateKeyChildren(t,n)}}}function iB(t,n,r,i){let a=q(!1),o=q(null),s=q(!1),c=e=>{s.value=e},l=q({width:null,height:null,headerHeight:null}),u=q(!1),f={display:`inline-block`,verticalAlign:`middle`},p=q(),m=q(0),h=q(0),g=q(0),_=q(0),v=q(0);M(()=>t.height,e=>{n.setHeight(e??null)},{immediate:!0}),M(()=>t.maxHeight,e=>{n.setMaxHeight(e??null)},{immediate:!0}),M(()=>[t.currentRowKey,r.states.rowKey],([e,t])=>{!Y(t)||!Y(e)||r.setCurrentRowKey(`${e}`)},{immediate:!0}),M(()=>t.data,e=>{i.store.commit(`setData`,e)},{immediate:!0,deep:!0}),e(()=>{t.expandRowKeys&&r.setExpandRowKeysAdapter(t.expandRowKeys)});let y=()=>{i.store.commit(`setHoverRow`,null),i.hoverState&&=null},b=(e,t)=>{let{pixelX:n,pixelY:r}=t;Math.abs(n)>=Math.abs(r)&&(i.refs.bodyWrapper.scrollLeft+=t.pixelX/5)},x=K(()=>t.height||t.maxHeight||r.states.fixedColumns.value.length>0||r.states.rightFixedColumns.value.length>0),S=K(()=>({width:n.bodyWidth.value?`${n.bodyWidth.value}px`:``})),C=()=>{x.value&&n.updateElsHeight(),n.updateColumnsWidth(),!(typeof window>`u`)&&requestAnimationFrame(D)};d(async()=>{await U(),r.updateColumns(),O(),requestAnimationFrame(C);let e=i.vnode.el,n=i.refs.headerWrapper;t.flexible&&e&&e.parentElement&&(e.parentElement.style.minWidth=`0`),l.value={width:p.value=e.offsetWidth,height:e.offsetHeight,headerHeight:t.showHeader&&n?n.offsetHeight:null},r.states.columns.value.forEach(e=>{e.filteredValue&&e.filteredValue.length&&i.store.commit(`filterChange`,{column:e,values:e.filteredValue,silent:!0})}),i.$ready=!0});let w=(e,t)=>{if(!e)return;let r=Array.from(e.classList).filter(e=>!e.startsWith(`is-scrolling-`));r.push(n.scrollX.value?t:`is-scrolling-none`),e.className=r.join(` `)},T=e=>{let{tableWrapper:t}=i.refs;w(t,e)},E=e=>{let{tableWrapper:t}=i.refs;return!!(t&&t.classList.contains(e))},D=function(){if(!i.refs.scrollBarRef)return;if(!n.scrollX.value){let e=`is-scrolling-none`;E(e)||T(e);return}let e=i.refs.scrollBarRef.wrapRef;if(!e)return;let{scrollLeft:t,offsetWidth:r,scrollWidth:a}=e,{headerWrapper:o,footerWrapper:s}=i.refs;o&&(o.scrollLeft=t),s&&(s.scrollLeft=t),t>=a-r-1?T(`is-scrolling-right`):T(t===0?`is-scrolling-left`:`is-scrolling-middle`)},O=()=>{i.refs.scrollBarRef&&(i.refs.scrollBarRef.wrapRef&&kf(i.refs.scrollBarRef.wrapRef,`scroll`,D,{passive:!0}),t.fit?Uf(i.vnode.el,k):kf(window,`resize`,k),Uf(i.refs.tableInnerWrapper,()=>{k(),i.refs?.scrollBarRef?.update()}))},k=()=>{let e=i.vnode.el;if(!i.$ready||!e)return;let n=!1,{width:r,height:a,headerHeight:o}=l.value,s=p.value=e.offsetWidth;r!==s&&(n=!0);let c=e.offsetHeight;(t.height||x.value)&&a!==c&&(n=!0);let u=t.tableLayout===`fixed`?i.refs.headerWrapper:i.refs.tableHeaderRef?.$el;t.showHeader&&u?.offsetHeight!==o&&(n=!0),m.value=i.refs.tableWrapper?.scrollHeight||0,g.value=u?.scrollHeight||0,_.value=i.refs.footerWrapper?.offsetHeight||0,v.value=i.refs.appendWrapper?.offsetHeight||0,h.value=m.value-g.value-_.value-v.value,n&&(l.value={width:s,height:c,headerHeight:t.showHeader&&u?.offsetHeight||0},C())},A=cb(),ee=K(()=>{let{bodyWidth:e,scrollY:t,gutterWidth:r}=n;return e.value?`${e.value-(t.value?r:0)}px`:``}),j=K(()=>t.maxHeight?`fixed`:t.tableLayout);return{isHidden:a,renderExpanded:o,setDragVisible:c,isGroup:u,handleMouseLeave:y,handleHeaderFooterMousewheel:b,tableSize:A,emptyBlockStyle:K(()=>{if(t.data&&t.data.length)return;let e=`100%`;t.height&&h.value&&(e=`${h.value}px`);let n=p.value;return{width:n?`${n}px`:``,height:e}}),resizeProxyVisible:s,bodyWidth:ee,resizeState:l,doLayout:C,tableBodyStyles:S,tableLayout:j,scrollbarViewStyle:f,scrollbarStyle:K(()=>t.height?{height:`100%`}:t.maxHeight?Number.isNaN(Number(t.maxHeight))?{maxHeight:`calc(${t.maxHeight} - ${g.value+_.value}px)`}:{maxHeight:`${+t.maxHeight-g.value-_.value}px`}:{})}}function aB(e){let t,n=()=>{let n=e.vnode.el.querySelector(`.hidden-columns`),r={childList:!0,subtree:!0},i=e.store.states.updateOrderFns;t=new MutationObserver(()=>{i.forEach(e=>e())}),t.observe(n,r)};d(()=>{n()}),_(()=>{t?.disconnect()})}function oB(e){let t=e.tableLayout===`auto`,n=e.columns||[];t&&n.every(({width:e})=>Ad(e))&&(n=[]);let r=n=>{let r={key:`${e.tableLayout}_${n.id}`,style:{},name:void 0};return t?r.style={width:`${n.width}px`}:r.name=n.id,r};return Je(`colgroup`,{},n.map(e=>Je(`col`,r(e))))}oB.props=[`columns`,`tableLayout`];var sB=()=>{let e=q(),t=(t,n)=>{let r=e.value;r&&r.scrollTo(t,n)},n=(t,n)=>{let r=e.value;r&&Md(n)&&[`Top`,`Left`].includes(t)&&r[`setScroll${t}`](n)};return{scrollBarRef:e,scrollTo:t,setScrollTop:e=>n(`Top`,e),setScrollLeft:e=>n(`Left`,e)}},cB=[`data-prefix`],lB={ref:`hiddenColumns`,class:`hidden-columns`},uB=z({name:`ElTable`,__name:`table`,props:HR,emits:[`select`,`select-all`,`selection-change`,`cell-mouse-enter`,`cell-mouse-leave`,`cell-dblclick`,`cell-contextmenu`,`cell-click`,`row-dblclick`,`row-click`,`row-contextmenu`,`header-click`,`header-contextmenu`,`sort-change`,`filter-change`,`current-change`,`header-dragend`,`expand-change`,`scroll`],setup(e,{expose:t}){let n=e,{t:r}=Dp(),i=$(`table`),a=FC(`table`),o=Xe();Qe(Nz,o);let s=Oz(o,n);o.store=s;let c=new Mz({store:o.store,table:o,fit:n.fit,showHeader:n.showHeader});o.layout=c;let l=K(()=>(s.states.data.value||[]).length===0),{setCurrentRow:u,getSelectionRows:d,getHalfSelectionRows:f,toggleRowSelection:p,clearSelection:h,clearFilter:g,toggleAllSelection:_,toggleRowExpansion:v,clearSort:y,sort:b,updateKeyChildren:x}=rB(s),{isHidden:C,renderExpanded:w,setDragVisible:E,isGroup:D,handleMouseLeave:O,handleHeaderFooterMousewheel:k,tableSize:A,emptyBlockStyle:ee,resizeProxyVisible:j,bodyWidth:M,resizeState:P,doLayout:te,tableBodyStyles:ne,tableLayout:re,scrollbarViewStyle:ie,scrollbarStyle:ae}=iB(n,c,s,o),{scrollBarRef:oe,scrollTo:L,setScrollLeft:se,setScrollTop:ce}=sB(),le=Hu(te,50),ue=GR(i.namespace.value),de=o;o.tableId=ue,o.state={isGroup:D,resizeState:P,doLayout:te,debouncedUpdateLayout:le};let fe=K(()=>n.sumText??r(`el.table.sumText`)),pe=K(()=>n.emptyText??r(`el.table.emptyText`)),me=K(()=>n.tooltipEffect??a.value?.tooltipEffect),R=K(()=>n.tooltipOptions??a.value?.tooltipOptions),he=K(()=>Fz(s.states.originColumns.value)[0]);return aB(o),T(()=>{le.cancel()}),t({ns:i,layout:c,store:s,columns:he,handleHeaderFooterMousewheel:k,handleMouseLeave:O,tableId:ue,tableSize:A,isHidden:C,isEmpty:l,renderExpanded:w,resizeProxyVisible:j,resizeState:P,isGroup:D,bodyWidth:M,tableBodyStyles:ne,emptyBlockStyle:ee,debouncedUpdateLayout:le,setCurrentRow:u,getSelectionRows:d,getHalfSelectionRows:f,toggleRowSelection:p,clearSelection:h,clearFilter:g,toggleAllSelection:_,toggleRowExpansion:v,clearSort:y,doLayout:te,sort:b,updateKeyChildren:x,t:r,setDragVisible:E,context:de,computedSumText:fe,computedEmptyText:pe,computedTooltipEffect:me,computedTooltipOptions:R,tableLayout:re,scrollbarViewStyle:ie,scrollbarStyle:ae,scrollBarRef:oe,scrollTo:L,setScrollLeft:se,setScrollTop:ce,allowDragLastColumn:n.allowDragLastColumn}),(t,n)=>(N(),W(`div`,{ref:`tableWrapper`,class:F([{[Y(i).m(`fit`)]:e.fit,[Y(i).m(`striped`)]:e.stripe,[Y(i).m(`border`)]:e.border||Y(D),[Y(i).m(`hidden`)]:Y(C),[Y(i).m(`group`)]:Y(D),[Y(i).m(`fluid-height`)]:e.maxHeight,[Y(i).m(`scrollable-x`)]:Y(c).scrollX.value,[Y(i).m(`scrollable-y`)]:Y(c).scrollY.value,[Y(i).m(`enable-row-hover`)]:!Y(s).states.isComplex.value,[Y(i).m(`enable-row-transition`)]:(Y(s).states.data.value||[]).length!==0&&(Y(s).states.data.value||[]).length<100,"has-footer":e.showSummary},Y(i).m(Y(A)),e.className,Y(i).b(),Y(i).m(`layout-${Y(re)}`)]),style:m(e.style),"data-prefix":Y(i).namespace.value,onMouseleave:n[1]||=(...e)=>Y(O)&&Y(O)(...e)},[B(`div`,{ref:`tableInnerWrapper`,class:F(Y(i).e(`inner-wrapper`))},[B(`div`,lB,[I(t.$slots,`default`)],512),e.showHeader&&Y(re)===`fixed`?Ge((N(),W(`div`,{key:0,ref:`headerWrapper`,class:F(Y(i).e(`header-wrapper`))},[B(`table`,{ref:`tableHeader`,class:F(Y(i).e(`header`)),style:m(Y(ne)),border:`0`,cellpadding:`0`,cellspacing:`0`},[J(Y(oB),{columns:Y(s).states.columns.value,"table-layout":Y(re)},null,8,[`columns`,`table-layout`]),J(Y(qz),{ref:`tableHeaderRef`,border:e.border,"default-sort":e.defaultSort,store:Y(s),"append-filter-panel-to":e.appendFilterPanelTo,"allow-drag-last-column":e.allowDragLastColumn,onSetDragVisible:Y(E)},null,8,[`border`,`default-sort`,`store`,`append-filter-panel-to`,`allow-drag-last-column`,`onSetDragVisible`])],6)],2)),[[Y(zT),Y(k)]]):G(`v-if`,!0),B(`div`,{ref:`bodyWrapper`,class:F(Y(i).e(`body-wrapper`))},[J(Y(tC),{ref_key:`scrollBarRef`,ref:oe,"view-style":Y(ie),"wrap-style":Y(ae),always:e.scrollbarAlwaysOn,tabindex:e.scrollbarTabindex,native:e.nativeScrollbar,onScroll:n[0]||=e=>t.$emit(`scroll`,e)},{default:V(()=>[B(`table`,{ref:`tableBody`,class:F(Y(i).e(`body`)),cellspacing:`0`,cellpadding:`0`,border:`0`,style:m({width:Y(M),tableLayout:Y(re)})},[J(Y(oB),{columns:Y(s).states.columns.value,"table-layout":Y(re)},null,8,[`columns`,`table-layout`]),e.showHeader&&Y(re)===`auto`?(N(),H(Y(qz),{key:0,ref:`tableHeaderRef`,class:F(Y(i).e(`body-header`)),border:e.border,"default-sort":e.defaultSort,store:Y(s),"append-filter-panel-to":e.appendFilterPanelTo,onSetDragVisible:Y(E)},null,8,[`class`,`border`,`default-sort`,`store`,`append-filter-panel-to`,`onSetDragVisible`])):G(`v-if`,!0),J(Y($z),{context:Y(de),highlight:e.highlightCurrentRow,"row-class-name":e.rowClassName,"tooltip-effect":me.value,"tooltip-options":R.value,"row-style":e.rowStyle,store:Y(s),stripe:e.stripe},null,8,[`context`,`highlight`,`row-class-name`,`tooltip-effect`,`tooltip-options`,`row-style`,`store`,`stripe`]),e.showSummary&&Y(re)===`auto`?(N(),H(Y(nB),{key:1,class:F(Y(i).e(`body-footer`)),border:e.border,"default-sort":e.defaultSort,store:Y(s),"sum-text":fe.value,"summary-method":e.summaryMethod},null,8,[`class`,`border`,`default-sort`,`store`,`sum-text`,`summary-method`])):G(`v-if`,!0)],6),l.value?(N(),W(`div`,{key:0,ref:`emptyBlock`,style:m(Y(ee)),class:F(Y(i).e(`empty-block`))},[B(`span`,{class:F(Y(i).e(`empty-text`))},[I(t.$slots,`empty`,{},()=>[Ke(S(pe.value),1)])],2)],6)):G(`v-if`,!0),t.$slots.append?(N(),W(`div`,{key:1,ref:`appendWrapper`,class:F(Y(i).e(`append-wrapper`))},[I(t.$slots,`append`)],2)):G(`v-if`,!0)]),_:3},8,[`view-style`,`wrap-style`,`always`,`tabindex`,`native`])],2),e.showSummary&&Y(re)===`fixed`?Ge((N(),W(`div`,{key:1,ref:`footerWrapper`,class:F(Y(i).e(`footer-wrapper`))},[B(`table`,{class:F(Y(i).e(`footer`)),cellspacing:`0`,cellpadding:`0`,border:`0`,style:m(Y(ne))},[J(Y(oB),{columns:Y(s).states.columns.value,"table-layout":Y(re)},null,8,[`columns`,`table-layout`]),J(Y(nB),{border:e.border,"default-sort":e.defaultSort,store:Y(s),"sum-text":fe.value,"summary-method":e.summaryMethod},null,8,[`border`,`default-sort`,`store`,`sum-text`,`summary-method`])],6)],2)),[[jt,!l.value],[Y(zT),Y(k)]]):G(`v-if`,!0),e.border||Y(D)?(N(),W(`div`,{key:2,class:F(Y(i).e(`border-left-patch`))},null,2)):G(`v-if`,!0)],2),Ge(B(`div`,{ref:`resizeProxy`,class:F(Y(i).e(`column-resize-proxy`))},null,2),[[jt,Y(j)]])],46,cB))}}),dB={type:{type:String,default:`default`},label:String,className:String,labelClassName:String,property:String,prop:String,width:{type:[String,Number],default:``},minWidth:{type:[String,Number],default:``},renderHeader:Function,sortable:{type:[Boolean,String],default:!1},sortMethod:Function,sortBy:[String,Function,Array],resizable:{type:Boolean,default:!0},columnKey:String,align:String,headerAlign:String,showOverflowTooltip:{type:[Boolean,Object],default:void 0},tooltipFormatter:Function,fixed:[Boolean,String],formatter:Function,selectable:Function,reserveSelection:Boolean,filterMethod:Function,filteredValue:Array,filters:Array,filterPlacement:String,filterMultiple:{type:Boolean,default:!0},filterClassName:String,index:[Number,Function],sortOrders:{type:Array,default:()=>[`ascending`,`descending`,null],validator:e=>e.every(e=>[`ascending`,`descending`,null].includes(e))}},fB={selection:`table-column--selection`,expand:`table__expand-column`},pB={default:{order:``},selection:{width:48,minWidth:48,realWidth:48,order:``},expand:{width:48,minWidth:48,realWidth:48,order:``},index:{width:48,minWidth:48,realWidth:48,order:``}},mB=e=>fB[e]||``,hB={selection:{renderHeader({store:e}){function t(){return e.states.data.value&&e.states.data.value.length===0}return Je(ok,{disabled:t(),size:e.states.tableSize.value,indeterminate:e.states.selection.value.length>0&&!e.states.isAllSelected.value,"onUpdate:modelValue":e.toggleAllSelection??void 0,modelValue:e.states.isAllSelected.value,ariaLabel:e.t(`el.table.selectAllLabel`)})},renderCell({row:e,column:t,store:n,$index:r}){return Je(ok,{disabled:t.selectable?!t.selectable.call(null,e,r):!1,size:n.states.tableSize.value,onChange:()=>{n.commit(`rowSelectedChanged`,e)},onClick:e=>e.stopPropagation(),modelValue:n.isSelected(e),indeterminate:n.getRowIndeterminate(e),ariaLabel:n.t(`el.table.selectRowLabel`)})},sortable:!1,resizable:!1},index:{renderHeader({column:e}){return e.label||`#`},renderCell({column:e,$index:t}){let r=t+1,i=e.index;return Md(i)?r=t+i:n(i)&&(r=i(t)),Je(`div`,{},[r])},sortable:!1},expand:{renderHeader({column:e}){return e.label||``},renderCell({column:e,row:t,store:n,expanded:r,$index:i}){let{ns:a}=n,o=[a.e(`expand-icon`)];!e.renderExpand&&r&&o.push(a.em(`expand-icon`,`expanded`));let s=function(e){e.stopPropagation(),n.toggleRowExpansion(t)},c=n.states.rowExpandable.value?.(t,i)??!0;return c||o.push(a.is(`disabled`)),Je(`button`,{type:`button`,disabled:!c,"aria-label":n.t(r?`el.table.collapseRowLabel`:`el.table.expandRowLabel`),"aria-expanded":r,class:o,onClick:s},{default:()=>e.renderExpand?[e.renderExpand({expanded:r,expandable:c})]:[Je(By,null,{default:()=>[Je(Hv)]})]})},sortable:!1,resizable:!1}};function gB({row:e,column:t,$index:n}){let r=t.property,i=r&&Bd(e,r).value;return t&&t.formatter?t.formatter(e,t,i,n):i?.toString?.()||``}function _B({row:e,treeNode:t,store:n},r=!1){let{ns:i}=n;if(!t)return r?[Je(`span`,{class:i.e(`placeholder`)})]:null;let a=[],o=function(r){r.stopPropagation(),!t.loading&&n.loadOrToggle(e)};if(t.indent&&a.push(Je(`span`,{class:i.e(`indent`),style:{"padding-left":`${t.indent}px`}})),jd(t.expanded)&&!t.noLazyChildren){let e=[i.e(`expand-icon`),t.expanded?i.em(`expand-icon`,`expanded`):``],r=Hv;t.loading&&(r=dy),a.push(Je(`button`,{type:`button`,"aria-label":n.t(t.expanded?`el.table.collapseRowLabel`:`el.table.expandRowLabel`),"aria-expanded":t.expanded,class:e,onClick:o},{default:()=>[Je(By,{class:i.is(`loading`,t.loading)},{default:()=>[Je(r)]})]}))}else a.push(Je(`span`,{class:i.e(`placeholder`)}));return a}function vB(e,t){return e.reduce((e,t)=>(e[t]=t,e),t)}function yB(e,t){let n=Xe();return{registerComplexWatchers:()=>{let r=[`fixed`],i={realWidth:`width`,realMinWidth:`minWidth`},a=vB(r,i);Object.keys(a).forEach(r=>{let a=i[r];Ye(t,a)&&M(()=>t[a],t=>{let i=t;a===`width`&&r===`realWidth`&&(i=tz(t)),a===`minWidth`&&r===`realMinWidth`&&(i=nz(t)),n.columnConfig.value[a]=i,n.columnConfig.value[r]=i;let o=a===`fixed`;e.value.store.scheduleLayout(o)})})},registerNormalWatchers:()=>{let r=[`label`,`filters`,`filterMultiple`,`filteredValue`,`sortable`,`index`,`formatter`,`className`,`labelClassName`,`filterClassName`,`showOverflowTooltip`,`tooltipFormatter`,`resizable`],i=[`showOverflowTooltip`],a={property:`prop`,align:`realAlign`,headerAlign:`realHeaderAlign`},o=vB(r,a);Object.keys(o).forEach(e=>{let r=a[e];Ye(t,r)&&M(()=>t[r],t=>{n.columnConfig.value[e]=t,(e===`filters`||e===`filterMethod`)&&(n.columnConfig.value.filterable=!!(n.columnConfig.value.filters||n.columnConfig.value.filterMethod))})}),i.forEach(r=>{Ye(e.value.props,r)&&M(()=>e.value.props[r],e=>{n.columnConfig.value.type!==`selection`&&Ad(t[r])&&(n.columnConfig.value[r]=e)})});let s=FC(`table`);s.value&&Ye(s.value,`showOverflowTooltip`)&&M(()=>s.value?.showOverflowTooltip,r=>{n.columnConfig.value.type!==`selection`&&(!Ad(t.showOverflowTooltip)||!Ad(e.value.props.showOverflowTooltip)||(n.columnConfig.value.showOverflowTooltip=r))})}}}function bB(t,n,r){let i=Xe(),a=q(``),o=q(!1),s=q(),c=q(),l=$(`table`);e(()=>{s.value=t.align?`is-${t.align}`:null,s.value}),e(()=>{c.value=t.headerAlign?`is-${t.headerAlign}`:s.value,c.value});let u=K(()=>{let e=i.vnode.vParent||i.parent;for(;e&&!e.tableId&&!e.columnId;)e=e.vnode.vParent||e.parent;return e}),d=K(()=>{let{store:e}=i.parent;if(!e)return!1;let{treeData:t}=e.states,n=t.value;return n&&Object.keys(n).length>0}),f=q(tz(t.width)),p=q(nz(t.minWidth)),m=e=>(f.value&&(e.width=f.value),p.value&&(e.minWidth=p.value),!f.value&&p.value&&(e.width=void 0),e.minWidth||=80,e.realWidth=Number(Ad(e.width)?e.minWidth:e.width),e),h=e=>{let t=e.type,n=hB[t]||{};Object.keys(n).forEach(t=>{let r=n[t];t!==`className`&&!Ad(r)&&(e[t]=r)});let r=mB(t);if(r){let t=`${Y(l.namespace)}-${r}`;e.className=e.className?`${e.className} ${t}`:t}return e},g=e=>{A(e)?e.forEach(e=>t(e)):t(e);function t(e){e?.type?.name===`ElTableColumn`&&(e.vParent=i)}};return{columnId:a,realAlign:s,isSubColumn:o,realHeaderAlign:c,columnOrTableParent:u,setColumnWidth:m,setColumnForcedProps:h,setColumnRenders:e=>{t.renderHeader?Jd(`TableColumn`,`Comparing to render-header, scoped-slot header is easier to use. We recommend users to use scoped-slot header.`):e.type!==`selection`&&(e.renderHeader=t=>{if(i.columnConfig.value.label,n.header){let e=n.header(t);if(_z(e))return Je(R,e)}return Ke(e.label)}),n[`filter-icon`]&&(e.renderFilterIcon=e=>I(n,`filter-icon`,e)),n.expand&&(e.renderExpand=e=>I(n,`expand`,e));let a=e.renderCell;return e.type===`expand`?(e.renderCell=e=>Je(`div`,{class:`cell`},[a(e)]),r.value.renderExpanded=e=>n.default?n.default(e):n.default):(a||=gB,e.renderCell=t=>{let i=null;if(n.default){let e=n.default(t);i=e.some(e=>e.type!==Te)?e:a(t)}else i=a(t);let{columns:o}=r.value.store.states,s=o.value.findIndex(e=>e.type==="default"),c=_B(t,d.value&&t.cellIndex===s),u={class:`cell`,style:{}};return e.showOverflowTooltip&&(u.class=`${u.class} ${Y(l.namespace)}-tooltip`,u.style={width:`${(t.column.realWidth||Number(t.column.width))-1}px`}),g(i),Je(`div`,u,[c,i])}),e},getPropsData:(...e)=>e.reduce((e,n)=>(A(n)&&n.forEach(n=>{e[n]=t[n]}),e),{}),getColumnElIndex:(e,t)=>Array.prototype.indexOf.call(e,t),updateColumnOrder:()=>{r.value.store.commit(`updateColumnOrder`,i.columnConfig.value)}}}var xB=z({name:`ElTableColumn`,__name:`index`,props:dB,setup(e){let t=e,n=le(),r=Xe(),i=FC(`table`),a=q({}),o=K(()=>{let e=r.parent;for(;e&&!e.tableId;)e=e.parent;return e}),{registerNormalWatchers:s,registerComplexWatchers:c}=yB(o,t),{columnId:l,isSubColumn:u,realHeaderAlign:f,columnOrTableParent:p,setColumnWidth:m,setColumnForcedProps:h,setColumnRenders:g,getPropsData:_,getColumnElIndex:v,realAlign:y,updateColumnOrder:b}=bB(t,n,o),x=p.value;l.value=KR(`tableId`in x?x.tableId:x.columnId),De(()=>{u.value=o.value!==x;let e=t.type||`default`,n=t.sortable===``?!0:t.sortable,d=e===`selection`?!1:Ad(t.showOverflowTooltip)?x.props.showOverflowTooltip??i.value?.showOverflowTooltip:t.showOverflowTooltip,p=Ad(t.tooltipFormatter)?x.props.tooltipFormatter??i.value?.tooltipFormatter:t.tooltipFormatter,v={...pB[e],id:l.value,type:e,property:t.prop||t.property,align:y,headerAlign:f,showOverflowTooltip:d,tooltipFormatter:p,filterable:t.filters||t.filterMethod,filteredValue:[],filterPlacement:``,filterClassName:``,isColumnGroup:!1,isSubColumn:!1,filterOpened:!1,sortable:n,index:t.index,rawColumnKey:r.vnode.key},b=_([`columnKey`,`label`,`className`,`labelClassName`,`type`,`renderHeader`,`formatter`,`fixed`,`resizable`],[`sortMethod`,`sortBy`,`sortOrders`],[`selectable`,`reserveSelection`],[`filterMethod`,`filters`,`filterMultiple`,`filterOpened`,`filteredValue`,`filterPlacement`,`filterClassName`]);b=ez(v,b),b=iz(g,m,h)(b),a.value=b,s(),c()}),d(()=>{let e=p.value,t=u.value?e.vnode.el?.children:e.refs.hiddenColumns?.children,n=()=>v(t||[],r.vnode.el);a.value.getColumnIndex=n,n()>-1&&o.value.store.commit(`insertColumn`,a.value,u.value?`columnConfig`in e&&e.columnConfig.value:null,b)}),T(()=>{let e=a.value.getColumnIndex;(e?e():-1)>-1&&o.value.store.commit(`removeColumn`,a.value,u.value?`columnConfig`in x&&x.columnConfig.value:null,b)}),r.columnId=l.value,r.columnConfig=a;let S=()=>{try{let e=n.default?.({row:{},column:{},$index:-1}),t=[];if(A(e))for(let n of e)n.type?.name===`ElTableColumn`||n.shapeFlag&2?t.push(n):n.type===R&&A(n.children)&&n.children.forEach(e=>{e?.patchFlag!==1024&&!P(e?.children)&&t.push(e)});return Je(`div`,t)}catch{return Je(`div`,[])}};return(e,t)=>(N(),H(S))}}),SB=Pv(uB,{TableColumn:xB}),CB=Lv(xB),wB={asc:`desc`,desc:`asc`},TB=Symbol(`placeholder`),EB=String,DB={type:Z(Array),required:!0},OB={type:Z(Array)},kB={...OB,required:!0},AB=String,jB={type:Z(Array),default:()=>DS([])},MB={type:Number,required:!0},NB={type:Z([String,Number,Symbol]),default:`id`},PB={type:Z(Object)},FB=Q({class:String,columns:DB,columnsStyles:{type:Z(Object),required:!0},depth:Number,expandColumnKey:AB,estimatedRowHeight:{...eO.estimatedRowHeight,default:void 0},isScrolling:Boolean,onRowExpand:{type:Z(Function)},onRowHover:{type:Z(Function)},onRowHeightChange:{type:Z(Function)},rowData:{type:Z(Object),required:!0},rowEventHandlers:{type:Z(Object)},rowIndex:{type:Number,required:!0},rowKey:NB,style:{type:Z(Object)}}),IB={type:Number,required:!0},LB=Q({class:String,columns:DB,fixedHeaderData:{type:Z(Array)},headerData:{type:Z(Array),required:!0},headerHeight:{type:Z([Number,Array]),default:50},rowWidth:IB,rowHeight:{type:Number,default:50},height:IB,width:IB}),RB=Q({columns:DB,data:kB,fixedData:OB,estimatedRowHeight:FB.estimatedRowHeight,width:MB,height:MB,headerWidth:MB,headerHeight:LB.headerHeight,bodyWidth:MB,rowHeight:MB,cache:XD.cache,useIsScrolling:Boolean,scrollbarAlwaysOn:eO.scrollbarAlwaysOn,scrollbarStartGap:eO.scrollbarStartGap,scrollbarEndGap:eO.scrollbarEndGap,class:EB,style:PB,containerStyle:PB,getRowHeight:{type:Z(Function),required:!0},rowKey:FB.rowKey,onRowsRendered:{type:Z(Function)},onScroll:{type:Z(Function)}}),zB=Q({cache:RB.cache,estimatedRowHeight:FB.estimatedRowHeight,rowKey:NB,headerClass:{type:Z([String,Function])},headerProps:{type:Z([Object,Function])},headerCellProps:{type:Z([Object,Function])},headerHeight:LB.headerHeight,footerHeight:{type:Number,default:0},rowClass:{type:Z([String,Function])},rowProps:{type:Z([Object,Function])},rowHeight:{type:Number,default:50},cellProps:{type:Z([Object,Function])},columns:DB,data:kB,dataGetter:{type:Z(Function)},fixedData:OB,expandColumnKey:FB.expandColumnKey,expandedRowKeys:jB,defaultExpandedRowKeys:jB,class:EB,fixed:Boolean,style:{type:Z(Object)},width:MB,height:MB,maxHeight:Number,useIsScrolling:Boolean,indentSize:{type:Number,default:12},iconSize:{type:Number,default:12},hScrollbarSize:eO.hScrollbarSize,vScrollbarSize:eO.vScrollbarSize,scrollbarAlwaysOn:tO.alwaysOn,sortBy:{type:Z(Object),default:()=>({})},sortState:{type:Z(Object),default:void 0},onColumnSort:{type:Z(Function)},onExpandedRowsChange:{type:Z(Function)},onEndReached:{type:Z(Function)},onRowExpand:FB.onRowExpand,onScroll:RB.onScroll,onRowsRendered:RB.onRowsRendered,rowEventHandlers:FB.rowEventHandlers}),BB=(e,t,n)=>{let r={flexGrow:0,flexShrink:0,...n?{}:{flexGrow:e.flexGrow??0,flexShrink:e.flexShrink??1}},i={...e.style??{},...r,flexBasis:`auto`,width:e.width};return t||(e.maxWidth&&(i.maxWidth=e.maxWidth),e.minWidth&&(i.minWidth=e.minWidth)),i};function VB(e,t,n){let r=K(()=>Y(t).map((e,t)=>({...e,key:e.key??e.dataKey??t}))),i=K(()=>Y(r).filter(e=>!e.hidden)),a=K(()=>Y(i).filter(e=>e.fixed===`left`||e.fixed===!0)),o=K(()=>Y(i).filter(e=>e.fixed===`right`)),s=K(()=>Y(i).filter(e=>!e.fixed)),c=K(()=>{let e=[];return Y(a).forEach(t=>{e.push({...t,placeholderSign:TB})}),Y(s).forEach(t=>{e.push(t)}),Y(o).forEach(t=>{e.push({...t,placeholderSign:TB})}),e}),l=K(()=>Y(a).length||Y(o).length),u=K(()=>Y(r).reduce((t,r)=>(t[r.key]=BB(r,Y(n),e.fixed),t),{})),d=K(()=>Y(i).reduce((e,t)=>e+t.width,0)),f=e=>Y(r).find(t=>t.key===e),p=e=>Y(u)[e],m=(e,t)=>{e.width=t};function h(t){let{key:n}=t.currentTarget.dataset;if(!n)return;let{sortState:r,sortBy:i}=e,a=`asc`;a=E(r)?wB[r[n]]:wB[i.order],e.onColumnSort?.({column:f(n),key:n,order:a})}return{columns:r,columnsStyles:u,columnsTotalWidth:d,fixedColumnsOnLeft:a,fixedColumnsOnRight:o,hasFixedColumns:l,mainColumns:c,normalColumns:s,visibleColumns:i,getColumn:f,getColumnStyle:p,updateColumnWidth:m,onColumnSorted:h}}var HB=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:i})=>{let a=q({scrollLeft:0,scrollTop:0});function o(e){let{scrollTop:i}=e;t.value?.scrollTo(e),n.value?.scrollToTop(i),r.value?.scrollToTop(i)}function s(e){a.value=e,o(e)}function c(e){a.value.scrollTop=e,o(Y(a))}function l(e){a.value.scrollLeft=e,t.value?.scrollTo?.(Y(a))}function u(t){s(t),e.onScroll?.(t)}function d({scrollTop:e}){let{scrollTop:t}=Y(a);e!==t&&c(e)}function f(e,n=`auto`){t.value?.scrollToRow(e,n)}return M(()=>Y(a).scrollTop,(e,t)=>{e>t&&i()}),{scrollPos:a,scrollTo:s,scrollToLeft:l,scrollToTop:c,scrollToRow:f,onScroll:u,onVerticalScroll:d}},UB=(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,tableInstance:i,ns:a,isScrolling:o})=>{let s=Xe(),{emit:c}=s,l=Le(!1),u=q(e.defaultExpandedRowKeys||[]),d=q(-1),f=Le(null),p=q({}),m=q({}),h=Le({}),g=Le({}),_=Le({}),v=K(()=>Md(e.estimatedRowHeight));function y(t){e.onRowsRendered?.(t),t.rowCacheEnd>Y(d)&&(d.value=t.rowCacheEnd)}function b({hovered:e,rowKey:t}){o.value||i.vnode.el.querySelectorAll(`[rowkey="${String(t)}"]`).forEach(t=>{e?t.classList.add(a.is(`hovered`)):t.classList.remove(a.is(`hovered`))})}function x({expanded:t,rowData:n,rowIndex:r,rowKey:o}){let s=[...Y(u)],l=s.indexOf(o);t?l===-1&&s.push(o):l>-1&&s.splice(l,1),u.value=s,c(`update:expandedRowKeys`,s),e.onRowExpand?.({expanded:t,rowData:n,rowIndex:r,rowKey:o}),e.onExpandedRowsChange?.(s),i.vnode.el.querySelector(`.${a.is(`hovered`)}[rowkey="${String(o)}"]`)&&U(()=>b({hovered:!0,rowKey:o}))}let S=Hu(()=>{l.value=!0,p.value={...Y(p),...Y(m)},C(Y(f),!1),m.value={},f.value=null,t.value?.forceUpdate(),n.value?.forceUpdate(),r.value?.forceUpdate(),s.proxy?.$forceUpdate(),l.value=!1},0);function C(e,i=!1){Y(v)&&[t,n,r].forEach(t=>{let n=Y(t);n&&n.resetAfterRowIndex(e,i)})}function w(e,t,n){let r=Y(f);(r===null||r>n)&&(f.value=n),m.value[e]=t}function T({rowKey:e,height:t,rowIndex:n},r){r?r===`right`?_.value[e]=t:h.value[e]=t:g.value[e]=t;let i=Math.max(...[h,_,g].map(t=>t.value[e]||0));Y(p)[e]!==i&&(w(e,i,n),S())}return{expandedRowKeys:u,lastRenderedRowIndex:d,isDynamic:v,isResetting:l,rowHeights:p,resetAfterIndex:C,onRowExpanded:x,onRowHovered:b,onRowsRendered:y,onRowHeightChange:T}},WB=(e,{expandedRowKeys:t,lastRenderedRowIndex:n,resetAfterIndex:r})=>{let i=q({}),a=K(()=>{let n={},{data:r,rowKey:a}=e,o=Y(t);if(!o||!o.length)return r;let s=[],c=new Set;o.forEach(e=>c.add(e));let l=r.slice();for(l.forEach(e=>n[e[a]]=0);l.length>0;){let e=l.shift();s.push(e),c.has(e[a])&&A(e.children)&&e.children.length>0&&(l=[...e.children,...l],e.children.forEach(t=>n[t[a]]=n[e[a]]+1))}return i.value=n,s}),o=K(()=>{let{data:t,expandColumnKey:n}=e;return n?Y(a):t});return M(o,(e,t)=>{e!==t&&(n.value=-1,r(0,!0))}),{data:o,depthMap:i}},GB=(e,t)=>e+t,KB=e=>A(e)?e.reduce(GB,0):e,qB=(e,t,r={})=>n(e)?e(t):e??r,JB=e=>([`width`,`maxWidth`,`minWidth`,`height`].forEach(t=>{e[t]=bp(e[t])}),e),YB=e=>s(e)?t=>Je(e,t):e,XB=(e,{columnsTotalWidth:t,rowsHeight:n,fixedColumnsOnLeft:r,fixedColumnsOnRight:i})=>{let a=K(()=>{let{fixed:n,width:r,vScrollbarSize:i}=e,a=r-i;return n?Math.max(Math.round(Y(t)),a):a}),o=K(()=>{let{height:t=0,maxHeight:r=0,footerHeight:i,hScrollbarSize:a}=e;if(r>0){let e=Y(f),t=Y(n),o=Y(d)+e+t+a;return Math.min(o,r-i)}return t-i}),s=K(()=>{let{maxHeight:t}=e,r=Y(o);if(Md(t)&&t>0)return r;let i=Y(n)+Y(d)+Y(f);return Math.min(r,i)}),c=e=>e.width,l=K(()=>KB(Y(r).map(c))),u=K(()=>KB(Y(i).map(c))),d=K(()=>KB(e.headerHeight)),f=K(()=>(e.fixedData?.length||0)*e.rowHeight),p=K(()=>Y(o)-Y(d)-Y(f)),m=K(()=>{let{style:t={},height:n,width:r}=e;return JB({...t,height:n,width:r})});return{bodyWidth:a,fixedTableHeight:s,mainTableHeight:o,leftTableWidth:l,rightTableWidth:u,windowHeight:p,footerHeight:K(()=>JB({height:e.footerHeight})),emptyStyle:K(()=>({top:bp(Y(d)),bottom:bp(e.footerHeight),width:bp(e.width)})),rootStyle:m,headerHeight:d}};function ZB(e){let t=q(),n=q(),r=q(),{columns:i,columnsStyles:a,columnsTotalWidth:o,fixedColumnsOnLeft:s,fixedColumnsOnRight:c,hasFixedColumns:l,mainColumns:u,onColumnSorted:d}=VB(e,we(e,`columns`),we(e,`fixed`)),{scrollTo:f,scrollToLeft:p,scrollToTop:m,scrollToRow:h,onScroll:g,onVerticalScroll:_,scrollPos:v}=HB(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,onMaybeEndReached:pe}),y=$(`table-v2`),b=Xe(),x=Le(!1),{expandedRowKeys:S,lastRenderedRowIndex:C,isDynamic:w,isResetting:T,rowHeights:E,resetAfterIndex:D,onRowExpanded:O,onRowHeightChange:k,onRowHovered:ee,onRowsRendered:j}=UB(e,{mainTableRef:t,leftTableRef:n,rightTableRef:r,tableInstance:b,ns:y,isScrolling:x}),{data:N,depthMap:P}=WB(e,{expandedRowKeys:S,lastRenderedRowIndex:C,resetAfterIndex:D}),te=K(()=>{let{estimatedRowHeight:t,rowHeight:n}=e,r=Y(N);return Md(t)?Object.values(Y(E)).reduce((e,t)=>e+t,0):r.length*n}),{bodyWidth:ne,fixedTableHeight:re,mainTableHeight:ie,leftTableWidth:ae,rightTableWidth:F,windowHeight:I,footerHeight:oe,emptyStyle:L,rootStyle:se,headerHeight:ce}=XB(e,{columnsTotalWidth:o,fixedColumnsOnLeft:s,fixedColumnsOnRight:c,rowsHeight:te}),le=q(),ue=K(()=>{let t=Y(N).length===0;return A(e.fixedData)?e.fixedData.length===0&&t:t});function de(t){let{estimatedRowHeight:n,rowHeight:r,rowKey:i}=e;return n?Y(E)[Y(N)[t][i]]||n:r}let fe=q(!1);function pe(){let{onEndReached:t}=e;if(!t)return;let{scrollTop:n}=Y(v),r=Y(te),i=r-(n+Y(I))+e.hScrollbarSize;!fe.value&&Y(C)>=0&&r<=n+Y(ie)-Y(ce)?(fe.value=!0,t(i)):fe.value=!1}return M(()=>Y(te),()=>fe.value=!1),M(()=>e.expandedRowKeys,e=>S.value=e,{deep:!0}),{columns:i,containerRef:le,mainTableRef:t,leftTableRef:n,rightTableRef:r,isDynamic:w,isResetting:T,isScrolling:x,hasFixedColumns:l,columnsStyles:a,columnsTotalWidth:o,data:N,expandedRowKeys:S,depthMap:P,fixedColumnsOnLeft:s,fixedColumnsOnRight:c,mainColumns:u,bodyWidth:ne,emptyStyle:L,rootStyle:se,footerHeight:oe,mainTableHeight:ie,fixedTableHeight:re,leftTableWidth:ae,rightTableWidth:F,showEmpty:ue,getRowHeight:de,onColumnSorted:d,onRowHovered:ee,onRowExpanded:O,onRowsRendered:j,onRowHeightChange:k,scrollTo:f,scrollToLeft:p,scrollToTop:m,scrollToRow:h,onScroll:g,onVerticalScroll:_}}var QB=Symbol(`tableV2`),$B=`tableV2GridScrollLeft`,eV=z({name:`ElTableV2Header`,props:LB,setup(e,{slots:t,expose:n}){let r=$(`table-v2`),i=l($B),a=q(),o=K(()=>JB({width:e.width,height:e.height})),s=K(()=>JB({width:e.rowWidth,height:e.height})),c=K(()=>Cs(Y(e.headerHeight))),u=e=>{let t=Y(a);U(()=>{t?.scroll&&t.scroll({left:e})})},d=()=>{let n=r.e(`fixed-header-row`),{columns:i,fixedHeaderData:a,rowHeight:o}=e;return a?.map((e,r)=>{let a=JB({height:o,width:`100%`});return t.fixed?.({class:n,columns:i,rowData:e,rowIndex:-(r+1),style:a})})},f=()=>{let n=r.e(`dynamic-header-row`),{columns:i}=e;return Y(c).map((e,r)=>{let a=JB({width:`100%`,height:e});return t.dynamic?.({class:n,columns:i,headerIndex:r,style:a})})};return C(()=>{i?.value&&u(i.value)}),n({scrollToLeft:u}),()=>{if(!(e.height<=0))return J(`div`,{ref:a,class:e.class,style:Y(o),role:`rowgroup`},[J(`div`,{style:Y(s),class:r.e(`header`)},[f(),d()])])}}}),tV=`ElTableV2Grid`,nV=e=>{let t=q(),n=q(),r=q(0),i=K(()=>{let{data:t,rowHeight:n,estimatedRowHeight:r}=e;if(!r)return t.length*n}),a=K(()=>{let{fixedData:t,rowHeight:n}=e;return(t?.length||0)*n}),o=K(()=>KB(e.headerHeight)),s=K(()=>{let{height:t}=e;return Math.max(0,t-Y(o)-Y(a))}),c=K(()=>Y(o)+Y(a)>0),l=({data:t,rowIndex:n})=>t[n][e.rowKey];function u({rowCacheStart:t,rowCacheEnd:n,rowVisibleStart:r,rowVisibleEnd:i}){e.onRowsRendered?.({rowCacheStart:t,rowCacheEnd:n,rowVisibleStart:r,rowVisibleEnd:i})}function d(e,t){n.value?.resetAfterRowIndex(e,t)}function f(e,i){let a=Y(t),o=Y(n);E(e)?(a?.scrollToLeft(e.scrollLeft),r.value=e.scrollLeft,o?.scrollTo(e)):(a?.scrollToLeft(e),r.value=e,o?.scrollTo({scrollLeft:e,scrollTop:i}))}function p(e){Y(n)?.scrollTo({scrollTop:e})}function m(e,t){let i=Y(n);if(!i)return;let a=r.value;i.scrollToItem(e,0,t),a&&f({scrollLeft:a})}function h(){Y(n)?.$forceUpdate(),Y(t)?.$forceUpdate()}return M(()=>e.bodyWidth,()=>{Md(e.estimatedRowHeight)&&n.value?.resetAfter({columnIndex:0},!1)}),{bodyRef:n,forceUpdate:h,fixedRowHeight:a,gridHeight:s,hasHeader:c,headerHeight:o,headerRef:t,totalHeight:i,itemKey:l,onItemRendered:u,resetAfterRowIndex:d,scrollTo:f,scrollToTop:p,scrollToRow:m,scrollLeft:r}},rV=z({name:tV,props:RB,setup(e,{slots:n,expose:r}){let{ns:i}=l(QB),{bodyRef:a,fixedRowHeight:o,gridHeight:s,hasHeader:c,headerRef:u,headerHeight:d,totalHeight:f,forceUpdate:p,itemKey:m,onItemRendered:h,resetAfterRowIndex:g,scrollTo:_,scrollToTop:v,scrollToRow:y,scrollLeft:b}=nV(e);Qe($B,b),t(async()=>{await U();let e=a.value?.states.scrollTop;e&&v(Math.round(e)+1)}),r({forceUpdate:p,totalHeight:f,scrollTo:_,scrollToTop:v,scrollToRow:y,resetAfterRowIndex:g});let x=()=>e.bodyWidth;return()=>{let{cache:t,columns:r,data:l,fixedData:f,useIsScrolling:p,scrollbarAlwaysOn:g,scrollbarEndGap:_,scrollbarStartGap:v,style:y,rowHeight:b,bodyWidth:S,estimatedRowHeight:C,headerWidth:w,height:T,width:E,getRowHeight:D,onScroll:O}=e,k=Md(C),A=k?UO:OO,ee=Y(d);return J(`div`,{role:`table`,class:[i.e(`table`),e.class],style:y},[J(A,{ref:a,data:l,useIsScrolling:p,itemKey:m,columnCache:0,columnWidth:k?x:S,totalColumn:1,totalRow:l.length,rowCache:t,rowHeight:k?D:b,width:E,height:Y(s),class:i.e(`body`),role:`rowgroup`,scrollbarStartGap:v,scrollbarEndGap:_,scrollbarAlwaysOn:g,onScroll:O,onItemRendered:h,perfMode:!1},{default:e=>{let t=l[e.rowIndex];return n.row?.({...e,columns:r,rowData:t})}}),Y(c)&&J(eV,{ref:u,class:i.e(`header-wrapper`),columns:r,headerData:l,headerHeight:e.headerHeight,fixedHeaderData:f,rowWidth:w,rowHeight:b,width:E,height:Math.min(ee+Y(o),T)},{dynamic:n.header,fixed:n.row})])}}});function iV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var aV=(e,{slots:t})=>{let{mainTableRef:n,...r}=e;return J(rV,k({ref:n},r),iV(t)?t:{default:()=>[t]})};function oV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var sV=(e,{slots:t})=>{if(!e.columns.length)return;let{leftTableRef:n,...r}=e;return J(rV,k({ref:n},r),oV(t)?t:{default:()=>[t]})};function cV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var lV=(e,{slots:t})=>{if(!e.columns.length)return;let{rightTableRef:n,...r}=e;return J(rV,k({ref:n},r),cV(t)?t:{default:()=>[t]})},uV=e=>{let{isScrolling:t}=l(QB),r=q(!1),i=q(),a=K(()=>Md(e.estimatedRowHeight)&&e.rowIndex>=0),o=(t=!1)=>{let n=Y(i);if(!n)return;let{columns:a,onRowHeightChange:o,rowKey:s,rowIndex:c,style:l}=e,{height:u}=n.getBoundingClientRect();r.value=!0,U(()=>{if(t||u!==Number.parseInt(l.height)){let e=a[0],t=e?.placeholderSign===TB;o?.({rowKey:s,height:u,rowIndex:c},e&&!t&&e.fixed)}})},s=K(()=>{let{rowData:t,rowIndex:r,rowKey:i,onRowHover:a}=e,o=e.rowEventHandlers||{},s={};return Object.entries(o).forEach(([e,a])=>{n(a)&&(s[e]=e=>{a({event:e,rowData:t,rowIndex:r,rowKey:i})})}),a&&[{name:`onMouseleave`,hovered:!1},{name:`onMouseenter`,hovered:!0}].forEach(({name:e,hovered:n})=>{let o=s[e];s[e]=e=>{a({event:e,hovered:n,rowData:t,rowIndex:r,rowKey:i}),o?.(e)}}),s});return d(()=>{Y(a)&&o(!0)}),{isScrolling:t,measurable:a,measured:r,rowRef:i,eventHandlers:s,onExpand:t=>{let{onRowExpand:n,rowData:r,rowIndex:i,rowKey:a}=e;n?.({expanded:t,rowData:r,rowIndex:i,rowKey:a})}}},dV=z({name:`ElTableV2TableRow`,props:FB,setup(e,{expose:t,slots:n,attrs:r}){let{eventHandlers:i,isScrolling:a,measurable:o,measured:s,rowRef:c,onExpand:l}=uV(e);return t({onExpand:l}),()=>{let{columns:t,columnsStyles:u,expandColumnKey:d,depth:f,rowData:p,rowIndex:m,style:h}=e,g=t.map((e,r)=>{let i=A(p.children)&&p.children.length>0&&e.key===d;return n.cell({column:e,columns:t,columnIndex:r,depth:f,style:u[e.key],rowData:p,rowIndex:m,isScrolling:Y(a),expandIconProps:i?{rowData:p,rowIndex:m,onExpand:l}:void 0})});if(n.row&&(g=n.row({cells:g.map(e=>A(e)&&e.length===1?e[0]:e),style:h,columns:t,depth:f,rowData:p,rowIndex:m,isScrolling:Y(a)})),Y(o)){let{height:t,...n}=h||{},a=Y(s);return J(`div`,k({ref:c,class:e.class,style:a?h:n,role:`row`},r,Y(i)),[g])}return J(`div`,k(r,{ref:c,class:e.class,style:h,role:`row`},Y(i)),[g])}}});function fV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var pV=(e,{slots:t})=>{let{columns:n,columnsStyles:r,depthMap:i,expandColumnKey:a,expandedRowKeys:o,estimatedRowHeight:s,hasFixedColumns:c,rowData:l,rowIndex:u,style:d,isScrolling:f,rowProps:p,rowClass:m,rowKey:h,rowEventHandlers:g,ns:_,onRowHovered:v,onRowExpanded:y}=e,b=qB(m,{columns:n,rowData:l,rowIndex:u},``),x=qB(p,{columns:n,rowData:l,rowIndex:u}),S=l[h],C=i[S]||0,w=!!a,T=u<0,E=[_.e(`row`),b,_.is(`expanded`,w&&o.includes(S)),_.is(`fixed`,!C&&T),_.is(`customized`,!!t.row),{[_.e(`row-depth-${C}`)]:w&&u>=0}],D=c?v:void 0;return J(dV,k({...x,columns:n,columnsStyles:r,class:E,depth:C,expandColumnKey:a,estimatedRowHeight:T?void 0:s,isScrolling:f,rowIndex:u,rowData:l,rowKey:S,rowEventHandlers:g,style:d},{onRowExpand:y,onMouseenter:e=>{D?.({hovered:!0,rowKey:S,event:e,rowData:l,rowIndex:u})},onMouseleave:e=>{D?.({hovered:!1,rowKey:S,event:e,rowData:l,rowIndex:u})},rowkey:S}),fV(t)?t:{default:()=>[t]})},mV=(e,{slots:t})=>{let{cellData:n,style:r}=e,i=n?.toString?.()||``,a=I(t,`default`,e,()=>[i]);return J(`div`,{class:e.class,title:i,style:r},[a])};mV.displayName=`ElTableV2Cell`,mV.inheritAttrs=!1;var hV=e=>{let{expanded:t,expandable:n,onExpand:r,style:i,size:a,ariaLabel:o}=e;return J(`button`,k({onClick:n?()=>r(!t):void 0,ariaLabel:o,ariaExpanded:t,class:e.class},{type:`button`}),[J(By,{size:a,style:i},{default:()=>[J(Hv,null,null)]})])};hV.inheritAttrs=!1;var gV=({columns:e,column:t,columnIndex:r,depth:i,expandIconProps:a,isScrolling:o,rowData:s,rowIndex:c,style:l,expandedRowKeys:u,ns:d,t:f,cellProps:p,expandColumnKey:m,indentSize:h,iconSize:g,rowKey:_},{slots:v})=>{let y=JB(l);if(t.placeholderSign===TB)return J(`div`,{class:d.em(`row-cell`,`placeholder`),style:y},null);let{cellRenderer:b,dataKey:x,dataGetter:S}=t,C=n(S)?S({columns:e,column:t,columnIndex:r,rowData:s,rowIndex:c}):ss(s,x??``),w=qB(p,{cellData:C,columns:e,column:t,columnIndex:r,rowIndex:c,rowData:s}),T={class:d.e(`cell-text`),columns:e,column:t,columnIndex:r,cellData:C,isScrolling:o,rowData:s,rowIndex:c},D=YB(b),O=D?D(T):I(v,`default`,T,()=>[J(mV,T,null)]),A=[d.e(`row-cell`),t.class,t.align===`center`&&d.is(`align-center`),t.align===`right`&&d.is(`align-right`)],ee=c>=0&&m&&t.key===m,j=c>=0&&u.includes(s[_]),M,N=`margin-inline-start: ${i*h}px;`;return ee&&(M=E(a)?J(hV,k(a,{class:[d.e(`expand-icon`),d.is(`expanded`,j)],size:g,expanded:j,ariaLabel:f(j?`el.table.collapseRowLabel`:`el.table.expandRowLabel`),style:N,expandable:!0}),null):J(`div`,{style:[N,`width: ${g}px; height: ${g}px;`].join(` `)},null)),J(`div`,k({class:A,style:y},w,{role:`cell`}),[M,O])};gV.inheritAttrs=!1;var _V=z({name:`ElTableV2HeaderRow`,props:Q({class:String,columns:DB,columnsStyles:{type:Z(Object),required:!0},headerIndex:Number,style:{type:Z(Object)}}),setup(e,{slots:t}){return()=>{let{columns:n,columnsStyles:r,headerIndex:i,style:a}=e,o=n.map((e,a)=>t.cell({columns:n,column:e,columnIndex:a,headerIndex:i,style:r[e.key]}));return t.header&&(o=t.header({cells:o.map(e=>A(e)&&e.length===1?e[0]:e),columns:n,headerIndex:i})),J(`div`,{class:e.class,style:a,role:`row`},[o])}}});function vV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var yV=({columns:e,columnsStyles:t,headerIndex:n,style:r,headerClass:i,headerProps:a,ns:o},{slots:s})=>{let c={columns:e,headerIndex:n},l=[o.e(`header-row`),qB(i,c,``),o.is(`customized`,!!s.header)];return J(_V,{...qB(a,c),columnsStyles:t,class:l,columns:e,headerIndex:n,style:r},vV(s)?s:{default:()=>[s]})},bV=(e,{slots:t})=>I(t,`default`,e,()=>[J(`div`,{class:e.class,title:e.column?.title},[e.column?.title])]);bV.displayName=`ElTableV2HeaderCell`,bV.inheritAttrs=!1;var xV=e=>{let{sortOrder:t}=e;return J(`button`,{type:`button`,"aria-label":e.ariaLabel,class:e.class},[J(By,{size:14},{default:()=>[J(t===`asc`?Ty:wy,null,null)]})])},SV=(e,{slots:t})=>{let{column:n,ns:r,t:i,style:a,onColumnSorted:o}=e,s=JB(a);if(n.placeholderSign===TB)return J(`div`,{class:r.em(`header-row-cell`,`placeholder`),style:s},null);let{headerCellRenderer:c,headerClass:l,sortable:u}=n,d={...e,class:r.e(`header-cell-text`)},f=YB(c),p=f?f(d):I(t,`default`,d,()=>[J(bV,d,null)]),{sortBy:m,sortState:h,headerCellProps:g}=e,_,v,y;if(h){let e=h[n.key];_=!!wB[e],v=_?e:`asc`}else _=n.key===m.key,v=_?m.order:`asc`;y=v===`asc`?`ascending`:v===`desc`?`descending`:void 0;let b=[r.e(`header-cell`),qB(l,e,``),n.align===`center`&&r.is(`align-center`),n.align===`right`&&r.is(`align-right`),u&&r.is(`sortable`)];return J(`div`,k({...qB(g,e),onClick:n.sortable?o:void 0,ariaSort:u?y:void 0,class:b,style:s,"data-key":n.key},{role:`columnheader`}),[p,u&&J(xV,{class:[r.e(`sort-icon`),_&&r.is(`sorting`)],sortOrder:v,ariaLabel:i(`el.table.sortLabel`,{column:n.title||``})},null)])},CV=(e,{slots:t})=>J(`div`,{class:e.class,style:e.style},[t.default?.()]);CV.displayName=`ElTableV2Footer`;var wV=(e,{slots:t})=>{let n=I(t,`default`,{},()=>[J(OF,null,null)]);return J(`div`,{class:e.class,style:e.style},[n])};wV.displayName=`ElTableV2Empty`;var TV=(e,{slots:t})=>J(`div`,{class:e.class,style:e.style},[t.default?.()]);TV.displayName=`ElTableV2Overlay`;function EV(e){return typeof e==`function`||Object.prototype.toString.call(e)===`[object Object]`&&!s(e)}var DV=z({name:`ElTableV2`,props:zB,slots:Object,setup(e,{slots:t,expose:n}){let r=$(`table-v2`),{t:i}=Dp(),{columnsStyles:a,fixedColumnsOnLeft:o,fixedColumnsOnRight:s,mainColumns:c,mainTableHeight:l,fixedTableHeight:u,leftTableWidth:d,rightTableWidth:f,data:p,depthMap:m,expandedRowKeys:h,hasFixedColumns:g,mainTableRef:_,leftTableRef:v,rightTableRef:y,isDynamic:b,isResetting:x,isScrolling:S,bodyWidth:C,emptyStyle:w,rootStyle:T,footerHeight:E,showEmpty:D,scrollTo:O,scrollToLeft:A,scrollToTop:ee,scrollToRow:j,getRowHeight:M,onColumnSorted:N,onRowHeightChange:P,onRowHovered:te,onRowExpanded:ne,onRowsRendered:re,onScroll:ie,onVerticalScroll:ae}=ZB(e);return n({scrollTo:O,scrollToLeft:A,scrollToTop:ee,scrollToRow:j}),Qe(QB,{ns:r,isResetting:x,isScrolling:S}),()=>{let{cache:n,cellProps:x,estimatedRowHeight:S,expandColumnKey:O,fixedData:A,headerHeight:ee,headerClass:j,headerProps:F,headerCellProps:I,sortBy:oe,sortState:L,rowHeight:se,rowClass:ce,rowEventHandlers:le,rowKey:ue,rowProps:de,scrollbarAlwaysOn:fe,indentSize:pe,iconSize:me,useIsScrolling:R,vScrollbarSize:he,width:z}=e,ge=Y(p),_e={cache:n,class:r.e(`main`),columns:Y(c),data:ge,fixedData:A,estimatedRowHeight:S,bodyWidth:Y(C),headerHeight:ee,headerWidth:Y(C),height:Y(l),mainTableRef:_,rowKey:ue,rowHeight:se,scrollbarAlwaysOn:fe,scrollbarStartGap:2,scrollbarEndGap:he,useIsScrolling:R,width:z,getRowHeight:M,onRowsRendered:re,onScroll:ie},ve=Y(d),B=Y(u),ye={cache:n,class:r.e(`left`),columns:Y(o),data:ge,fixedData:A,estimatedRowHeight:S,leftTableRef:v,rowHeight:se,bodyWidth:ve,headerWidth:ve,headerHeight:ee,height:B,rowKey:ue,scrollbarAlwaysOn:fe,scrollbarStartGap:2,scrollbarEndGap:he,useIsScrolling:R,width:ve,getRowHeight:M,onScroll:ae},V=Y(f),H={cache:n,class:r.e(`right`),columns:Y(s),data:ge,fixedData:A,estimatedRowHeight:S,rightTableRef:y,rowHeight:se,bodyWidth:V,headerWidth:V,headerHeight:ee,height:B,rowKey:ue,scrollbarAlwaysOn:fe,scrollbarStartGap:2,scrollbarEndGap:he,width:V,style:`${r.cssVarName(`table-scrollbar-size`)}: ${he}px`,useIsScrolling:R,getRowHeight:M,onScroll:ae},be=Y(a),xe={ns:r,depthMap:Y(m),columnsStyles:be,expandColumnKey:O,expandedRowKeys:Y(h),estimatedRowHeight:S,hasFixedColumns:Y(g),rowProps:de,rowClass:ce,rowKey:ue,rowEventHandlers:le,onRowHovered:te,onRowExpanded:ne,onRowHeightChange:P},Se={cellProps:x,expandColumnKey:O,indentSize:pe,iconSize:me,rowKey:ue,expandedRowKeys:Y(h),ns:r,t:i},Ce={ns:r,headerClass:j,headerProps:F,columnsStyles:be},we={ns:r,t:i,sortBy:oe,sortState:L,headerCellProps:I,onColumnSorted:N},Te={row:e=>J(pV,k(e,xe),{row:t.row,cell:e=>{let n;return t.cell?J(gV,k(e,Se,{style:be[e.column.key]}),EV(n=t.cell(e))?n:{default:()=>[n]}):J(gV,k(e,Se,{style:be[e.column.key]}),null)}}),header:e=>J(yV,k(e,Ce),{header:t.header,cell:e=>{let n;return t[`header-cell`]?J(SV,k(e,we,{style:be[e.column.key]}),EV(n=t[`header-cell`](e))?n:{default:()=>[n]}):J(SV,k(e,we,{style:be[e.column.key]}),null)}})},Ee=[e.class,r.b(),r.e(`root`),r.is(`dynamic`,Y(b))],De={class:r.e(`footer`),style:Y(E)};return J(`div`,{class:Ee,style:Y(T)},[J(aV,_e,EV(Te)?Te:{default:()=>[Te]}),J(sV,ye,EV(Te)?Te:{default:()=>[Te]}),J(lV,H,EV(Te)?Te:{default:()=>[Te]}),t.footer&&J(CV,De,{default:t.footer}),Y(D)&&J(wV,{class:r.e(`empty`),style:Y(w)},{default:t.empty}),t.overlay&&J(TV,{class:r.e(`overlay`)},{default:t.overlay})])}}}),OV=Q({disableWidth:Boolean,disableHeight:Boolean,onResize:{type:Z(Function)}}),kV=e=>{let t=q(),n=q(0),r=q(0),i;return d(()=>{i=Uf(t,([e])=>{let{width:t,height:i}=e.contentRect,{paddingLeft:a,paddingRight:o,paddingTop:s,paddingBottom:c}=getComputedStyle(e.target),l=Number.parseInt(a)||0,u=Number.parseInt(o)||0,d=Number.parseInt(s)||0,f=Number.parseInt(c)||0;n.value=t-l-u,r.value=i-d-f}).stop}),T(()=>{i?.()}),M([n,r],([t,n])=>{e.onResize?.({width:t,height:n})}),{sizer:t,width:n,height:r}},AV=z({name:`ElAutoResizer`,props:OV,setup(e,{slots:t}){let n=$(`auto-resizer`),{height:r,width:i,sizer:a}=kV(e),o={width:`100%`,height:`100%`};return()=>J(`div`,{ref:a,class:n.b(),style:o},[t.default?.({height:r.value,width:i.value})])}}),jV=Pv(DV),MV=Pv(AV),NV=Symbol(`tabsRootContextKey`),PV=Q({tabs:{type:Z(Array),default:()=>DS([])},tabRefs:{type:Z(Object),default:()=>DS({})}}),FV=`ElTabBar`,IV=z({name:FV,__name:`tab-bar`,props:PV,setup(e,{expose:t}){let n=e,r=l(NV);r||qd(FV,``);let i=$(`tabs`),a=q(),o=q(),s=K(()=>Ad(r.props.defaultValue)||!!o.value?.transform),c=()=>{let e=0,t=0,i=[`top`,`bottom`].includes(r.props.tabPosition)?`width`:`height`,a=i===`width`?`x`:`y`,o=a===`x`?`left`:`top`;return n.tabs.every(r=>{if(Ad(r.paneName))return!1;let a=n.tabRefs[r.paneName];if(!a)return!1;if(!r.active)return!0;e=a[`offset${fp(o)}`],t=a[`client${fp(i)}`];let s=window.getComputedStyle(a);return i===`width`&&(t-=Number.parseFloat(s.paddingLeft)+Number.parseFloat(s.paddingRight),e+=Number.parseFloat(s.paddingLeft)),!1}),{[i]:`${t}px`,transform:`translate${fp(a)}(${e}px)`}},u=()=>o.value=c(),d=[],f=()=>{d.forEach(e=>e.stop()),d.length=0,Object.values(n.tabRefs).forEach(e=>{d.push(Uf(e,u))})};M(()=>n.tabs,async()=>{await U(),u(),f()},{immediate:!0});let p=Uf(a,()=>u());return T(()=>{d.forEach(e=>e.stop()),d.length=0,p.stop()}),t({ref:a,update:u}),(e,t)=>s.value?(N(),W(`div`,{key:0,ref_key:`barRef`,ref:a,class:F([Y(i).e(`active-bar`),Y(i).is(Y(r).props.tabPosition)]),style:m(o.value)},null,6)):G(`v-if`,!0)}}),LV=5,RV=({scrollable:e,navOffset:t,navSize:n,navContainerSize:r,isHorizontal:i})=>{let a=q(!1),o=K(()=>Math.max(n.value-r.value,0)),s,c,l=n=>{if(!e.value||n.touches.length!==1)return;let{clientX:r,clientY:i}=DA(n);s={startX:r,startY:i,startOffset:t.value},c=void 0},u=n=>{if(!s||!e.value)return;if(n.touches.length!==1){d();return}let{clientX:r,clientY:l}=DA(n),u=s.startX-r,f=s.startY-l,p=i.value?u:f,m=i.value?f:u,h=Math.abs(p),g=Math.abs(m);if(ud(c)){if(Math.max(h,g)<=LV)return;c=h>g}if(!c)return;let _=Ts(s.startOffset+p,0,o.value);o.value<=0||_===t.value||!n.cancelable||(n.preventDefault(),a.value=!0,t.value=_)},d=()=>{s=void 0,c=void 0,a.value=!1};return{isTouchScrolling:a,handleTouchStart:l,handleTouchMove:u,handleTouchEnd:d}},zV=Q({panes:{type:Z(Array),default:()=>DS([])},currentName:{type:[String,Number],default:``},editable:Boolean,type:{type:String,values:[`card`,`border-card`,``],default:``},stretch:Boolean,tabindex:{type:[String,Number],default:void 0}}),BV={tabClick:(e,t,n)=>n instanceof Event,tabRemove:(e,t)=>t instanceof Event},VV=`ElTabNav`,HV=z({name:VV,props:zV,emits:BV,setup(e,{expose:t,emit:n}){let r=l(NV);r||qd(VV,``);let i=$(`tabs`),a=Hf(),o=Jf(),s=q(),c=q(),u=q(),f=q({}),p=q(),m=q(!1),h=q(0),g=q(!1),_=q(!0),v=q(!1),y=Le(),b=K(()=>[`top`,`bottom`].includes(r.props.tabPosition)),x=K(()=>b.value?`width`:`height`),S=K(()=>{let e=x.value===`width`?`X`:`Y`;return{transition:v.value||j.value?`none`:void 0,transform:`translate${e}(-${h.value}px)`}}),{width:w,height:T}=Gf(s),{width:E,height:D}=Gf(c,{width:0,height:0},{box:`border-box`}),O=K(()=>b.value?w.value:T.value),k=K(()=>b.value?E.value:D.value),{onWheel:A}=pO({atStartEdge:K(()=>h.value<=0),atEndEdge:K(()=>k.value-h.value<=O.value),layout:K(()=>b.value?`horizontal`:`vertical`)},e=>{h.value=Ts(h.value+e,0,k.value-O.value)}),ee=e=>{v.value=!0,A(e),Np(()=>{v.value=!1})},{isTouchScrolling:j,handleTouchStart:N,handleTouchMove:P,handleTouchEnd:te}=RV({scrollable:m,navOffset:h,navSize:k,navContainerSize:O,isHorizontal:b}),ne=()=>{if(!s.value)return;let e=s.value.getBoundingClientRect()[x.value],t=h.value;t&&(h.value=t>e?t-e:0)},re=()=>{if(!s.value||!c.value)return;let e=c.value.getBoundingClientRect()[x.value],t=s.value.getBoundingClientRect()[x.value],n=h.value;JS(e-n,t)&&(h.value=e-n>t*2?n+t:e-t)},ie=async()=>{let t=c.value;if(!m.value||!u.value||!s.value||!t)return;await U();let n=f.value[e.currentName];if(!n)return;let r=s.value,i=n.getBoundingClientRect(),a=r.getBoundingClientRect(),o=a.left+1,l=a.right-1,d=t.getBoundingClientRect(),p=b.value?d.width-a.width:d.height-a.height,g=h.value,_=g;b.value?(i.leftl&&(_=g+i.right-l)):(i.topa.bottom&&(_=g+(i.bottom-a.bottom))),_=Math.max(_,0),h.value=Math.min(_,p)},ae=()=>{if(!c.value||!s.value)return;e.stretch&&p.value?.update();let t=c.value.getBoundingClientRect()[x.value],n=s.value.getBoundingClientRect()[x.value],r=h.value;n0&&(h.value=0))},F=e=>{let t=Kp(e),n=0;switch(t){case X.left:case X.up:n=-1;break;case X.right:case X.down:n=1;break;default:return}let r=Array.from(e.currentTarget.querySelectorAll(`[role=tab]:not(.is-disabled)`)),i=r.indexOf(e.target)+n;i<0?i=r.length-1:i>=r.length&&(i=0),r[i].focus({preventScroll:!0}),r[i].click(),I()},I=()=>{_.value&&(g.value=!0)},oe=()=>g.value=!1,L=(e,t)=>{f.value[t]=e};return M(a,e=>{e===`hidden`?_.value=!1:e===`visible`&&setTimeout(()=>_.value=!0,50)}),M(o,e=>{e?setTimeout(()=>_.value=!0,50):_.value=!1}),Uf(u,()=>{Np(ae)}),d(()=>setTimeout(()=>ie(),0)),C(()=>ae()),t({scrollToActiveTab:ie,removeFocus:oe,focusActiveTab:async()=>{await U(),f.value[e.currentName]?.focus({preventScroll:!0})},tabListRef:c,tabBarRef:p,scheduleRender:()=>qe(y)}),()=>{let t=m.value?[J(`span`,{class:[i.e(`nav-prev`),i.is(`disabled`,!m.value.prev)],onClick:ne},[J(By,null,{default:()=>[J(Vv,null,null)]})]),J(`span`,{class:[i.e(`nav-next`),i.is(`disabled`,!m.value.next)],onClick:re},[J(By,null,{default:()=>[J(Hv,null,null)]})])]:null,a=e.panes.map((t,a)=>{let o=t.uid,s=t.props.disabled,c=t.props.name??t.index??`${a}`,l=!s&&(t.isClosable||t.props.closable!==!1&&e.editable);t.index=`${a}`;let u=l?J(By,{class:`is-icon-close`,onClick:e=>n(`tabRemove`,t,e)},{default:()=>[J(ey,null,null)]}):null,d=t.slots.label?.()||t.props.label,f=!s&&t.active?e.tabindex??r.props.tabindex:-1;return J(`div`,{ref:e=>L(e,c),class:[i.e(`item`),i.is(r.props.tabPosition),i.is(`active`,t.active),i.is(`disabled`,s),i.is(`closable`,l),i.is(`focus`,g.value)],id:`tab-${c}`,key:`tab-${o}`,"aria-controls":`pane-${c}`,role:`tab`,"aria-selected":t.active,tabindex:f,onFocus:()=>I(),onBlur:()=>oe(),onClick:e=>{oe(),n(`tabClick`,t,c,e)},onKeydown:e=>{let r=Kp(e);l&&(r===X.delete||r===X.backspace)&&n(`tabRemove`,t,e)}},[d,u])});return y.value,J(`div`,{ref:u,class:[i.e(`nav-wrap`),i.is(`scrollable`,!!m.value),i.is(r.props.tabPosition)]},[t,J(`div`,{class:i.e(`nav-scroll`),ref:s},[e.panes.length>0?J(`div`,{class:[i.e(`nav`),i.is(r.props.tabPosition),i.is(`stretch`,e.stretch&&[`top`,`bottom`].includes(r.props.tabPosition))],ref:c,style:S.value,role:`tablist`,onKeydown:F,onWheel:ee,onTouchstart:N,onTouchmove:P,onTouchend:te,onTouchcancel:te},[e.type?null:J(IV,{ref:p,tabs:[...e.panes],tabRefs:f.value},null),a]):null])])}}}),UV=Q({type:{type:String,values:[`card`,`border-card`,``],default:``},closable:Boolean,addable:Boolean,modelValue:{type:[String,Number]},defaultValue:{type:[String,Number]},editable:Boolean,tabPosition:{type:String,values:[`top`,`right`,`bottom`,`left`],default:`top`},beforeLeave:{type:Z(Function),default:()=>!0},stretch:Boolean,tabindex:{type:[String,Number],default:0}}),WV=e=>P(e)||Md(e),GV=z({name:`ElTabs`,props:UV,emits:{[br]:e=>WV(e),tabClick:(e,t)=>t instanceof Event,tabChange:e=>WV(e),edit:(e,t)=>[`remove`,`add`].includes(t),tabRemove:e=>WV(e),tabAdd:()=>!0},setup(e,{emit:t,slots:n,expose:r}){let i=$(`tabs`),a=K(()=>[`left`,`right`].includes(e.tabPosition)),{children:o,addChild:s,removeChild:c,ChildrenSorter:l}=bv(Xe(),`ElTabPane`),u=q(),d=q((Ad(e.modelValue)?e.defaultValue:e.modelValue)??`0`),f=async(n,r=!1)=>{if(!(d.value===n||Ad(n)))try{let i;if(e.beforeLeave){let t=e.beforeLeave(n,d.value);i=t instanceof Promise?await t:t}else i=!0;if(i!==!1){let e=o.value.find(e=>e.paneName===d.value)?.isFocusInsidePane();d.value=n,r&&(t(br,n),t(`tabChange`,n)),u.value?.removeFocus?.(),e&&u.value?.focusActiveTab()}}catch{}},p=(e,n,r)=>{e.props.disabled||(t(`tabClick`,e,r),f(n,!0))},m=(e,n)=>{e.props.disabled||Ad(e.props.name)||(n.stopPropagation(),t(`edit`,e.props.name,`remove`),t(`tabRemove`,e.props.name))},h=()=>{t(`edit`,void 0,`add`),t(`tabAdd`)},g=e=>{let t=Kp(e);[X.enter,X.numpadEnter].includes(t)&&h()},_=t=>{let n=t.el.firstChild,r=[`bottom`,`right`].includes(e.tabPosition)?t.children[0].el:t.children[1].el;n!==r&&n.before(r)};return M(()=>e.modelValue,e=>f(e)),M(d,async()=>{await U(),u.value?.scrollToActiveTab()}),Qe(NV,{props:e,currentName:d,registerPane:s,unregisterPane:c,nav$:u}),r({currentName:d,get tabNavRef(){return vd(u.value,[`scheduleRender`])}}),()=>{let t=n[`add-icon`],r=e.editable||e.addable?J(`div`,{class:[i.e(`new-tab`),a.value&&i.e(`new-tab-vertical`)],tabindex:e.tabindex,onClick:h,onKeydown:g},[t?I(n,`add-icon`):J(By,{class:i.is(`icon-plus`)},{default:()=>[J(_y,null,null)]})]):null,s=J(`div`,{class:[i.e(`header`),a.value&&i.e(`header-vertical`),i.is(e.tabPosition)]},[J(l,null,{default:()=>J(HV,{ref:u,currentName:d.value,editable:e.editable,type:e.type,panes:o.value,stretch:e.stretch,onTabClick:p,onTabRemove:m},null),$stable:!0}),r]),c=J(`div`,{class:i.e(`content`)},[I(n,`default`)]);return J(`div`,{class:[i.b(),i.m(e.tabPosition),{[i.m(`card`)]:e.type===`card`,[i.m(`border-card`)]:e.type===`border-card`}],onVnodeMounted:_,onVnodeUpdated:_},[c,s])}}}),KV=Q({label:{type:String,default:``},name:{type:[String,Number]},closable:{type:Boolean,default:void 0},disabled:Boolean,lazy:Boolean}),qV=[`id`,`aria-hidden`,`aria-labelledby`],JV=`ElTabPane`,YV=z({name:JV,__name:`tab-pane`,props:KV,setup(e){let t=e,n=Xe(),r=le(),i=l(NV);i||qd(JV,`usage: `);let a=$(`tab-pane`),o=q(),s=q(),c=K(()=>t.closable??i.props.closable),u=K(()=>i.currentName.value===(t.name??s.value)),d=q(u.value),f=K(()=>t.name??s.value),p=K(()=>!t.lazy||d.value||u.value),m=()=>o.value?.contains(document.activeElement);M(u,e=>{e&&(d.value=!0)});let h=ve({uid:n.uid,getVnode:()=>n.vnode,slots:r,props:t,paneName:f,active:u,index:s,isClosable:c,isFocusInsidePane:m});return i.registerPane(h),T(()=>{i.unregisterPane(h)}),D(()=>{r.label&&i.nav$.value?.scheduleRender()}),(e,t)=>p.value?Ge((N(),W(`div`,{key:0,id:`pane-${f.value}`,ref_key:`paneRef`,ref:o,class:F(Y(a).b()),role:`tabpanel`,"aria-hidden":!u.value,"aria-labelledby":`tab-${f.value}`},[I(e.$slots,`default`)],10,qV)),[[jt,u.value]]):G(`v-if`,!0)}}),XV=Pv(GV,{TabPane:YV}),ZV=Lv(YV),QV=Pv(z({name:`ElText`,__name:`text`,props:Q({type:{type:String,values:[`primary`,`success`,`info`,`warning`,`danger`,``],default:``},size:{type:String,values:wr,default:``},truncated:Boolean,lineClamp:{type:[String,Number]},tag:{type:String,default:`span`}}),setup(e){let t=e,n=y(),r=q(),i=cb(),a=$(`text`),o=K(()=>[a.b(),a.m(t.type),a.m(i.value),a.is(`truncated`,t.truncated),a.is(`line-clamp`,!Ad(t.lineClamp))]),s=async()=>{if(await U(),n.title)return;let e=!1,i=r.value?.textContent||``;if(t.truncated){let t=r.value?.offsetWidth,n=r.value?.scrollWidth;t&&n&&n>t&&(e=!0)}else if(!Ad(t.lineClamp)){let t=r.value?.offsetHeight,n=r.value?.scrollHeight;t&&n&&n>t&&(e=!0)}e?r.value?.setAttribute(`title`,i):r.value?.removeAttribute(`title`)};return d(s),C(s),(t,n)=>(N(),H(L(e.tag),{ref_key:`textRef`,ref:r,class:F(o.value),style:m({"-webkit-line-clamp":e.lineClamp})},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`class`,`style`]))}})),$V=`09:00`,eH=`18:00`,tH=`00:30`,nH=Q({format:{type:String,default:`HH:mm`},modelValue:{type:Z(String)},disabled:{type:Boolean,default:void 0},editable:{type:Boolean,default:!0},effect:{type:Z(String),default:`light`},clearable:{type:Boolean,default:!0},size:xv,placeholder:String,start:{type:String,default:$V},end:{type:String,default:eH},step:{type:String,default:tH},minTime:{type:Z(String)},maxTime:{type:Z(String)},includeEndTime:Boolean,name:String,prefixIcon:{type:Z([String,Object]),default:()=>$v},clearIcon:{type:Z([String,Object]),default:()=>Qv},popperClass:{type:String,default:``},popperStyle:{type:Z([String,Object])},...kv}),rH=e=>{let t=(e||``).split(`:`);if(t.length>=2){let n=Number.parseInt(t[0],10),r=Number.parseInt(t[1],10);if(Number.isNaN(n)||Number.isNaN(r))return null;let i=e.toUpperCase();return i.includes(`AM`)&&n===12?n=0:i.includes(`PM`)&&n!==12&&(n+=12),{hours:n,minutes:r}}return null},iH=e=>!!e&&e.hours>=0&&e.minutes>=0&&!Number.isNaN(e.hours)&&!Number.isNaN(e.minutes),aH=(e,t)=>{let n=rH(e);if(!n)return-1;let r=rH(t);if(!r)return-1;let i=n.minutes+n.hours*60,a=r.minutes+r.hours*60;return i===a?0:i>a?1:-1},oH=e=>`${e}`.padStart(2,`0`),sH=e=>`${oH(e.hours)}:${oH(e.minutes)}`,cH=(e,t)=>{let n=rH(e);if(!n)return``;let r=rH(t);if(!r)return``;let i={hours:n.hours,minutes:n.minutes};return i.minutes+=r.minutes,i.hours+=r.hours,i.hours+=Math.floor(i.minutes/60),i.minutes%=60,sH(i)},lH=Pv(z({name:`ElTimeSelect`,__name:`time-select`,props:nH,emits:[xr,`blur`,`focus`,`clear`,br],setup(e,{expose:t}){Mw.default.extend(eE.default);let{Option:n}=LE,i=e,a=$(`input`),o=q(),s=lb(),{lang:c}=Dp(),l=(e,t,n,r=!0)=>{let i=rH(e);return!iH(i)||!r&&i.hours===0&&i.minutes===0?(Jd(`ElTimeSelect`,`invalid ${t}, fallback to default ${t} (${n}).`),n):sH(i)},u=K(()=>i.modelValue),d=K(()=>l(i.start,`start`,$V)),f=K(()=>l(i.end,`end`,eH)),p=K(()=>{let e=rH(i.minTime||``);return e?sH(e):null}),m=K(()=>{let e=rH(i.maxTime||``);return e?sH(e):null}),h=K(()=>l(i.step,`step`,tH,!1)),g=K(()=>{let e=[],t=(t,n)=>{e.push({value:t,rawValue:n,disabled:aH(n,p.value||`-1:-1`)<=0||aH(n,m.value||`100:100`)>=0})},n=d.value;for(;aH(n,f.value)<=0;)t((0,Mw.default)(n,`HH:mm`).locale(c.value).format(i.format),n),n=cH(n,h.value);return i.includeEndTime&&e[e.length-1]?.rawValue!==f.value&&t((0,Mw.default)(f.value,`HH:mm`).locale(c.value).format(i.format),f.value),e});return t({blur:()=>{o.value?.blur?.()},focus:()=>{o.value?.focus?.()}}),(t,i)=>(N(),H(Y(LE),{ref_key:`select`,ref:o,name:e.name,"model-value":u.value,disabled:Y(s),clearable:e.clearable,"clear-icon":e.clearIcon,size:e.size,effect:e.effect,placeholder:e.placeholder,"default-first-option":``,filterable:e.editable,"empty-values":e.emptyValues,"value-on-clear":e.valueOnClear,"popper-class":e.popperClass,"popper-style":e.popperStyle,"onUpdate:modelValue":i[0]||=e=>t.$emit(Y(`update:modelValue`),e),onChange:i[1]||=e=>t.$emit(Y(`change`),e),onBlur:i[2]||=e=>t.$emit(`blur`,e),onFocus:i[3]||=e=>t.$emit(`focus`,e),onClear:i[4]||=()=>t.$emit(`clear`)},{prefix:V(()=>[e.prefixIcon?(N(),H(Y(By),{key:0,class:F(Y(a).e(`prefix-icon`))},{default:V(()=>[(N(),H(L(e.prefixIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)]),default:V(()=>[(N(!0),W(R,null,r(g.value,e=>(N(),H(Y(n),{key:e.value,label:e.value,value:e.value,disabled:e.disabled},null,8,[`label`,`value`,`disabled`]))),128))]),_:1},8,[`name`,`model-value`,`disabled`,`clearable`,`clear-icon`,`size`,`effect`,`placeholder`,`filterable`,`empty-values`,`value-on-clear`,`popper-class`,`popper-style`]))}})),uH=`timeline`,dH=z({name:`ElTimeline`,props:Q({mode:{type:String,values:[`start`,`alternate`,`alternate-reverse`,`end`],default:`start`},reverse:Boolean}),setup(e,{slots:t}){let n=$(`timeline`);Qe(uH,{props:e,slots:t});let r=K(()=>[n.b(),n.is(e.mode)]);return()=>{let n=vv(t.default?.()??[]);return Je(`ul`,{class:r.value},e.reverse?n.reverse():n)}}}),fH=z({name:`ElTimelineItem`,__name:`timeline-item`,props:Q({timestamp:{type:String,default:``},hideTimestamp:Boolean,center:Boolean,placement:{type:String,values:[`top`,`bottom`],default:`bottom`},type:{type:String,values:[`primary`,`success`,`warning`,`danger`,`info`],default:``},color:{type:String,default:``},size:{type:String,values:[`normal`,`large`],default:`normal`},icon:{type:Ny},hollow:Boolean}),setup(e){let t=e,{props:n}=l(uH),r=$(`timeline-item`),i=K(()=>[r.e(`node`),r.em(`node`,t.size||``),r.em(`node`,t.type||``),r.is(`hollow`,t.hollow)]),a=K(()=>[r.b(),{[r.e(`center`)]:t.center},r.is(n.mode)]);return(t,n)=>(N(),W(`li`,{class:F(a.value)},[B(`div`,{class:F(Y(r).e(`tail`))},null,2),t.$slots.dot?G(`v-if`,!0):(N(),W(`div`,{key:0,class:F(i.value),style:m({backgroundColor:e.color})},[e.icon?(N(),H(Y(By),{key:0,class:F(Y(r).e(`icon`))},{default:V(()=>[(N(),H(L(e.icon)))]),_:1},8,[`class`])):G(`v-if`,!0)],6)),t.$slots.dot?(N(),W(`div`,{key:1,class:F(Y(r).e(`dot`))},[I(t.$slots,`dot`)],2)):G(`v-if`,!0),B(`div`,{class:F(Y(r).e(`wrapper`))},[!e.hideTimestamp&&e.placement===`top`?(N(),W(`div`,{key:0,class:F([Y(r).e(`timestamp`),Y(r).is(`top`)])},S(e.timestamp),3)):G(`v-if`,!0),B(`div`,{class:F(Y(r).e(`content`))},[I(t.$slots,`default`)],2),!e.hideTimestamp&&e.placement===`bottom`?(N(),W(`div`,{key:1,class:F([Y(r).e(`timestamp`),Y(r).is(`bottom`)])},S(e.timestamp),3)):G(`v-if`,!0)],2)],2))}}),pH=Pv(dH,{TimelineItem:fH}),mH=Lv(fH),hH=`left-check-change`,gH=`right-check-change`,_H=Q({data:{type:Z(Array),default:()=>[]},titles:{type:Z(Array),default:()=>[]},buttonTexts:{type:Z(Array),default:()=>[]},filterPlaceholder:String,filterMethod:{type:Z(Function)},leftDefaultChecked:{type:Z(Array),default:()=>[]},rightDefaultChecked:{type:Z(Array),default:()=>[]},renderContent:{type:Z(Function)},modelValue:{type:Z(Array),default:()=>[]},format:{type:Z(Object),default:()=>({})},filterable:Boolean,props:{type:Z(Object),default:()=>DS({label:`label`,key:`key`,disabled:`disabled`})},targetOrder:{type:String,values:[`original`,`push`,`unshift`],default:`original`},validateEvent:{type:Boolean,default:!0}}),vH=(e,t)=>[e,t].every(A)||A(e)&&cd(t),yH={[xr]:(e,t,n)=>[e,n].every(A)&&[`left`,`right`].includes(t),[br]:e=>A(e),[hH]:vH,[gH]:vH},bH=e=>{let t={label:`label`,key:`key`,disabled:`disabled`};return K(()=>({...t,...e.props}))},xH=(e,t)=>({onSourceCheckedChange:(n,r)=>{e.leftChecked=n,r&&t(hH,n,r)},onTargetCheckedChange:(n,r)=>{e.rightChecked=n,r&&t(gH,n,r)}}),SH=e=>{let t=bH(e),n=K(()=>e.data.reduce((e,n)=>(e[n[t.value.key]]=n,e),{}));return{sourceData:K(()=>e.data.filter(n=>!e.modelValue.includes(n[t.value.key]))),targetData:K(()=>e.targetOrder===`original`?e.data.filter(n=>e.modelValue.includes(n[t.value.key])):e.modelValue.reduce((e,t)=>{let r=n.value[t];return r&&e.push(r),e},[]))}},CH=(e,t,n)=>{let r=bH(e),i=(e,t,r)=>{n(br,e),n(xr,e,t,r)};return{addToLeft:()=>{let n=e.modelValue.slice();t.rightChecked.forEach(e=>{let t=n.indexOf(e);t>-1&&n.splice(t,1)}),i(n,`left`,t.rightChecked)},addToRight:()=>{let n=e.modelValue.slice(),a=e.data.filter(n=>{let i=n[r.value.key];return t.leftChecked.includes(i)&&!e.modelValue.includes(i)}).map(e=>e[r.value.key]);n=e.targetOrder===`unshift`?a.concat(n):n.concat(a),e.targetOrder===`original`&&(n=e.data.filter(e=>n.includes(e[r.value.key])).map(e=>e[r.value.key])),i(n,`right`,t.leftChecked)}}},wH=`checked-change`,TH=Q({data:_H.data,optionRender:{type:Z(Function)},placeholder:String,title:String,filterable:Boolean,format:_H.format,filterMethod:_H.filterMethod,defaultChecked:_H.leftDefaultChecked,props:_H.props}),EH={[wH]:vH},DH=(e,t,r)=>{let i=bH(e),a=K(()=>e.data.filter(r=>n(e.filterMethod)?e.filterMethod(t.query,r):String(r[i.value.label]||r[i.value.key]).toLowerCase().includes(t.query.toLowerCase()))),o=K(()=>a.value.filter(e=>!e[i.value.disabled])),s=K(()=>{let n=t.checked.length,r=e.data.length,{noChecked:i,hasChecked:a}=e.format;return i&&a?n>0?a.replace(/\${checked}/g,n.toString()).replace(/\${total}/g,r.toString()):i.replace(/\${total}/g,r.toString()):`${n}/${r}`}),c=K(()=>{let e=t.checked.length;return e>0&&e{let e=o.value.map(e=>e[i.value.key]);t.allChecked=e.length>0&&e.every(e=>t.checked.includes(e))};return M(()=>t.checked,(e,n)=>{l(),t.checkChangeByUser?r(wH,e,e.concat(n).filter(t=>!e.includes(t)||!n.includes(t))):(r(wH,e),t.checkChangeByUser=!0)}),M(o,()=>{l()}),M(()=>e.data,()=>{let e=[],n=a.value.map(e=>e[i.value.key]);t.checked.forEach(t=>{n.includes(t)&&e.push(t)}),t.checkChangeByUser=!1,t.checked=e}),M(()=>e.defaultChecked,(e,n)=>{if(n&&e.length===n.length&&e.every(e=>n.includes(e)))return;let r=[],a=o.value.map(e=>e[i.value.key]);e.forEach(e=>{a.includes(e)&&r.push(e)}),t.checkChangeByUser=!1,t.checked=r},{immediate:!0}),{filteredData:a,checkableData:o,checkedSummary:s,isIndeterminate:c,updateAllChecked:l,handleAllCheckedChange:e=>{t.checked=e?o.value.map(e=>e[i.value.key]):[]}}},OH=z({name:`ElTransferPanel`,__name:`transfer-panel`,props:TH,emits:EH,setup(e,{expose:t,emit:n}){let i=e,a=n,o=le(),s=({option:e})=>e,{t:c}=Dp(),l=$(`transfer`),u=ve({checked:[],allChecked:!1,query:``,checkChangeByUser:!0}),d=bH(i),{filteredData:f,checkedSummary:p,isIndeterminate:m,handleAllCheckedChange:h}=DH(i,u,a),g=K(()=>!Nd(u.query)&&Nd(f.value)),_=K(()=>!Nd(o.default()[0].children)),{checked:v,allChecked:y,query:b}=Se(u);return t({query:b}),(t,n)=>(N(),W(`div`,{class:F(Y(l).b(`panel`))},[B(`p`,{class:F(Y(l).be(`panel`,`header`))},[J(Y(ok),{modelValue:Y(y),"onUpdate:modelValue":n[0]||=e=>he(y)?y.value=e:null,indeterminate:Y(m),"validate-event":!1,onChange:Y(h)},{default:V(()=>[B(`span`,{class:F(Y(l).be(`panel`,`header-title`))},S(e.title),3),B(`span`,{class:F(Y(l).be(`panel`,`header-count`))},S(Y(p)),3)]),_:1},8,[`modelValue`,`indeterminate`,`onChange`])],2),B(`div`,{class:F([Y(l).be(`panel`,`body`),Y(l).is(`with-footer`,_.value)])},[e.filterable?(N(),H(Y(zS),{key:0,modelValue:Y(b),"onUpdate:modelValue":n[1]||=e=>he(b)?b.value=e:null,class:F(Y(l).be(`panel`,`filter`)),size:`default`,placeholder:e.placeholder,"prefix-icon":Y(Sy),clearable:``,"validate-event":!1},null,8,[`modelValue`,`class`,`placeholder`,`prefix-icon`])):G(`v-if`,!0),Ge(J(Y(ck),{modelValue:Y(v),"onUpdate:modelValue":n[2]||=e=>he(v)?v.value=e:null,"validate-event":!1,class:F([Y(l).is(`filterable`,e.filterable),Y(l).be(`panel`,`list`)])},{default:V(()=>[(N(!0),W(R,null,r(Y(f),t=>(N(),H(Y(ok),{key:t[Y(d).key],class:F(Y(l).be(`panel`,`item`)),value:t[Y(d).key],disabled:t[Y(d).disabled],"validate-event":!1},{default:V(()=>[J(s,{option:e.optionRender?.(t)},null,8,[`option`])]),_:2},1032,[`class`,`value`,`disabled`]))),128))]),_:1},8,[`modelValue`,`class`]),[[jt,!g.value&&!Y(Nd)(e.data)]]),Ge(B(`div`,{class:F(Y(l).be(`panel`,`empty`))},[I(t.$slots,`empty`,{},()=>[Ke(S(g.value?Y(c)(`el.transfer.noMatch`):Y(c)(`el.transfer.noData`)),1)])],2),[[jt,g.value||Y(Nd)(e.data)]])],2),_.value?(N(),W(`p`,{key:0,class:F(Y(l).be(`panel`,`footer`))},[I(t.$slots,`default`)],2)):G(`v-if`,!0)],2))}}),kH={key:0},AH={key:0},jH=Pv(z({name:`ElTransfer`,__name:`transfer`,props:_H,emits:yH,setup(e,{expose:t,emit:n}){let r=e,i=n,a=le(),{t:o}=Dp(),s=$(`transfer`),{formItem:c}=ub(),l=ve({leftChecked:[],rightChecked:[]}),u=bH(r),{sourceData:d,targetData:f}=SH(r),{onSourceCheckedChange:p,onTargetCheckedChange:m}=xH(l,i),{addToLeft:h,addToRight:g}=CH(r,l,i),_=q(),v=q(),y=e=>{switch(e){case`left`:_.value.query=``;break;case`right`:v.value.query=``;break}},b=K(()=>r.buttonTexts.length===2),x=K(()=>r.titles[0]||o(`el.transfer.titles.0`)),C=K(()=>r.titles[1]||o(`el.transfer.titles.1`)),w=K(()=>r.filterPlaceholder||o(`el.transfer.filterPlaceholder`));M(()=>r.modelValue,()=>{r.validateEvent&&c?.validate?.(`change`).catch(ge)});let T=K(()=>e=>{if(r.renderContent)return r.renderContent(Je,e);let t=(a.default?.({option:e})||[]).filter(e=>e.type!==Te);return t.length?t:Je(`span`,e[u.value.label]||e[u.value.key])});return t({clearQuery:y,leftPanel:_,rightPanel:v}),(t,n)=>(N(),W(`div`,{class:F(Y(s).b())},[J(OH,{ref_key:`leftPanel`,ref:_,data:Y(d),"option-render":T.value,placeholder:w.value,title:x.value,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,"default-checked":e.leftDefaultChecked,props:r.props,onCheckedChange:Y(p)},{empty:V(()=>[I(t.$slots,`left-empty`)]),default:V(()=>[I(t.$slots,`left-footer`)]),_:3},8,[`data`,`option-render`,`placeholder`,`title`,`filterable`,`format`,`filter-method`,`default-checked`,`props`,`onCheckedChange`]),B(`div`,{class:F(Y(s).e(`buttons`))},[J(Y(xw),{type:`primary`,class:F([Y(s).e(`button`),Y(s).is(`with-texts`,b.value)]),disabled:Y(Nd)(l.rightChecked),onClick:Y(h)},{default:V(()=>[J(Y(By),null,{default:V(()=>[J(Y(Vv))]),_:1}),Y(Ad)(e.buttonTexts[0])?G(`v-if`,!0):(N(),W(`span`,kH,S(e.buttonTexts[0]),1))]),_:1},8,[`class`,`disabled`,`onClick`]),J(Y(xw),{type:`primary`,class:F([Y(s).e(`button`),Y(s).is(`with-texts`,b.value)]),disabled:Y(Nd)(l.leftChecked),onClick:Y(g)},{default:V(()=>[Y(Ad)(e.buttonTexts[1])?G(`v-if`,!0):(N(),W(`span`,AH,S(e.buttonTexts[1]),1)),J(Y(By),null,{default:V(()=>[J(Y(Hv))]),_:1})]),_:1},8,[`class`,`disabled`,`onClick`])],2),J(OH,{ref_key:`rightPanel`,ref:v,data:Y(f),"option-render":T.value,placeholder:w.value,filterable:e.filterable,format:e.format,"filter-method":e.filterMethod,title:C.value,"default-checked":e.rightDefaultChecked,props:r.props,onCheckedChange:Y(m)},{empty:V(()=>[I(t.$slots,`right-empty`)]),default:V(()=>[I(t.$slots,`right-footer`)]),_:3},8,[`data`,`option-render`,`placeholder`,`filterable`,`format`,`filter-method`,`title`,`default-checked`,`props`,`onCheckedChange`])],2))}})),MH=`RootTree`,NH=`NodeInstance`,PH=`TreeNodeMap`,FH=Q({data:{type:Z(Array),default:()=>[]},emptyText:{type:String},renderAfterExpand:{type:Boolean,default:!0},nodeKey:String,checkStrictly:Boolean,defaultExpandAll:Boolean,expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkOnClickLeaf:{type:Boolean,default:!0},checkDescendants:Boolean,autoExpandParent:{type:Boolean,default:!0},defaultCheckedKeys:{type:Array},defaultExpandedKeys:{type:Array},currentNodeKey:{type:[String,Number]},renderContent:{type:Z(Function)},showCheckbox:Boolean,draggable:Boolean,allowDrag:{type:Z(Function)},allowDrop:{type:Z(Function)},props:{type:Object,default:()=>({children:`children`,label:`label`,disabled:`disabled`})},lazy:Boolean,highlightCurrent:Boolean,load:{type:Function},filterNodeMethod:{type:Function},accordion:Boolean,indent:{type:Number,default:18},icon:{type:Ny}}),IH={"check-change":(e,t,n)=>e&&jd(t)&&jd(n),"current-change":(e,t)=>!0,"node-click":(e,t,n,r)=>e&&t&&r instanceof Event,"node-contextmenu":(e,t,n,r)=>e instanceof Event&&t&&n,"node-collapse":(e,t,n)=>e&&t,"node-expand":(e,t,n)=>e&&t,check:(e,t)=>e&&t,"node-drag-start":(e,t)=>e&&t,"node-drag-end":(e,t,n,r)=>e&&r,"node-drop":(e,t,n,r)=>e&&t&&r,"node-drag-leave":(e,t,n)=>e&&t&&n,"node-drag-enter":(e,t,n)=>e&&t&&n,"node-drag-over":(e,t,n)=>e&&t&&n},LH=`$treeNodeId`,RH=function(e,t){!t||t.$treeNodeId||Object.defineProperty(t,LH,{value:e.id,enumerable:!1,configurable:!1,writable:!1})},zH=(e,t)=>t?.[e||`$treeNodeId`],BH=(e,t,n)=>{let r=e.value.currentNode;n();let i=e.value.currentNode;r!==i&&t(`current-change`,i?i.data:null,i)},VH=e=>{let t=!0,n=!0,r=!0,i=!0;for(let a=0,o=e.length;a{e.canFocus=t,WH(e.childNodes,t)})},GH=0,KH=class e{constructor(e){this.isLeafByUser=void 0,this.isLeaf=void 0,this.isEffectivelyChecked=!1,this.id=GH++,this.text=null,this.checked=!1,this.indeterminate=!1,this.data=null,this.expanded=!1,this.parent=null,this.visible=!0,this.isCurrent=!1,this.canFocus=!1;for(let t in e)Ye(e,t)&&(this[t]=e[t]);this.level=0,this.loaded=!1,this.childNodes=[],this.loading=!1,this.parent&&(this.level=this.parent.level+1)}initialize(){let e=this.store;if(!e)throw Error(`[Node]store is required!`);e.registerNode(this);let t=e.props;if(t&&t.isLeaf!==void 0){let e=UH(this,`isLeaf`);jd(e)&&(this.isLeafByUser=e)}if(e.lazy!==!0&&this.data?(this.setData(this.data),e.defaultExpandAll&&(this.expanded=!0,this.canFocus=!0)):this.level>0&&e.lazy&&e.defaultExpandAll&&!this.isLeafByUser&&this.expand(),A(this.data)||RH(this,this.data),!this.data)return;let n=e.defaultExpandedKeys,r=e.key;r&&!cd(this.key)&&n&&n.includes(this.key)&&this.expand(null,e.autoExpandParent),r&&e.currentNodeKey!==void 0&&this.key===e.currentNodeKey&&(e.currentNode&&(e.currentNode.isCurrent=!1),e.currentNode=this,e.currentNode.isCurrent=!0),e.lazy&&e._initDefaultCheckedNode(this),this.updateLeafState(),(this.level===1||this.parent?.expanded===!0)&&(this.canFocus=!0)}setData(e){A(e)||RH(this,e),this.data=e,this.childNodes=[];let t;t=this.level===0&&A(this.data)?this.data:UH(this,`children`)||[];for(let e=0,n=t.length;e-1)return e.childNodes[t+1]}return null}get previousSibling(){let e=this.parent;if(e){let t=e.childNodes.indexOf(this);if(t>-1)return t>0?e.childNodes[t-1]:null}return null}contains(e,t=!0){return(this.childNodes||[]).some(n=>n===e||t&&n.contains(e))}remove(){let e=this.parent;e&&e.removeChild(this)}insertChild(t,n,r){if(!t)throw Error(`InsertChild error: child is required.`);if(!(t instanceof e)){if(!r){let e=this.getChildren(!0);e?.includes(t.data)||(Ad(n)||n<0?e?.push(t.data):e?.splice(n,0,t.data))}Object.assign(t,{parent:this,store:this.store}),t=ve(new e(t)),t instanceof e&&t.initialize()}t.level=this.level+1,Ad(n)||n<0?this.childNodes.push(t):this.childNodes.splice(n,0,t),this.updateLeafState()}insertBefore(e,t){let n;t&&(n=this.childNodes.indexOf(t)),this.insertChild(e,n)}insertAfter(e,t){let n;t&&(n=this.childNodes.indexOf(t),n!==-1&&(n+=1)),this.insertChild(e,n)}removeChild(e){let t=this.getChildren()||[],n=t.indexOf(e.data);n>-1&&t.splice(n,1);let r=this.childNodes.indexOf(e);r>-1&&(this.store&&this.store.deregisterNode(e),e.parent=null,this.childNodes.splice(r,1)),this.updateLeafState()}removeChildByData(e){let t=this.childNodes.find(t=>t.data===e);t&&this.removeChild(t)}expand(e,t){let n=()=>{if(t){let e=this.parent;for(;e&&e.level>0;)e.expanded=!0,e=e.parent}this.expanded=!0,e&&e(),WH(this.childNodes,!0)};this.shouldLoadData()?this.loadData(e=>{A(e)&&(this.store.checkStrictly||(this.checked?this.setChecked(!0,!0):HH(this)),n())}):n()}doCreateChildren(e,t={}){e.forEach(e=>{this.insertChild(Object.assign({data:e},t),void 0,!0)})}collapse(){this.expanded=!1,WH(this.childNodes,!1)}shouldLoadData(){return!!(this.store.lazy===!0&&this.store.load&&!this.loaded)}updateLeafState(){if(this.store.lazy===!0&&this.loaded!==!0&&this.isLeafByUser!==void 0){this.isLeaf=this.isLeafByUser,this.isEffectivelyChecked=this.isLeaf&&this.disabled;return}let e=this.childNodes;if(!this.store.lazy||this.store.lazy===!0&&this.loaded===!0){this.isLeaf=!e||e.length===0,this.isEffectivelyChecked=this.isLeaf&&this.disabled;return}this.isLeaf=!1}setChecked(e,t,n,r){if(this.indeterminate=e===`half`,this.checked=e===!0,this.isEffectivelyChecked=!this.childNodes.length&&(this.disabled||this.checked),this.store.checkStrictly&&!t)return;if(!(this.shouldLoadData()&&!this.store.checkDescendants)){let n=()=>{if(t){let n=this.childNodes;for(let i=0,a=n.length;i{n(),HH(this)},{checked:e!==!1});return}else n()}let i=this.parent;!i||i.level===0||!n&&!this.store.checkStrictly&&HH(i)}getChildren(e=!1){if(this.level===0)return this.data;let t=this.data;if(!t)return null;let n=this.store.props,r=`children`;return n&&(r=n.children||`children`),Ad(t[r])&&(t[r]=null),e&&!t[r]&&(t[r]=[]),t[r]}updateChildren(){let e=this.getChildren()||[],t=this.childNodes.map(e=>e.data),n={},r=[];e.forEach((e,i)=>{let a=e[LH];a&&t.some(e=>e?.$treeNodeId===a)?n[a]={index:i,data:e}:r.push({index:i,data:e})}),this.store.lazy||t.forEach(e=>{n[e?.$treeNodeId]||this.removeChildByData(e)}),r.forEach(({index:e,data:t})=>{this.insertChild({data:t},e)}),this.updateLeafState()}loadData(e,t={}){this.store.lazy===!0&&this.store.load&&!this.loaded&&(!this.loading||Object.keys(t).length)?(this.loading=!0,this.store.load(this,n=>{this.childNodes=[],this.doCreateChildren(n,t),this.loaded=!0,this.loading=!1,this.updateLeafState(),e&&e.call(this,n)},()=>{this.loading=!1})):e&&e.call(this)}eachNode(e){let t=[this];for(;t.length;){let n=t.shift();t.unshift(...n.childNodes),e(n)}}reInitChecked(){this.store.checkStrictly||HH(this)}},qH=class{constructor(e){this.lazy=!1,this.checkStrictly=!1,this.autoExpandParent=!1,this.defaultExpandAll=!1,this.checkDescendants=!1,this.currentNode=null,this.currentNodeKey=null;for(let t in e)Ye(e,t)&&(this[t]=e[t]);this.nodesMap={}}initialize(){if(this.root=new KH({data:this.data,store:this}),this.root.initialize(),this.lazy&&this.load){let e=this.load;e(this.root,e=>{this.root.doCreateChildren(e),this._initDefaultCheckedNodes()},ge)}else this._initDefaultCheckedNodes()}filter(e){let t=this.filterNodeMethod,n=this.lazy,r=async function(i){let a=i.root?i.root.childNodes:i.childNodes;for(let[n,i]of a.entries())i.visible=!!t?.call(i,e,i.data,i),n%80==0&&n>0&&await U(),await r(i);if(!i.visible&&a.length){let e=!0;e=!a.some(e=>e.visible),i.root?i.root.visible=e===!1:i.visible=e===!1}e&&i.visible&&!i.isLeaf&&(!n||i.loaded)&&i.expand()};r(this)}setData(e){e===this.root.data?this.root.updateChildren():(this.nodesMap={},this.root.setData(e),this._initDefaultCheckedNodes(),this.setCurrentNodeKey(this.currentNodeKey))}getNode(e){if(e instanceof KH)return e;let t=E(e)?zH(this.key,e):e;return this.nodesMap[t]||null}insertBefore(e,t){let n=this.getNode(t);n.parent?.insertBefore({data:e},n)}insertAfter(e,t){let n=this.getNode(t);n.parent?.insertAfter({data:e},n)}remove(e){let t=this.getNode(e);t&&t.parent&&(t===this.currentNode&&(this.currentNode=null),t.parent.removeChild(t))}append(e,t){let n=Fd(t)?this.root:this.getNode(t);n&&n.insertChild({data:e})}_initDefaultCheckedNodes(){let e=this.defaultCheckedKeys||[],t=this.nodesMap;e.forEach(e=>{let n=t[e];n&&n.setChecked(!0,!this.checkStrictly)})}_initDefaultCheckedNode(e){let t=this.defaultCheckedKeys||[];!cd(e.key)&&t.includes(e.key)&&e.setChecked(!0,!this.checkStrictly)}setDefaultCheckedKey(e){e!==this.defaultCheckedKeys&&(this.defaultCheckedKeys=e,this._initDefaultCheckedNodes())}registerNode(e){let t=this.key;if(!(!e||!e.data))if(!t)this.nodesMap[e.id]=e;else{let t=e.key;cd(t)||(this.nodesMap[t]=e)}}deregisterNode(e){!this.key||!e||!e.data||(e.childNodes.forEach(e=>{this.deregisterNode(e)}),delete this.nodesMap[e.key])}getCheckedNodes(e=!1,t=!1){let n=[],r=function(i){(i.root?i.root.childNodes:i.childNodes).forEach(i=>{(i.checked||t&&i.indeterminate)&&(!e||e&&i.isLeaf)&&n.push(i.data),r(i)})};return r(this),n}getCheckedKeys(e=!1){return this.getCheckedNodes(e).map(e=>(e||{})[this.key])}getHalfCheckedNodes(){let e=[],t=function(n){(n.root?n.root.childNodes:n.childNodes).forEach(n=>{n.indeterminate&&e.push(n.data),t(n)})};return t(this),e}getHalfCheckedKeys(){return this.getHalfCheckedNodes().map(e=>(e||{})[this.key])}_getAllNodes(){let e=[],t=this.nodesMap;for(let n in t)Ye(t,n)&&e.push(t[n]);return e}updateChildren(e,t){let n=this.nodesMap[e];if(!n)return;let r=n.childNodes;for(let e=r.length-1;e>=0;e--){let t=r[e];this.remove(t.data)}for(let e=0,r=t.length;ee.level-t.level),i=Object.create(null),a=Object.keys(n);r.forEach(e=>e.setChecked(!1,!1));let o=t=>{t.childNodes.forEach(t=>{i[t.data[e]]=!0,t.childNodes?.length&&o(t)})};for(let n=0,s=r.length;n{t.isLeaf||t.setChecked(!1,!1,!0),e(t)}),t.reInitChecked()};e(s)}}}setCheckedNodes(e,t=!1){let n=this.key,r={};e.forEach(e=>{r[(e||{})[n]]=!0}),this._setCheckedKeys(n,t,r)}setCheckedKeys(e,t=!1){this.defaultCheckedKeys=e;let n=this.key,r={};e.forEach(e=>{r[e]=!0}),this._setCheckedKeys(n,t,r)}setDefaultExpandedKeys(e){e||=[],this.defaultExpandedKeys=e,e.forEach(e=>{let t=this.getNode(e);t&&t.expand(null,this.autoExpandParent)})}setChecked(e,t,n){let r=this.getNode(e);r&&r.setChecked(!!t,n)}getCurrentNode(){return this.currentNode}setCurrentNode(e){let t=this.currentNode;t&&(t.isCurrent=!1),this.currentNode=e,this.currentNode.isCurrent=!0}setUserCurrentNode(e,t=!0){let n=e[this.key],r=this.nodesMap[n];this.setCurrentNode(r),t&&this.currentNode&&this.currentNode.level>1&&this.currentNode.parent?.expand(null,!0)}setCurrentNodeKey(e,t=!0){if(this.currentNodeKey=e,Fd(e)){this.currentNode&&(this.currentNode.isCurrent=!1),this.currentNode=null;return}let n=this.getNode(e);n&&(this.setCurrentNode(n),t&&this.currentNode&&this.currentNode.level>1&&this.currentNode.parent?.expand(null,!0))}};function JH(e){let t=l(PH,null),n={treeNodeExpand:t=>{e.node!==t&&e.node?.collapse()},children:new Set};return t&&t.children.add(n),T(()=>{t&&t.children.delete(n),n=null}),Qe(PH,n),{broadcastExpanded:t=>{if(e.accordion)for(let e of n.children)e.treeNodeExpand(t)}}}var YH=Symbol(`dragEvents`);function XH({props:e,ctx:t,el$:r,dropIndicator$:i,store:a}){let o=$(`tree`),s=q({showDropIndicator:!1,draggingNode:null,dropNode:null,allowDrop:!0,dropType:null});return Qe(YH,{treeNodeDragStart:({event:r,treeNode:i})=>{if(r.dataTransfer){if(n(e.allowDrag)&&!e.allowDrag(i.node))return r.preventDefault(),!1;r.dataTransfer.effectAllowed=`move`;try{r.dataTransfer.setData(`text/plain`,``)}catch{}s.value.draggingNode=i,t.emit(`node-drag-start`,i.node,r)}},treeNodeDragOver:({event:a,treeNode:c})=>{if(!a.dataTransfer)return;let l=c,u=s.value.dropNode;u&&u.node.id!==l.node.id&&_p(u.$el,o.is(`drop-inner`));let d=s.value.draggingNode;if(!d||!l)return;let f=!0,p=!0,m=!0,h=!0;n(e.allowDrop)&&(f=e.allowDrop(d.node,l.node,`prev`),h=p=e.allowDrop(d.node,l.node,`inner`),m=e.allowDrop(d.node,l.node,`next`)),a.dataTransfer.dropEffect=p||f||m?`move`:`none`,(f||p||m)&&u?.node.id!==l.node.id&&(u&&t.emit(`node-drag-leave`,d.node,u.node,a),t.emit(`node-drag-enter`,d.node,l.node,a)),f||p||m?s.value.dropNode=l:s.value.dropNode=null,l.node.nextSibling===d.node&&(m=!1),l.node.previousSibling===d.node&&(f=!1),l.node.contains(d.node,!1)&&(p=!1),(d.node===l.node||d.node.contains(l.node))&&(f=!1,p=!1,m=!1);let g=l.$el,_=g.querySelector(`.${o.be(`node`,`content`)}`).getBoundingClientRect(),v=r.value.getBoundingClientRect(),y=r.value.scrollTop,b,x=f?p?.25:m?.45:1:-1/0,S=m?p?.75:f?.55:0:1/0,C=-9999,w=a.clientY-_.top;b=w<_.height*x?`before`:w>_.height*S?`after`:p?`inner`:`none`;let T=g.querySelector(`.${o.be(`node`,`expand-icon`)}`).getBoundingClientRect(),E=i.value;b===`before`?C=T.top-v.top+y:b===`after`&&(C=T.bottom-v.top+y),E.style.top=`${C}px`,E.style.left=`${T.right-v.left}px`,b===`inner`?gp(g,o.is(`drop-inner`)):_p(g,o.is(`drop-inner`)),s.value.showDropIndicator=b===`before`||b===`after`,s.value.allowDrop=s.value.showDropIndicator||h,s.value.dropType=b,t.emit(`node-drag-over`,d.node,l.node,a)},treeNodeDragEnd:e=>{let{draggingNode:n,dropType:r,dropNode:i}=s.value;if(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),n?.node.data&&i){let s={data:n.node.data};r!==`none`&&n.node.remove(),r===`before`?i.node.parent?.insertBefore(s,i.node):r===`after`?i.node.parent?.insertAfter(s,i.node):r===`inner`&&i.node.insertChild(s),r!==`none`&&(a.value.registerNode(s),a.value.key&&n.node.eachNode(e=>{a.value.nodesMap[e.data[a.value.key]]?.setChecked(e.checked,!a.value.checkStrictly)})),_p(i.$el,o.is(`drop-inner`)),t.emit(`node-drag-end`,n.node,i.node,r,e),r!==`none`&&t.emit(`node-drop`,n.node,i.node,r,e)}n&&!i&&t.emit(`node-drag-end`,n.node,null,r,e),s.value.showDropIndicator=!1,s.value.draggingNode=null,s.value.dropNode=null,s.value.allowDrop=!0}}),{dragState:s}}var ZH=z({name:`ElTreeNode`,components:{ElCollapseTransition:sA,ElCheckbox:ok,NodeContent:z({name:`ElTreeNodeContent`,props:{node:{type:Object,required:!0},renderContent:Function},setup(e){let t=$(`tree`),n=l(NH),r=l(MH);return()=>{let i=e.node,{data:a,store:o}=i;return e.renderContent?e.renderContent(Je,{_self:n,node:i,data:a,store:o}):I(r.ctx.slots,`default`,{node:i,data:a},()=>[Je(QV,{tag:`span`,truncated:!0,class:t.be(`node`,`label`)},()=>[i.label])])}}}),ElIcon:By,Loading:dy},props:{node:{type:KH,default:()=>({})},props:{type:Object,default:()=>({})},accordion:Boolean,renderContent:Function,renderAfterExpand:Boolean,showCheckbox:Boolean},emits:[`node-expand`],setup(e,t){let r=$(`tree`),{broadcastExpanded:i}=JH(e),a=l(MH),o=q(!1),s=q(!1),c=q(),u=q(),d=q(),f=l(YH),p=Xe();Qe(NH,p),a||Jd(`Tree`,`Can not find node's tree.`),e.node.expanded&&(o.value=!0,s.value=!0);let m=a.props.props.children||`children`;M(()=>{let t=e.node.data?.[m];return t&&[...t]},()=>{e.node.updateChildren()}),M(()=>e.node.indeterminate,t=>{_(e.node.checked,t)}),M(()=>e.node.checked,t=>{_(t,e.node.indeterminate)}),M(()=>e.node.childNodes.length,()=>e.node.reInitChecked()),M(()=>e.node.expanded,e=>{U(()=>o.value=e),e&&(s.value=!0)});let h=e=>a.props.nodeKey?zH(a.props.nodeKey,e.data):e.id,g=t=>{let r=e.props.class;if(!r)return{};let i;if(n(r)){let{data:e}=t;i=r(e,t)}else i=r;return P(i)?{[i]:!0}:i},_=(t,n)=>{(c.value!==t||u.value!==n)&&a.ctx.emit(`check-change`,e.node.data,t,n),c.value=t,u.value=n},v=t=>{BH(a.store,a.ctx.emit,()=>{if(a?.props?.nodeKey){let t=h(e.node);a.store.value.setCurrentNodeKey(t)}else a.store.value.setCurrentNode(e.node)}),a.currentNode.value=e.node,a.props.expandOnClickNode&&b(),(a.props.checkOnClickNode||e.node.isLeaf&&a.props.checkOnClickLeaf&&e.showCheckbox)&&!e.node.disabled&&x(!e.node.checked),a.ctx.emit(`node-click`,e.node.data,e.node,p,t)},y=t=>{a.instance.vnode.props?.onNodeContextmenu&&(t.stopPropagation(),t.preventDefault()),a.ctx.emit(`node-contextmenu`,t,e.node.data,e.node,p)},b=()=>{e.node.isLeaf||(o.value?(a.ctx.emit(`node-collapse`,e.node.data,e.node,p),e.node.collapse()):e.node.expand(()=>{t.emit(`node-expand`,e.node.data,e.node,p)}))},x=t=>{let n=a?.props.checkStrictly,r=e.node.childNodes;!n&&r.length&&(t=r.some(e=>!e.isEffectivelyChecked)),e.node.setChecked(t,!n),U(()=>{let t=a.store.value;a.ctx.emit(`check`,e.node.data,{checkedNodes:t.getCheckedNodes(),checkedKeys:t.getCheckedKeys(),halfCheckedNodes:t.getHalfCheckedNodes(),halfCheckedKeys:t.getHalfCheckedKeys()})})};return{ns:r,node$:d,tree:a,expanded:o,childNodeRendered:s,oldChecked:c,oldIndeterminate:u,getNodeKey:h,getNodeClass:g,handleSelectChange:_,handleClick:v,handleContextMenu:y,handleExpandIconClick:b,handleCheckChange:x,handleChildNodeExpand:(e,t,n)=>{i(t),a.ctx.emit(`node-expand`,e,t,n)},handleDragStart:t=>{a.props.draggable&&f.treeNodeDragStart({event:t,treeNode:e})},handleDragOver:t=>{t.preventDefault(),a.props.draggable&&f.treeNodeDragOver({event:t,treeNode:{$el:d.value,node:e.node}})},handleDrop:e=>{e.preventDefault()},handleDragEnd:e=>{a.props.draggable&&f.treeNodeDragEnd(e)},CaretRight:Kv}}}),QH=[`aria-expanded`,`aria-disabled`,`aria-checked`,`draggable`,`data-key`],$H=[`aria-expanded`];function eU(e,t,n,i,a,o){let s=h(`el-icon`),c=h(`el-checkbox`),l=h(`loading`),u=h(`node-content`),d=h(`el-tree-node`),f=h(`el-collapse-transition`);return Ge((N(),W(`div`,{ref:`node$`,class:F([e.ns.b(`node`),e.ns.is(`expanded`,e.expanded),e.ns.is(`current`,e.node.isCurrent),e.ns.is(`hidden`,!e.node.visible),e.ns.is(`focusable`,!e.node.disabled),e.ns.is(`checked`,!e.node.disabled&&e.node.checked),e.getNodeClass(e.node)]),role:`treeitem`,tabindex:`-1`,"aria-expanded":e.expanded,"aria-disabled":e.node.disabled,"aria-checked":e.node.checked,draggable:e.tree.props.draggable,"data-key":e.getNodeKey(e.node),onClick:t[2]||=kn((...t)=>e.handleClick&&e.handleClick(...t),[`stop`]),onContextmenu:t[3]||=(...t)=>e.handleContextMenu&&e.handleContextMenu(...t),onDragstart:t[4]||=kn((...t)=>e.handleDragStart&&e.handleDragStart(...t),[`stop`]),onDragover:t[5]||=kn((...t)=>e.handleDragOver&&e.handleDragOver(...t),[`stop`]),onDragend:t[6]||=kn((...t)=>e.handleDragEnd&&e.handleDragEnd(...t),[`stop`]),onDrop:t[7]||=kn((...t)=>e.handleDrop&&e.handleDrop(...t),[`stop`])},[B(`div`,{class:F(e.ns.be(`node`,`content`)),style:m({paddingLeft:(e.node.level-1)*e.tree.props.indent+`px`})},[e.tree.props.icon||e.CaretRight?(N(),H(s,{key:0,class:F([e.ns.be(`node`,`expand-icon`),e.ns.is(`leaf`,e.node.isLeaf),{expanded:!e.node.isLeaf&&e.expanded}]),onClick:kn(e.handleExpandIconClick,[`stop`])},{default:V(()=>[(N(),H(L(e.tree.props.icon||e.CaretRight)))]),_:1},8,[`class`,`onClick`])):G(`v-if`,!0),e.showCheckbox?(N(),H(c,{key:1,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:!!e.node.disabled,onClick:t[0]||=kn(()=>{},[`stop`]),onChange:e.handleCheckChange},null,8,[`model-value`,`indeterminate`,`disabled`,`onChange`])):G(`v-if`,!0),e.node.loading?(N(),H(s,{key:2,class:F([e.ns.be(`node`,`loading-icon`),e.ns.is(`loading`)])},{default:V(()=>[J(l)]),_:1},8,[`class`])):G(`v-if`,!0),J(u,{node:e.node,"render-content":e.renderContent},null,8,[`node`,`render-content`])],6),J(f,null,{default:V(()=>[!e.renderAfterExpand||e.childNodeRendered?Ge((N(),W(`div`,{key:0,class:F(e.ns.be(`node`,`children`)),role:`group`,"aria-expanded":e.expanded,onClick:t[1]||=kn(()=>{},[`stop`])},[(N(!0),W(R,null,r(e.node.childNodes,t=>(N(),H(d,{key:e.getNodeKey(t),"render-content":e.renderContent,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,node:t,accordion:e.accordion,props:e.props,onNodeExpand:e.handleChildNodeExpand},null,8,[`render-content`,`render-after-expand`,`show-checkbox`,`node`,`accordion`,`props`,`onNodeExpand`]))),128))],10,$H)),[[jt,e.expanded]]):G(`v-if`,!0)]),_:1})],42,QH)),[[jt,e.node.visible]])}var tU=$x(ZH,[[`render`,eU]]);function nU({el$:e},t){let n=$(`tree`);d(()=>{i()}),C(()=>{e.value?.querySelectorAll(`input[type=checkbox]`).forEach(e=>{e.setAttribute(`tabindex`,`-1`)})});function r(e,n){let r=t.value.getNode(e[n].dataset.key);return r.canFocus&&r.visible&&(r.parent?.expanded||r.parent?.level===0)}kf(e,`keydown`,t=>{let i=t.target;if(!i.className.includes(n.b(`node`)))return;let a=Kp(t),o=Array.from(e.value.querySelectorAll(`.${n.is(`focusable`)}[role=treeitem]`)),s=o.indexOf(i),c;if([X.up,X.down].includes(a)){if(t.preventDefault(),a===X.up){c=s===-1?0:s===0?o.length-1:s-1;let e=c;for(;!r(o,c);){if(c--,c===e){c=-1;break}c<0&&(c=o.length-1)}}else{c=s===-1?0:s=o.length&&(c=0)}}c!==-1&&o[c].focus()}[X.left,X.right].includes(a)&&(t.preventDefault(),i.click());let l=i.querySelector(`[type="checkbox"]`);[X.enter,X.numpadEnter,X.space].includes(a)&&l&&(t.preventDefault(),l.click())});let i=()=>{if(!e.value)return;let t=Array.from(e.value.querySelectorAll(`.${n.is(`focusable`)}[role=treeitem]`));Array.from(e.value.querySelectorAll(`input[type=checkbox]`)).forEach(e=>{e.setAttribute(`tabindex`,`-1`)});let r=e.value.querySelectorAll(`.${n.is(`checked`)}[role=treeitem]`);if(r.length){r[0].setAttribute(`tabindex`,`0`);return}t[0]?.setAttribute(`tabindex`,`0`)}}var rU=z({name:`ElTree`,components:{ElTreeNode:tU},props:FH,emits:IH,setup(e,t){let{t:n}=Dp(),r=$(`tree`),i=q(new qH({key:e.nodeKey,data:e.data,lazy:e.lazy,props:e.props,load:e.load,currentNodeKey:e.currentNodeKey,checkStrictly:e.checkStrictly,checkDescendants:e.checkDescendants,defaultCheckedKeys:e.defaultCheckedKeys,defaultExpandedKeys:e.defaultExpandedKeys,autoExpandParent:e.autoExpandParent,defaultExpandAll:e.defaultExpandAll,filterNodeMethod:e.filterNodeMethod}));i.value.initialize();let a=q(i.value.root),o=q(null),s=q(null),c=q(null),{broadcastExpanded:l}=JH(e),{dragState:u}=XH({props:e,ctx:t,el$:s,dropIndicator$:c,store:i});nU({el$:s},i);let d=Xe(),f=K(()=>{let e=d?.parent;for(;e;){if(e.type.name===`ElTreeSelect`)return!0;e=e.parent}return!1}),p=K(()=>{let{childNodes:e}=a.value;return(!e||e.length===0||e.every(({visible:e})=>!e))&&!f.value});M(()=>e.currentNodeKey,e=>{i.value.setCurrentNodeKey(e??null)}),M(()=>e.defaultCheckedKeys,(e,t)=>{sd(e,t)||i.value.setDefaultCheckedKey(e??[])}),M(()=>e.defaultExpandedKeys,e=>{i.value.setDefaultExpandedKeys(e??[])}),M(()=>e.data,e=>{i.value.setData(e)},{deep:!0}),M(()=>e.checkStrictly,e=>{i.value.checkStrictly=e});let m=t=>{if(!e.filterNodeMethod)throw Error(`[Tree] filterNodeMethod is required when filter`);i.value.filter(t)},h=t=>e.nodeKey?zH(e.nodeKey,t.data):t.id,g=t=>{if(!e.nodeKey)throw Error(`[Tree] nodeKey is required in ${t}`)},_=e=>{g(`getNodePath`);let t=i.value.getNode(e);if(!t)return[];let n=[t.data],r=t.parent;for(;r&&r!==a.value;)n.push(r.data),r=r.parent;return n.reverse()},v=(e,t)=>i.value.getCheckedNodes(e,t),y=e=>i.value.getCheckedKeys(e),b=()=>{let e=i.value.getCurrentNode();return e?e.data:null};return Qe(MH,{ctx:t,props:e,store:i,root:a,currentNode:o,instance:d}),Qe(sb,void 0),{ns:r,store:i,root:a,currentNode:o,dragState:u,el$:s,dropIndicator$:c,isEmpty:p,filter:m,getNodeKey:h,getNodePath:_,getCheckedNodes:v,getCheckedKeys:y,getCurrentNode:b,getCurrentKey:()=>{g(`getCurrentKey`);let t=b();return t?t[e.nodeKey]:null},setCheckedNodes:(e,t)=>{g(`setCheckedNodes`),i.value.setCheckedNodes(e,t)},setCheckedKeys:(e,t)=>{g(`setCheckedKeys`),i.value.setCheckedKeys(e,t)},setChecked:(e,t,n=!1)=>{i.value.setChecked(e,t,n)},getHalfCheckedNodes:()=>i.value.getHalfCheckedNodes(),getHalfCheckedKeys:()=>i.value.getHalfCheckedKeys(),setCurrentNode:(e,n=!0)=>{g(`setCurrentNode`),BH(i,t.emit,()=>{l(e),i.value.setUserCurrentNode(e,n)})},setCurrentKey:(e=null,n=!0)=>{g(`setCurrentKey`),BH(i,t.emit,()=>{l(),i.value.setCurrentNodeKey(e,n)})},t:n,getNode:e=>i.value.getNode(e),remove:e=>{i.value.remove(e)},append:(e,t)=>{i.value.append(e,t)},insertBefore:(e,t)=>{i.value.insertBefore(e,t)},insertAfter:(e,t)=>{i.value.insertAfter(e,t)},handleNodeExpand:(e,n,r)=>{l(n),t.emit(`node-expand`,e,n,r)},updateKeyChildren:(e,t)=>{g(`updateKeyChildren`),i.value.updateChildren(e,t)}}}});function iU(e,t,n,i,a,o){let s=h(`el-tree-node`);return N(),W(`div`,{ref:`el$`,class:F([e.ns.b(),e.ns.is(`dragging`,!!e.dragState.draggingNode),e.ns.is(`drop-not-allow`,!e.dragState.allowDrop),e.ns.is(`drop-inner`,e.dragState.dropType===`inner`),{[e.ns.m(`highlight-current`)]:e.highlightCurrent}]),role:`tree`},[(N(!0),W(R,null,r(e.root.childNodes,t=>(N(),H(s,{key:e.getNodeKey(t),node:t,props:e.props,accordion:e.accordion,"render-after-expand":e.renderAfterExpand,"show-checkbox":e.showCheckbox,"render-content":e.renderContent,onNodeExpand:e.handleNodeExpand},null,8,[`node`,`props`,`accordion`,`render-after-expand`,`show-checkbox`,`render-content`,`onNodeExpand`]))),128)),e.isEmpty?(N(),W(`div`,{key:0,class:F(e.ns.e(`empty-block`))},[I(e.$slots,`empty`,{},()=>[B(`span`,{class:F(e.ns.e(`empty-text`))},S(e.emptyText??e.t(`el.tree.emptyText`)),3)])],2)):G(`v-if`,!0),Ge(B(`div`,{ref:`dropIndicator$`,class:F(e.ns.e(`drop-indicator`))},null,2),[[jt,e.dragState.showDropIndicator]])],2)}var aU=Pv($x(rU,[[`render`,iU]])),oU=(e,{attrs:t,emit:n},{select:r,tree:i,key:a})=>{let o=$(`tree-select`);M(()=>e.data,()=>{e.filterable&&U(()=>{i.value?.filter(r.value?.states.inputValue)})},{flush:`post`});let s=e=>{let t=e.at(-1);if(t.expanded&&t.childNodes.at(-1))s([t.childNodes.at(-1)]);else{(i.value.el$?.querySelector(`[data-key="${e.at(-1).key}"]`))?.focus({preventScroll:!0});return}};return d(()=>{kf(()=>r.value?.$el,`keydown`,async e=>{let t=Kp(e),{dropdownMenuVisible:n}=r.value;[X.down,X.up].includes(t)&&n&&(await U(),setTimeout(()=>{if(X.up===t){let e=i.value.store.root.childNodes;s(e);return}r.value.optionsArray[r.value.states.hoveringIndex].$el?.parentNode?.parentNode?.focus({preventScroll:!0})}))},{capture:!0})}),{...Sd(Se(e),Object.keys(LE.props)),...t,class:K(()=>t.class),style:K(()=>t.style),"onUpdate:modelValue":e=>n(br,e),valueKey:a,popperClass:K(()=>{let t=[o.e(`popper`)];return e.popperClass&&t.push(e.popperClass),t.join(` `)}),filterMethod:(t=``)=>{e.filterMethod?e.filterMethod(t):e.remoteMethod?e.remoteMethod(t):i.value?.filter(t)}}},sU=z({extends:RE,setup(e,t){let n=RE.setup(e,t);delete n.selectOptionClick;let r=Xe().proxy;return U(()=>{n.select.states.cachedOptions.get(r.value)||n.select.onOptionCreate(r)}),M(()=>t.attrs.visible,e=>{U(()=>{n.states.visible=e})},{immediate:!0}),n},methods:{selectOptionClick(){this.$el.parentElement.click()}}});function cU(e){return e||e===0}function lU(e){return A(e)&&e.length}function uU(e){return A(e)?e:cU(e)?[e]:[]}function dU(e,t,n,r,i){for(let a=0;a{M([()=>e.modelValue,o],()=>{e.showCheckbox&&U(()=>{let t=o.value;t&&!sd(t.getCheckedKeys(),uU(e.modelValue))&&t.setCheckedKeys(uU(e.modelValue))})},{immediate:!0,deep:!0});let c=K(()=>({value:s.value,label:`label`,children:`children`,disabled:`disabled`,isLeaf:`isLeaf`,...e.props})),l=(e,t)=>{let r=c.value[e];return n(r)?r(t,o.value?.getNode(l(`value`,t))):t[r]},u=uU(e.modelValue).map(t=>dU(e.data||[],e=>l(`value`,e)===t,e=>l(`children`,e),(e,t,n,r)=>r&&l(`value`,r))).filter(e=>cU(e)),d=K(()=>{if(!e.renderAfterExpand&&!e.lazy)return[];let t=[];return fU(e.data.concat(e.cacheData),e=>{let n=l(`value`,e);t.push({value:n,currentLabel:l(`label`,e),isDisabled:l(`disabled`,e)})},e=>l(`children`,e)),t}),f=()=>o.value?.getCheckedKeys().filter(e=>{let t=o.value?.getNode(e);return!cd(t)&&Nd(t.childNodes)}),p=t=>{sd(e.modelValue,t)||i(xr,t)};function m(e){i(br,e),p(e)}return{...Sd(Se(e),Object.keys(aU.props)),...t,nodeKey:s,expandOnClickNode:K(()=>!e.checkStrictly&&e.expandOnClickNode),defaultExpandedKeys:K(()=>e.defaultExpandedKeys?e.defaultExpandedKeys.concat(u):u),renderContent:(t,{node:n,data:i,store:a})=>t(sU,{value:l(`value`,i),label:l(`label`,i),disabled:l(`disabled`,i),visible:n.visible},e.renderContent?()=>e.renderContent(t,{node:n,data:i,store:a}):r.default?()=>r.default({node:n,data:i,store:a}):void 0),filterNodeMethod:(t,n,r)=>e.filterNodeMethod?e.filterNodeMethod(t,n,r):t?new RegExp(dp(t),`i`).test(l(`label`,n)||``):!0,onNodeClick:(n,r,i)=>{if(t.onNodeClick?.(n,r,i),!(e.showCheckbox&&e.checkOnClickNode))if(!e.showCheckbox&&(e.checkStrictly||r.isLeaf)){if(!l(`disabled`,n)){let e=a.value?.states.options.get(l(`value`,n));a.value?.handleOptionSelect(e)}}else e.expandOnClickNode&&i.proxy.handleExpandIconClick()},onCheck:(n,r)=>{if(!e.showCheckbox)return;let i=l(`value`,n),s={};fU([o.value.store.root],e=>s[e.key]=e,e=>e.childNodes);let c=r.checkedKeys,u=e.multiple?uU(e.modelValue).filter(e=>!(e in s)&&!c.includes(e)):[],d=u.concat(c);if(e.checkStrictly)m(e.multiple?d:d.includes(i)?i:void 0);else if(e.multiple){let e=f();m(u.concat(e))}else{let t=dU([n],e=>!lU(l(`children`,e))&&!l(`disabled`,e),e=>l(`children`,e)),r=t?l(`value`,t):void 0,i=cU(e.modelValue)&&!!dU([n],t=>l(`value`,t)===e.modelValue,e=>l(`children`,e));m(r===e.modelValue||i?void 0:r)}U(()=>{let r=uU(e.modelValue);o.value.setCheckedKeys(r),t.onCheck?.(n,{checkedKeys:o.value.getCheckedKeys(),checkedNodes:o.value.getCheckedNodes(),halfCheckedKeys:o.value.getHalfCheckedKeys(),halfCheckedNodes:o.value.getHalfCheckedNodes()})}),a.value?.focus()},onNodeExpand:(n,r,i)=>{t.onNodeExpand?.(n,r,i),U(()=>{if(!e.checkStrictly&&e.lazy&&e.multiple&&r.checked){let t={},n=o.value.getCheckedKeys();fU([o.value.store.root],e=>t[e.key]=e,e=>e.childNodes);let r=uU(e.modelValue).filter(e=>!(e in t)&&!n.includes(e)),i=f();m(r.concat(i))}})},cacheOptions:d}},mU=z({props:{data:{type:Array,default:()=>[]}},setup(e){let t=l(cE);return M(()=>e.data,()=>{e.data.forEach(e=>{t.states.cachedOptions.has(e.value)||t.states.cachedOptions.set(e.value,e)});let n=t.selectRef?.querySelectorAll(`input`)||[];nf&&!Array.from(n).includes(document.activeElement)&&t.setSelected()},{flush:`post`,immediate:!0}),()=>void 0}}),hU=Pv(z({name:`ElTreeSelect`,inheritAttrs:!1,props:{...dE,...FH,cacheData:{type:Array,default:()=>[]}},setup(e,t){let{slots:n,expose:r,emit:i,attrs:a}=t,o={...a,onChange:void 0},s=q(),c=q(),l=K(()=>e.nodeKey||e.valueKey||`value`),u=oU(e,{attrs:a,emit:i},{select:s,tree:c,key:l}),{cacheOptions:f,...p}=pU(e,{attrs:o,slots:n,emit:i},{select:s,tree:c,key:l}),m=ve({});return r(m),d(()=>{Object.assign(m,{...Sd(c.value,[`filter`,`updateKeyChildren`,`getCheckedNodes`,`setCheckedNodes`,`getCheckedKeys`,`setCheckedKeys`,`setChecked`,`getHalfCheckedNodes`,`getHalfCheckedKeys`,`getCurrentKey`,`getCurrentNode`,`setCurrentKey`,`setCurrentNode`,`getNode`,`remove`,`append`,`insertBefore`,`insertAfter`]),...Sd(s.value,[`focus`,`blur`,`selectedLabel`]),treeRef:c.value,selectRef:s.value})}),()=>Je(LE,ve({...u,ref:e=>s.value=e}),{...n,default:()=>[Je(mU,{data:f.value}),Je(aU,ve({...p,ref:e=>c.value=e}))]})}})),gU=Symbol(),_U={key:-1,level:-1,data:{}},vU={type:Number,default:26},yU=Q({data:{type:Z(Array),default:()=>DS([])},emptyText:{type:String},height:{type:Number,default:200},props:{type:Z(Object),default:()=>DS({children:`children`,label:`label`,disabled:`disabled`,value:`id`,class:``})},highlightCurrent:Boolean,showCheckbox:Boolean,defaultCheckedKeys:{type:Z(Array),default:()=>DS([])},checkStrictly:Boolean,defaultExpandedKeys:{type:Z(Array),default:()=>DS([])},indent:{type:Number,default:16},itemSize:vU,icon:{type:Ny},expandOnClickNode:{type:Boolean,default:!0},checkOnClickNode:Boolean,checkOnClickLeaf:{type:Boolean,default:!0},currentNodeKey:{type:Z([String,Number])},accordion:Boolean,filterMethod:{type:Z(Function)},perfMode:{type:Boolean,default:!0},scrollbarAlwaysOn:Boolean}),bU=Q({node:{type:Z(Object),default:()=>DS(_U)},expanded:Boolean,checked:Boolean,indeterminate:Boolean,showCheckbox:Boolean,disabled:Boolean,current:Boolean,hiddenExpandIcon:Boolean,itemSize:vU}),xU=Q({node:{type:Z(Object),required:!0}}),SU=`node-click`,CU=`node-drop`,wU=`node-expand`,TU=`node-collapse`,EU=`current-change`,DU=`check`,OU=`check-change`,kU=`node-contextmenu`,AU={[SU]:(e,t,n)=>e&&t&&n,[CU]:(e,t,n)=>e&&t&&n,[wU]:(e,t)=>e&&t,[TU]:(e,t)=>e&&t,[EU]:(e,t)=>e&&t,[DU]:(e,t)=>e&&t,[OU]:(e,t)=>e&&jd(t),[kU]:(e,t,n)=>e&&t&&n},jU={click:(e,t)=>!!(e&&t),drop:(e,t)=>!!(e&&t),toggle:e=>!!e,check:(e,t)=>e&&jd(t)};function MU(e,t){let n=q(new Set),r=q(new Set),{emit:i}=Xe();M([()=>t.value,()=>e.defaultCheckedKeys],()=>U(()=>{v(e.defaultCheckedKeys)}),{immediate:!0});let a=(i=!1)=>{if(!t.value||!e.showCheckbox||e.checkStrictly&&!i)return;let{levelTreeNodeMap:a,maxLevel:o}=t.value,s=n.value,c=new Set;for(let e=o;e>=1;--e){let t=a.get(e);t&&t.forEach(e=>{let t=e.children,n=!e.isLeaf||e.disabled||s.has(e.key);if(t){let r=!0,i=!1;for(let e of t){let t=e.key;if(e.isEffectivelyChecked||(n=!1),s.has(t))i=!0;else if(c.has(t)){r=!1,i=!0;break}else r=!1}r?s.add(e.key):i?(c.add(e.key),s.delete(e.key)):(s.delete(e.key),c.delete(e.key))}e.isEffectivelyChecked=n})}r.value=c},o=e=>n.value.has(e.key),s=e=>r.value.has(e.key),c=(t,r,i=!0,o=!0,s=!1)=>{let c=n.value,u=t.children;(!e.checkStrictly||s)&&i&&u?.length&&(r=u.some(e=>!e.isEffectivelyChecked));let d=(t,n)=>{c[n?`add`:`delete`](t.key);let r=t.children;(!e.checkStrictly||s)&&r&&r.forEach(e=>{(!e.disabled||e.children)&&d(e,n)})};d(t,r),o&&a(),i&&l(t,r)},l=(e,t)=>{let{checkedNodes:n,checkedKeys:r}=m(),{halfCheckedNodes:a,halfCheckedKeys:o}=h();i(DU,e.data,{checkedKeys:r,checkedNodes:n,halfCheckedKeys:o,halfCheckedNodes:a}),i(OU,e.data,t)};function u(e=!1){return m(e).checkedKeys}function d(e=!1){return m(e).checkedNodes}function f(){return h().halfCheckedKeys}function p(){return h().halfCheckedNodes}function m(r=!1){let i=[],a=[];if(t?.value&&e.showCheckbox){let{treeNodeMap:e}=t.value;n.value.forEach(t=>{let n=e.get(t);n&&(!r||r&&n.isLeaf)&&(a.push(t),i.push(n.data))})}return{checkedKeys:a,checkedNodes:i}}function h(){let n=[],i=[];if(t?.value&&e.showCheckbox){let{treeNodeMap:e}=t.value;r.value.forEach(t=>{let r=e.get(t);r&&(i.push(t),n.push(r.data))})}return{halfCheckedNodes:n,halfCheckedKeys:i}}function g(e){n.value.clear(),r.value.clear(),U(()=>{v(e)})}function _(n,r,i){if(t?.value&&e.showCheckbox){let e=t.value.treeNodeMap.get(n);e&&c(e,r,!1,void 0,i)}}function v(n){if(t?.value){let{treeNodeMap:r}=t.value;if(e.showCheckbox&&r&&n?.length>0){for(let e of n){let t=r.get(e);t&&!o(t)&&c(t,!0,!1,!1)}a()}}}return{updateCheckedKeys:a,toggleCheckbox:c,isChecked:o,isIndeterminate:s,getCheckedKeys:u,getCheckedNodes:d,getHalfCheckedKeys:f,getHalfCheckedNodes:p,setChecked:_,setCheckedKeys:g}}function NU(e,t){let r=q(new Set([])),i=q(new Set([])),a=K(()=>n(e.filterMethod));function o(n){if(!a.value)return;let o=new Set,s=i.value,c=r.value,l=[],u=t.value?.treeNodes||[],d=e.filterMethod;c.clear();function f(e){e.forEach(e=>{l.push(e),d?.(n,e.data,e)?l.forEach(e=>{o.add(e.key),e.expanded=!0}):(e.expanded=!1,e.isLeaf&&c.add(e.key));let t=e.children;if(t&&f(t),!e.isLeaf){if(!o.has(e.key))c.add(e.key);else if(t){let n=!0;for(let e of t)if(!c.has(e.key)){n=!1;break}n?s.add(e.key):s.delete(e.key)}}l.pop()})}return f(u),o}function s(e){return i.value.has(e.key)}return{hiddenExpandIconKeySet:i,hiddenNodeKeySet:r,doFilter:o,isForceHiddenExpandIcon:s}}function PU(e,t){let n=q(new Set),r=q(),i=Le(),a=q(),{isIndeterminate:o,isChecked:s,toggleCheckbox:c,getCheckedKeys:l,getCheckedNodes:u,getHalfCheckedKeys:d,getHalfCheckedNodes:f,setChecked:p,setCheckedKeys:m}=MU(e,i),{doFilter:h,hiddenNodeKeySet:g,isForceHiddenExpandIcon:_}=NU(e,i),v=K(()=>e.props?.value||`id`),y=K(()=>e.props?.children||`children`),b=K(()=>e.props?.disabled||`disabled`),x=K(()=>e.props?.label||`label`),S=K(()=>{let e=n.value,t=g.value,r=[],a=i.value?.treeNodes||[],o=[];for(let e=a.length-1;e>=0;--e)o.push(a[e]);for(;o.length;){let n=o.pop();if(!t.has(n.key)&&(r.push(n),n.children&&e.has(n.key)))for(let e=n.children.length-1;e>=0;--e)o.push(n.children[e])}return r}),C=K(()=>S.value.length>0);function w(e){let t=new Map,r=new Map,i=1;function a(e,o=1,s=void 0){let c=[];for(let i of e){let e=O(i),l={level:o,key:e,data:i};l.label=A(i),l.parent=s;let u=D(i);l.disabled=k(i),l.isLeaf=!u||u.length===0,l.expanded=n.value.has(e),u&&u.length&&(l.children=a(u,o+1,l)),c.push(l),t.set(e,l),r.has(o)||r.set(o,[]),r.get(o)?.push(l)}return o>i&&(i=o),c}let o=a(e);return{treeNodeMap:t,levelTreeNodeMap:r,maxLevel:i,treeNodes:o}}function T(e){let t=h(e);t&&(n.value=t)}function D(e){return e[y.value]}function O(e){return e?e[v.value]:``}function k(e){return e[b.value]}function A(e){return e[x.value]}function ee(e){n.value.has(e.key)?ie(e):re(e)}function j(e){let t=new Set,r=i.value.treeNodeMap;n.value.forEach(e=>{let t=r.get(e);t&&(t.expanded=!1)}),e.forEach(e=>{let n=r.get(e);for(;n&&!t.has(n.key);)t.add(n.key),n.expanded=!0,n=n.parent}),n.value=t}function N(n,r){te(n),t(SU,n.data,n,r),e.expandOnClickNode&&ee(n),e.showCheckbox&&(e.checkOnClickNode||n.isLeaf&&e.checkOnClickLeaf)&&!n.disabled&&c(n,!s(n),!0)}function P(e,n){t(CU,e.data,e,n)}function te(e){F(e)||(r.value=e.key,t(EU,e.data,e))}function ne(e,t){c(e,t)}function re(r){let a=n.value;if(i.value&&e.accordion){let{treeNodeMap:e}=i.value;a.forEach(t=>{let n=e.get(t);r&&r.level===n?.level&&(a.delete(t),n.expanded=!1)})}a.add(r.key);let o=ce(r.key);o&&(o.expanded=!0,t(wU,o.data,o))}function ie(e){n.value.delete(e.key);let r=ce(e.key);r&&(r.expanded=!1,t(TU,r.data,r))}function ae(e){return!!e.disabled}function F(e){let t=r.value;return t!==void 0&&t===e.key}function I(){if(r.value!==void 0)return i.value?.treeNodeMap.get(r.value)?.data}function oe(){return r.value}function L(e){r.value=e}function se(e){i.value=w(e)}function ce(e){let t=E(e)?O(e):e;return i.value?.treeNodeMap.get(t)}function le(e,t=`auto`){let n=ce(e);n&&a.value&&a.value.scrollToItem(S.value.indexOf(n),t)}function ue(e){a.value?.scrollTo(e)}return M(()=>e.currentNodeKey,e=>{r.value=e},{immediate:!0}),M(()=>e.defaultExpandedKeys,e=>{j(e||[])}),M(()=>e.data,t=>{se(t),j(e.defaultExpandedKeys||[])},{immediate:!0}),{tree:i,flattenTree:S,isNotEmpty:C,listRef:a,getKey:O,getChildren:D,toggleExpand:ee,toggleCheckbox:c,isChecked:s,isIndeterminate:o,isDisabled:ae,isCurrent:F,isForceHiddenExpandIcon:_,handleNodeClick:N,handleNodeDrop:P,handleNodeCheck:ne,getCurrentNode:I,getCurrentKey:oe,setCurrentKey:L,getCheckedKeys:l,getCheckedNodes:u,getHalfCheckedKeys:d,getHalfCheckedNodes:f,setChecked:p,setCheckedKeys:m,filter:T,setData:se,getNode:ce,expandNode:re,collapseNode:ie,setExpandedKeys:j,scrollToNode:le,scrollTo:ue}}var FU=z({name:`ElTreeNodeContent`,props:xU,setup(e){let t=l(gU),n=$(`tree`);return()=>{let r=e.node,{data:i}=r;return t?.ctx.slots.default?t.ctx.slots.default({node:r,data:i}):Je(QV,{tag:`span`,truncated:!0,class:n.be(`node`,`label`)},()=>[r?.label])}}}),IU=[`aria-expanded`,`aria-disabled`,`aria-checked`,`data-key`],LU=z({name:`ElTreeNode`,__name:`tree-node`,props:bU,emits:jU,setup(e,{emit:t}){let r=e,i=t,a=l(gU),o=$(`tree`),s=K(()=>a?.props.indent??16),c=K(()=>a?.props.icon??Kv),u=e=>{let t=a?.props.props?.class;if(!t)return{};let r;if(n(t)){let{data:n}=e;r=t(n,e)}else r=t;return P(r)?{[r]:!0}:r},d=e=>{i(`click`,r.node,e)},f=e=>{i(`drop`,r.node,e)},p=()=>{i(`toggle`,r.node)},h=e=>{i(`check`,r.node,e)},g=e=>{a?.instance?.vnode?.props?.onNodeContextmenu&&(e.stopPropagation(),e.preventDefault()),a?.ctx.emit(kU,e,r.node?.data,r.node)};return(t,n)=>(N(),W(`div`,{ref:`node$`,class:F([Y(o).b(`node`),Y(o).is(`expanded`,e.expanded),Y(o).is(`current`,e.current),Y(o).is(`focusable`,!e.disabled),Y(o).is(`checked`,!e.disabled&&e.checked),u(e.node)]),role:`treeitem`,tabindex:`-1`,"aria-expanded":e.expanded,"aria-disabled":e.disabled,"aria-checked":e.checked,"data-key":e.node?.key,onClick:kn(d,[`stop`]),onContextmenu:g,onDragover:n[1]||=kn(()=>{},[`prevent`]),onDragenter:n[2]||=kn(()=>{},[`prevent`]),onDrop:kn(f,[`stop`])},[B(`div`,{class:F(Y(o).be(`node`,`content`)),style:m({paddingLeft:`${(e.node.level-1)*s.value}px`,height:e.itemSize+`px`})},[c.value?(N(),H(Y(By),{key:0,class:F([Y(o).is(`leaf`,!!e.node?.isLeaf),Y(o).is(`hidden`,e.hiddenExpandIcon),{expanded:!e.node?.isLeaf&&e.expanded},Y(o).be(`node`,`expand-icon`)]),onClick:kn(p,[`stop`])},{default:V(()=>[(N(),H(L(c.value)))]),_:1},8,[`class`])):G(`v-if`,!0),e.showCheckbox?(N(),H(Y(ok),{key:1,"model-value":e.checked,indeterminate:e.indeterminate,disabled:e.disabled,onChange:h,onClick:n[0]||=kn(()=>{},[`stop`])},null,8,[`model-value`,`indeterminate`,`disabled`])):G(`v-if`,!0),J(Y(FU),{node:{...e.node,expanded:e.expanded}},null,8,[`node`])],6)],42,IU))}}),RU=Pv(z({name:`ElTreeV2`,__name:`tree`,props:yU,emits:AU,setup(e,{expose:t,emit:n}){let r=e,i=n,a=le(),o=K(()=>r.itemSize);Qe(gU,{ctx:{emit:i,slots:a},props:r,instance:Xe()}),Qe(sb,void 0);let{t:s}=Dp(),c=$(`tree`),{flattenTree:l,isNotEmpty:u,listRef:d,toggleExpand:f,isIndeterminate:p,isChecked:h,isDisabled:g,isCurrent:_,isForceHiddenExpandIcon:v,handleNodeClick:y,handleNodeDrop:b,handleNodeCheck:x,toggleCheckbox:C,getCurrentNode:w,getCurrentKey:T,setCurrentKey:E,getCheckedKeys:D,getCheckedNodes:O,getHalfCheckedKeys:k,getHalfCheckedNodes:A,setChecked:ee,setCheckedKeys:j,filter:M,setData:P,getNode:te,expandNode:ne,collapseNode:re,setExpandedKeys:ie,scrollToNode:ae,scrollTo:oe}=PU(r,i);return t({toggleCheckbox:C,getCurrentNode:w,getCurrentKey:T,setCurrentKey:E,getCheckedKeys:D,getCheckedNodes:O,getHalfCheckedKeys:k,getHalfCheckedNodes:A,setChecked:ee,setCheckedKeys:j,filter:M,setData:P,getNode:te,expandNode:ne,collapseNode:re,setExpandedKeys:ie,scrollToNode:ae,scrollTo:oe}),(t,n)=>(N(),W(`div`,{class:F([Y(c).b(),{[Y(c).m(`highlight-current`)]:e.highlightCurrent}]),role:`tree`},[Y(u)?(N(),H(Y(gO),{key:0,ref_key:`listRef`,ref:d,"class-name":Y(c).b(`virtual-list`),data:Y(l),total:Y(l).length,height:e.height,"item-size":o.value,"perf-mode":e.perfMode,"scrollbar-always-on":e.scrollbarAlwaysOn},{default:V(({data:t,index:n,style:r})=>[(N(),H(LU,{key:t[n].key,style:m(r),node:t[n],expanded:t[n].expanded,"show-checkbox":e.showCheckbox,checked:Y(h)(t[n]),indeterminate:Y(p)(t[n]),"item-size":o.value,disabled:Y(g)(t[n]),current:Y(_)(t[n]),"hidden-expand-icon":Y(v)(t[n]),onClick:Y(y),onToggle:Y(f),onCheck:Y(x),onDrop:Y(b)},null,8,[`style`,`node`,`expanded`,`show-checkbox`,`checked`,`indeterminate`,`item-size`,`disabled`,`current`,`hidden-expand-icon`,`onClick`,`onToggle`,`onCheck`,`onDrop`]))]),_:1},8,[`class-name`,`data`,`total`,`height`,`item-size`,`perf-mode`,`scrollbar-always-on`])):(N(),W(`div`,{key:1,class:F(Y(c).e(`empty-block`))},[I(t.$slots,`empty`,{},()=>[B(`span`,{class:F(Y(c).e(`empty-text`))},S(e.emptyText??Y(s)(`el.tree.emptyText`)),3)])],2))],2))}})),zU=`ElUpload`,BU=class extends Error{constructor(e,t,n,r){super(e),this.name=`UploadAjaxError`,this.status=t,this.method=n,this.url=r}};function VU(e,t,n){let r;return r=n.response?`${n.response.error||n.response}`:n.responseText?`${n.responseText}`:`fail to ${t.method} ${e} ${n.status}`,new BU(r,n.status,t.method,e)}function HU(e){let t=e.responseText||e.response;if(!t)return t;try{return JSON.parse(t)}catch{return t}}var UU=e=>{typeof XMLHttpRequest>`u`&&qd(zU,`XMLHttpRequest is undefined`);let t=new XMLHttpRequest,n=e.action;t.upload&&t.upload.addEventListener(`progress`,t=>{let n=t;n.percent=t.total>0?t.loaded/t.total*100:0,e.onProgress(n)});let r=new FormData;if(e.data)for(let[t,n]of Object.entries(e.data))A(n)?n.length===2&&n[0]instanceof Blob&&P(n[1])?r.append(t,n[0],n[1]):n.forEach(e=>{r.append(t,e)}):r.append(t,n);r.append(e.filename,e.file,e.file.name),t.addEventListener(`error`,()=>{e.onError(VU(n,e,t))}),t.addEventListener(`load`,()=>{if(t.status<200||t.status>=300)return e.onError(VU(n,e,t));e.onSuccess(HU(t))}),t.open(e.method,n,!0),e.withCredentials&&`withCredentials`in t&&(t.withCredentials=!0);let i=e.headers||{};if(i instanceof Headers)i.forEach((e,n)=>t.setRequestHeader(n,e));else for(let[e,n]of Object.entries(i))cd(n)||t.setRequestHeader(e,String(n));return t.send(r),t},WU=[`text`,`picture`,`picture-card`],GU=1,KU=()=>Date.now()+ GU++,qU=Q({action:{type:String,default:`#`},headers:{type:Z(Object)},method:{type:String,default:`post`},data:{type:Z([Object,Function,Promise]),default:()=>DS({})},multiple:Boolean,name:{type:String,default:`file`},drag:Boolean,withCredentials:Boolean,showFileList:{type:Boolean,default:!0},accept:{type:String,default:``},fileList:{type:Z(Array),default:()=>DS([])},autoUpload:{type:Boolean,default:!0},listType:{type:String,values:WU,default:`text`},httpRequest:{type:Z(Function),default:UU},disabled:{type:Boolean,default:void 0},limit:Number,directory:Boolean}),JU=Q({...qU,beforeUpload:{type:Z(Function),default:ge},beforeRemove:{type:Z(Function)},onRemove:{type:Z(Function),default:ge},onChange:{type:Z(Function),default:ge},onPreview:{type:Z(Function),default:ge},onSuccess:{type:Z(Function),default:ge},onProgress:{type:Z(Function),default:ge},onError:{type:Z(Function),default:ge},onExceed:{type:Z(Function),default:ge},crossorigin:{type:Z(String)}}),YU={action:`#`,method:`post`,data:()=>DS({}),name:`file`,showFileList:!0,accept:``,fileList:()=>DS([]),autoUpload:!0,listType:`text`,httpRequest:UU,disabled:void 0};({...YU});var XU=Symbol(`uploadContextKey`),ZU=Q({files:{type:Z(Array),default:()=>DS([])},disabled:{type:Boolean,default:void 0},handlePreview:{type:Z(Function),default:ge},listType:{type:String,values:WU,default:`text`},crossorigin:{type:Z(String)}}),QU={remove:e=>!!e},$U=Q({...qU,beforeUpload:{type:Z(Function),default:ge},onRemove:{type:Z(Function),default:ge},onStart:{type:Z(Function),default:ge},onSuccess:{type:Z(Function),default:ge},onProgress:{type:Z(Function),default:ge},onError:{type:Z(Function),default:ge},onExceed:{type:Z(Function),default:ge}});({...YU});var eW=Q({disabled:{type:Boolean,default:void 0},directory:Boolean}),tW={file:e=>A(e)},nW=[`tabindex`,`aria-disabled`,`onKeydown`],rW=[`src`,`crossorigin`],iW=[`onClick`],aW=[`title`],oW=[`onClick`],sW=[`onClick`],cW=z({name:`ElUploadList`,__name:`upload-list`,props:ZU,emits:QU,setup(e,{emit:t}){let n=e,i=t,{t:a}=Dp(),o=$(`upload`),s=$(`icon`),c=$(`list`),l=lb(),u=q(!1),d=K(()=>[o.b(`list`),o.bm(`list`,n.listType),o.is(`disabled`,l.value)]),f=e=>{i(`remove`,e)};return(t,n)=>(N(),H(un,{tag:`ul`,class:F(d.value),name:Y(c).b()},{default:V(()=>[(N(!0),W(R,null,r(e.files,(r,i)=>(N(),W(`li`,{key:r.uid||r.name,class:F([Y(o).be(`list`,`item`),Y(o).is(r.status),{focusing:u.value}]),tabindex:Y(l)?void 0:0,"aria-disabled":Y(l),role:`button`,onKeydown:jn(e=>!Y(l)&&f(r),[`delete`]),onFocus:n[0]||=e=>u.value=!0,onBlur:n[1]||=e=>u.value=!1,onClick:n[2]||=e=>u.value=!1},[I(t.$slots,`default`,{file:r,index:i},()=>[e.listType===`picture`||r.status!==`uploading`&&e.listType===`picture-card`?(N(),W(`img`,{key:0,class:F(Y(o).be(`list`,`item-thumbnail`)),src:r.url,crossorigin:e.crossorigin,alt:``},null,10,rW)):G(`v-if`,!0),r.status===`uploading`||e.listType!==`picture-card`?(N(),W(`div`,{key:1,class:F(Y(o).be(`list`,`item-info`))},[B(`a`,{class:F(Y(o).be(`list`,`item-name`)),onClick:kn(t=>e.handlePreview(r),[`prevent`])},[J(Y(By),{class:F(Y(s).m(`document`))},{default:V(()=>[J(Y(ay))]),_:1},8,[`class`]),B(`span`,{class:F(Y(o).be(`list`,`item-file-name`)),title:r.name},S(r.name),11,aW)],10,iW),r.status===`uploading`?(N(),H(Y(bL),{key:0,type:e.listType===`picture-card`?`circle`:`line`,"stroke-width":e.listType===`picture-card`?6:2,percentage:Number(r.percentage),style:m(e.listType===`picture-card`?``:`margin-top: 0.5rem`)},null,8,[`type`,`stroke-width`,`percentage`,`style`])):G(`v-if`,!0)],2)):G(`v-if`,!0),B(`label`,{class:F(Y(o).be(`list`,`item-status-label`))},[e.listType===`text`?(N(),H(Y(By),{key:0,class:F([Y(s).m(`upload-success`),Y(s).m(`circle-check`)])},{default:V(()=>[J(Y(Xv))]),_:1},8,[`class`])):[`picture-card`,`picture`].includes(e.listType)?(N(),H(Y(By),{key:1,class:F([Y(s).m(`upload-success`),Y(s).m(`check`)])},{default:V(()=>[J(Y(Jv))]),_:1},8,[`class`])):G(`v-if`,!0)],2),Y(l)?G(`v-if`,!0):(N(),H(Y(By),{key:2,class:F(Y(s).m(`close`)),"aria-label":Y(a)(`el.upload.delete`),role:`button`,tabindex:`0`,onClick:e=>f(r),onKeydown:jn(kn(e=>f(r),[`prevent`]),[`enter`,`space`])},{default:V(()=>[J(Y(ey))]),_:1},8,[`class`,`aria-label`,`onClick`,`onKeydown`])),Y(l)?G(`v-if`,!0):(N(),W(`i`,{key:3,class:F(Y(s).m(`close-tip`))},S(Y(a)(`el.upload.deleteTip`)),3)),e.listType===`picture-card`?(N(),W(`span`,{key:4,class:F(Y(o).be(`list`,`item-actions`))},[B(`span`,{class:F(Y(o).be(`list`,`item-preview`)),onClick:t=>e.handlePreview(r)},[J(Y(By),{class:F(Y(s).m(`zoom-in`))},{default:V(()=>[J(Y(jy))]),_:1},8,[`class`])],10,oW),Y(l)?G(`v-if`,!0):(N(),W(`span`,{key:0,class:F(Y(o).be(`list`,`item-delete`)),onClick:e=>f(r)},[J(Y(By),{class:F(Y(s).m(`delete`))},{default:V(()=>[J(Y(iy))]),_:1},8,[`class`])],10,sW))],2)):G(`v-if`,!0)])],42,nW))),128)),I(t.$slots,`append`)]),_:3},8,[`class`,`name`]))}}),lW=`ElUploadDrag`,uW=z({name:lW,__name:`upload-dragger`,props:eW,emits:tW,setup(e,{emit:t}){let n=e,r=t;l(XU)||qd(lW,`usage: `);let i=$(`upload`),a=q(!1),o=lb(),s=e=>new Promise((t,n)=>e.file(t,n)),c=async e=>{try{if(e.isFile){let t=await s(e);return t.isDirectory=!1,[t]}if(e.isDirectory){let t=e.createReader(),n=()=>new Promise((e,n)=>t.readEntries(e,n)),r=[],i=await n();for(;i.length>0;)r.push(...i),i=await n();let a=r.map(e=>c(e).catch(()=>[]));return fs(await Promise.all(a))}}catch{return[]}return[]},u=async e=>{if(o.value)return;a.value=!1,e.stopPropagation();let t=Array.from(e.dataTransfer.files),i=e.dataTransfer.items||[];if(n.directory){let e=Array.from(i).map(e=>e?.webkitGetAsEntry?.()).filter(e=>e);r(`file`,fs(await Promise.all(e.map(c))));return}t.forEach((e,t)=>{let n=i[t]?.webkitGetAsEntry?.();n&&(e.isDirectory=n.isDirectory)}),r(`file`,t)},d=()=>{o.value||(a.value=!0)},f=e=>{e.currentTarget.contains(e.relatedTarget)||(a.value=!1)};return(e,t)=>(N(),W(`div`,{class:F([Y(i).b(`dragger`),Y(i).is(`dragover`,a.value)]),onDrop:kn(u,[`prevent`]),onDragover:kn(d,[`prevent`]),onDragleave:kn(f,[`prevent`])},[I(e.$slots,`default`)],34))}}),dW=[`tabindex`,`aria-disabled`,`onKeydown`],fW=[`name`,`disabled`,`multiple`,`accept`,`webkitdirectory`],pW=z({name:`ElUploadContent`,inheritAttrs:!1,__name:`upload-content`,props:$U,setup(e,{expose:t}){let r=e,i=$(`upload`),a=lb(),o=Le({}),s=Le(),c=e=>{if(e.length===0)return;let{autoUpload:t,limit:n,fileList:i,multiple:a,onStart:o,onExceed:s}=r;if(n&&i.length+e.length>n){s(e,i);return}a||(e=e.slice(0,1));for(let n of e){let e=n;e.uid=KU(),o(e),t&&l(e)}},l=async e=>{if(s.value.value=``,!r.beforeUpload)return d(e);let t,n={};try{let i=r.data,a=r.beforeUpload(e);n=j(r.data)?Ml(r.data):r.data,t=await a,j(r.data)&&sd(i,n)&&(n=Ml(r.data))}catch{t=!1}if(t===!1){r.onRemove(e);return}let i=e;t instanceof Blob&&(i=t instanceof File?t:new File([t],e.name,{type:e.type})),d(Object.assign(i,{uid:e.uid}),n)},u=async(e,t)=>n(e)?e(t):e,d=async(e,t)=>{let{headers:n,data:i,method:a,withCredentials:s,name:c,action:l,onProgress:d,onSuccess:f,onError:p,httpRequest:m}=r;try{t=await u(t??i,e)}catch{r.onRemove(e);return}let{uid:h}=e,g={headers:n||{},withCredentials:s,file:e,data:t,method:a,filename:c,action:l,onProgress:t=>{d(t,e)},onSuccess:t=>{f(t,e),delete o.value[h]},onError:t=>{p(t,e),delete o.value[h]}},_=m(g);o.value[h]=_,_ instanceof Promise&&_.then(g.onSuccess,g.onError)},f=e=>{let t=e.target.files;t&&c(Array.from(t))},p=()=>{a.value||(s.value.value=``,s.value.click())},m=()=>{p()};return t({abort:e=>{zd(o.value).filter(e?([t])=>String(e.uid)===t:()=>!0).forEach(([e,t])=>{t instanceof XMLHttpRequest&&t.abort(),delete o.value[e]})},upload:l}),(t,n)=>(N(),W(`div`,{class:F([Y(i).b(),Y(i).m(e.listType),Y(i).is(`drag`,e.drag),Y(i).is(`disabled`,Y(a))]),tabindex:Y(a)?void 0:0,"aria-disabled":Y(a),role:`button`,onClick:p,onKeydown:jn(kn(m,[`self`]),[`enter`,`space`])},[e.drag?(N(),H(uW,{key:0,disabled:Y(a),directory:e.directory,onFile:c},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`disabled`,`directory`])):I(t.$slots,`default`,{key:1}),B(`input`,{ref_key:`inputRef`,ref:s,class:F(Y(i).e(`input`)),name:e.name,disabled:Y(a),multiple:e.multiple,accept:e.accept,webkitdirectory:e.directory||void 0,type:`file`,onChange:f,onClick:n[0]||=kn(()=>{},[`stop`])},null,42,fW)],42,dW))}}),mW=`ElUpload`,hW=e=>{e.url?.startsWith(`blob:`)&&URL.revokeObjectURL(e.url)},gW=(e,t)=>{let n=qf(e,`fileList`,void 0,{passive:!0}),r=e=>n.value.find(t=>t.uid===e.uid);function i(e){t.value?.abort(e)}function a(e=[`ready`,`uploading`,`success`,`fail`]){n.value=n.value.filter(t=>!e.includes(t.status))}function o(e){n.value=n.value.filter(t=>t.uid!==e.uid)}let s=t=>{U(()=>e.onChange(t,n.value))},c=(t,i)=>{let a=r(i);a&&(console.error(t),a.status=`fail`,o(a),e.onError(t,a,n.value),s(a))},l=(t,i)=>{let a=r(i);a&&(e.onProgress(t,a,n.value),a.status=`uploading`,a.percentage=Math.round(t.percent))},u=(t,i)=>{let a=r(i);a&&(a.status=`success`,a.response=t,e.onSuccess(t,a,n.value),s(a))},d=t=>{cd(t.uid)&&(t.uid=KU());let r={name:t.name,percentage:0,status:`ready`,size:t.size,raw:t,uid:t.uid};if(e.listType===`picture-card`||e.listType===`picture`)try{r.url=URL.createObjectURL(t)}catch(t){Jd(mW,t.message),e.onError(t,r,n.value)}n.value=[...n.value,r],s(r)},f=async t=>{let a=t instanceof File?r(t):t;a||qd(mW,`file to be removed not found`);let s=t=>{i(t),o(t),e.onRemove(t,n.value),hW(t)};e.beforeRemove?await e.beforeRemove(a,n.value)!==!1&&s(a):s(a)};function p(){n.value.filter(({status:e})=>e===`ready`).forEach(({raw:e})=>e&&t.value?.upload(e))}return M(()=>e.listType,t=>{t!==`picture-card`&&t!==`picture`||(n.value=n.value.map(t=>{let{raw:r,url:i}=t;if(!i&&r)try{t.url=URL.createObjectURL(r)}catch(r){e.onError(r,t,n.value)}return t}))}),M(n,e=>{for(let t of e)t.uid||=KU(),t.status||=`success`},{immediate:!0,deep:!0}),{uploadFiles:n,abort:i,clearFiles:a,handleError:c,handleProgress:l,handleStart:d,handleSuccess:u,handleRemove:f,submit:p,revokeFileObjectURL:hW}},_W=Pv(z({name:`ElUpload`,__name:`upload`,props:JU,setup(e,{expose:t}){let n=e,r=lb(),i=Le(),{abort:a,submit:o,clearFiles:s,uploadFiles:c,handleStart:l,handleError:u,handleRemove:d,handleSuccess:f,handleProgress:p,revokeFileObjectURL:m}=gW(n,i),h=K(()=>n.listType===`picture-card`),g=K(()=>({...n,fileList:c.value,onStart:l,onProgress:p,onSuccess:f,onError:u,onRemove:d}));return T(()=>{c.value.forEach(m)}),Qe(XU,{accept:we(n,`accept`)}),t({abort:a,submit:o,clearFiles:s,handleStart:l,handleRemove:d}),(t,n)=>(N(),W(`div`,null,[h.value&&e.showFileList?(N(),H(cW,{key:0,disabled:Y(r),"list-type":e.listType,files:Y(c),crossorigin:e.crossorigin,"handle-preview":e.onPreview,onRemove:Y(d)},xe({append:V(()=>[J(pW,k({ref_key:`uploadRef`,ref:i},g.value),{default:V(()=>[t.$slots.trigger?I(t.$slots,`trigger`,{key:0}):G(`v-if`,!0),!t.$slots.trigger&&t.$slots.default?I(t.$slots,`default`,{key:1}):G(`v-if`,!0)]),_:3},16)]),_:2},[t.$slots.file?{name:`default`,fn:V(({file:e,index:n})=>[I(t.$slots,`file`,{file:e,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):G(`v-if`,!0),!h.value||h.value&&!e.showFileList?(N(),H(pW,k({key:1,ref_key:`uploadRef`,ref:i},g.value),{default:V(()=>[t.$slots.trigger?I(t.$slots,`trigger`,{key:0}):G(`v-if`,!0),!t.$slots.trigger&&t.$slots.default?I(t.$slots,`default`,{key:1}):G(`v-if`,!0)]),_:3},16)):G(`v-if`,!0),t.$slots.trigger?I(t.$slots,`default`,{key:2}):G(`v-if`,!0),I(t.$slots,`tip`),!h.value&&e.showFileList?(N(),H(cW,{key:3,disabled:Y(r),"list-type":e.listType,files:Y(c),crossorigin:e.crossorigin,"handle-preview":e.onPreview,onRemove:Y(d)},xe({_:2},[t.$slots.file?{name:`default`,fn:V(({file:e,index:n})=>[I(t.$slots,`file`,{file:e,index:n})]),key:`0`}:void 0]),1032,[`disabled`,`list-type`,`files`,`crossorigin`,`handle-preview`,`onRemove`])):G(`v-if`,!0)]))}})),vW=Q({zIndex:{type:Number,default:9},rotate:{type:Number,default:-22},width:Number,height:Number,image:String,content:{type:Z([String,Array]),default:`Element Plus`},font:{type:Z(Object)},gap:{type:Z(Array),default:()=>[100,100]},offset:{type:Z(Array)}});function yW(e){return e.replace(/([A-Z])/g,`-$1`).toLowerCase()}function bW(e){return Object.keys(e).map(t=>`${yW(t)}: ${e[t]};`).join(` `)}function xW(){return window.devicePixelRatio||1}var SW=(e,t)=>{let n=!1;return e.removedNodes.length&&t&&(n=Array.from(e.removedNodes).includes(t)),e.type===`attributes`&&e.target===t&&(n=!0),n},CW={left:[0,.5],start:[0,.5],center:[.5,0],right:[1,-.5],end:[1,-.5]};function wW(e,t,n=1){let r=document.createElement(`canvas`),i=r.getContext(`2d`),a=e*n,o=t*n;return r.setAttribute(`width`,`${a}px`),r.setAttribute(`height`,`${o}px`),i.save(),[i,r,a,o]}function TW(){function e(e,t,n,r,i,a,o,s,c){let[l,u,d,f]=wW(r,i,n),p=0;if(e instanceof HTMLImageElement)l.drawImage(e,0,0,d,f);else{let{color:t,fontSize:r,fontStyle:o,fontWeight:s,fontFamily:u,textAlign:f,textBaseline:m}=a,h=Number(r)*n;l.font=`${o} normal ${s} ${h}px/${i}px ${u}`,l.fillStyle=t,l.textAlign=f,l.textBaseline=m;let g=A(e)?e:[e];if(m!==`top`&&g[0]){let e=l.measureText(g[0]);l.textBaseline=`top`;let t=l.measureText(g[0]);p=e.actualBoundingBoxAscent-t.actualBoundingBoxAscent}g?.forEach((e,t)=>{let[r,i]=CW[f];l.fillText(e??``,d*r+c*i,t*(h+a.fontGap*n))})}let m=Math.PI/180*Number(t),h=Math.max(r,i),[g,_,v]=wW(h,h,n);g.translate(v/2,v/2),g.rotate(m),d>0&&f>0&&g.drawImage(u,-d/2,-f/2);function y(e,t){return[e*Math.cos(m)-t*Math.sin(m),e*Math.sin(m)+t*Math.cos(m)]}let b=0,x=0,S=0,C=0,w=d/2,T=f/2;[[0-w,0-T],[0+w,0-T],[0+w,0+T],[0-w,0+T]].forEach(([e,t])=>{let[n,r]=y(e,t);b=Math.min(b,n),x=Math.max(x,n),S=Math.min(S,r),C=Math.max(C,r)});let E=b+v/2,D=S+v/2,O=x-b,k=C-S,ee=o*n,j=s*n,M=(O+ee)*2,N=k+j,[P,te]=wW(M,N);function ne(e=0,t=0){P.drawImage(_,E,D,O,k,e,t+p,O,k)}return ne(),ne(O+ee,-k/2-j/2),ne(O+ee,k/2+j/2),[te.toDataURL(),M/n,N/n]}return e}var EW=Pv(z({name:`ElWatermark`,__name:`watermark`,props:vW,setup(e){let t={position:`relative`},n=e,r=K(()=>n.font?.fontGap??3),i=K(()=>n.font?.color??`rgba(0,0,0,.15)`),a=K(()=>n.font?.fontSize??16),o=K(()=>n.font?.fontWeight??`normal`),s=K(()=>n.font?.fontStyle??`normal`),c=K(()=>n.font?.fontFamily??`sans-serif`),l=K(()=>n.font?.textAlign??`center`),u=K(()=>n.font?.textBaseline??`hanging`),f=K(()=>n.gap[0]),p=K(()=>n.gap[1]),h=K(()=>f.value/2),g=K(()=>p.value/2),_=K(()=>n.offset?.[0]??h.value),v=K(()=>n.offset?.[1]??g.value),y=()=>{let e={zIndex:n.zIndex,position:`absolute`,left:0,top:0,width:`100%`,height:`100%`,pointerEvents:`none`,backgroundRepeat:`repeat`},t=_.value-h.value,r=v.value-g.value;return t>0&&(e.left=`${t}px`,e.width=`calc(100% - ${t}px)`,t=0),r>0&&(e.top=`${r}px`,e.height=`calc(100% - ${r}px)`,r=0),e.backgroundPosition=`${t}px ${r}px`,e},b=Le(null),x=Le(),S=q(!1),C=()=>{x.value&&=(x.value.remove(),void 0)},w=(e,t)=>{b.value&&x.value&&(S.value=!0,x.value.setAttribute(`style`,bW({...y(),backgroundImage:`url('${e}')`,backgroundSize:`${Math.floor(t)}px`})),b.value?.append(x.value),setTimeout(()=>{S.value=!1}))},E=e=>{let t=120,i=64,o=0,{image:s,content:l,width:u,height:d,rotate:f}=n;if(!s&&e.measureText){e.font=`${Number(a.value)}px ${c.value}`;let n=A(l)?l:[l],s=0,u=0;n.forEach(t=>{let{width:n,fontBoundingBoxAscent:r,fontBoundingBoxDescent:i,actualBoundingBoxAscent:a,actualBoundingBoxDescent:o}=e.measureText(t),c=Ad(r)?a+o:r+i;n>s&&(s=Math.ceil(n)),c>u&&(u=Math.ceil(c))}),t=s,i=u*n.length+(n.length-1)*r.value;let d=Math.PI/180*Number(f);o=Math.ceil(Math.abs(Math.sin(d)*i)/2),t+=o}return[u??t,d??i,o]},D=TW(),O=()=>{let e=document.createElement(`canvas`).getContext(`2d`),t=n.image,d=n.content,m=n.rotate;if(e){x.value||=document.createElement(`div`);let n=xW(),[h,g,_]=E(e),v=e=>{let[t,d]=D(e||``,m,n,h,g,{color:i.value,fontSize:a.value,fontStyle:s.value,fontWeight:o.value,fontFamily:c.value,fontGap:r.value,textAlign:l.value,textBaseline:u.value},f.value,p.value,_);w(t,d)};if(t){let e=new Image;e.onload=()=>{v(e)},e.onerror=()=>{v(d)},e.crossOrigin=`anonymous`,e.referrerPolicy=`no-referrer`,e.src=t}else v(d)}};return d(()=>{O()}),M(()=>n,()=>{O()},{deep:!0,flush:`post`}),T(()=>{C()}),Pf(b,e=>{S.value||e.forEach(e=>{SW(e,x.value)&&(C(),O())})},{attributes:!0,subtree:!0,childList:!0}),(e,n)=>(N(),W(`div`,{ref_key:`containerRef`,ref:b,style:m([t])},[I(e.$slots,`default`)],4))}})),DW=Q({placement:{type:Z(String),values:[`top-start`,`top-end`,`top`,`bottom-start`,`bottom-end`,`bottom`,`left-start`,`left-end`,`left`,`right-start`,`right-end`,`right`],default:`bottom`},reference:{type:Z(Object),default:null},strategy:{type:Z(String),values:[`absolute`,`fixed`],default:`absolute`},offset:{type:Number,default:10},showArrow:Boolean,zIndex:{type:Number,default:2001}}),OW={close:()=>!0},kW=Q({modelValue:Boolean,current:{type:Number},showArrow:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeIcon:{type:Ny},placement:DW.placement,contentStyle:{type:Z([Object])},mask:{type:Z([Boolean,Object]),default:!0},gap:{type:Z(Object),default:()=>({offset:6,radius:2})},zIndex:{type:Number},scrollIntoViewOptions:{type:Z([Boolean,Object]),default:()=>({block:`center`})},type:{type:Z(String)},appendTo:{type:Z([String,Object]),default:`body`},closeOnPressEscape:{type:Boolean,default:!0},targetAreaClickable:{type:Boolean,default:!0}}),AW={[br]:e=>jd(e),"update:current":e=>Md(e),close:e=>Md(e),finish:()=>!0,change:e=>Md(e)},jW=Q({target:{type:Z([String,Object,Function])},title:String,description:String,showClose:{type:Boolean,default:void 0},closeIcon:{type:Ny},showArrow:{type:Boolean,default:void 0},placement:DW.placement,mask:{type:Z([Boolean,Object]),default:void 0},contentStyle:{type:Z([Object])},prevButtonProps:{type:Z(Object)},nextButtonProps:{type:Z(Object)},scrollIntoViewOptions:{type:Z([Boolean,Object]),default:void 0},type:{type:Z(String)}}),MW={close:()=>!0},NW=(e,t,r,i,a)=>{let o=q(null),s=()=>{let t;return t=P(e.value)?document.querySelector(e.value):n(e.value)?e.value():e.value,t},c=()=>{let e=s();if(!e||!t.value){o.value=null;return}FW(e)||e.scrollIntoView(a.value);let{left:n,top:r,width:i,height:c}=e.getBoundingClientRect();o.value={left:n,top:r,width:i,height:c,radius:0}};d(()=>{M([t,e],()=>{c()},{immediate:!0}),window.addEventListener(`resize`,c)}),T(()=>{window.removeEventListener(`resize`,c)});let l=e=>(A(r.value.offset)?r.value.offset[e]:r.value.offset)??6,u=K(()=>{if(!o.value)return o.value;let e=l(0),t=l(1),n=r.value?.radius||2;return{left:o.value.left-e,top:o.value.top-t,width:o.value.width+e*2,height:o.value.height+t*2,radius:n}});return{mergedPosInfo:u,triggerTarget:K(()=>{let e=s();return!i.value||!e||!window.DOMRect?e||void 0:{getBoundingClientRect(){return window.DOMRect.fromRect({width:u.value?.width||0,height:u.value?.height||0,x:u.value?.left||0,y:u.value?.top||0})}}})}},PW=Symbol(`ElTour`);function FW(e){let t=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,{top:r,right:i,bottom:a,left:o}=e.getBoundingClientRect();return r>=0&&o>=0&&i<=t&&a<=n}var IW=(t,n,r,i,a,o,s,c)=>{let l=q(),u=q(),f=q({}),p={x:l,y:u,placement:i,strategy:a,middlewareData:f},m=K(()=>{let e=[sv(Y(o)),lv(),cv(),LW()];return Y(c)&&Y(r)&&e.push(uv({element:Y(r)})),e}),h=async()=>{if(!nf)return;let e=Y(t),r=Y(n);if(!e||!r)return;let o=await dv(e,r,{placement:Y(i),strategy:Y(a),middleware:Y(m)});Rd(p).forEach(e=>{p[e].value=o[e]})},g=K(()=>{if(!Y(t))return{position:`fixed`,top:`50%`,left:`50%`,transform:`translate3d(-50%, -50%, 0)`,maxWidth:`100vw`,zIndex:Y(s)};let{overflow:e}=Y(f);return{position:Y(a),zIndex:Y(s),top:Y(u)==null?``:`${Y(u)}px`,left:Y(l)==null?``:`${Y(l)}px`,maxWidth:e?.maxWidth?`${e?.maxWidth}px`:``}}),_=K(()=>{if(!Y(c))return{};let{arrow:e}=Y(f);return{left:e?.x==null?``:`${e?.x}px`,top:e?.y==null?``:`${e?.y}px`}}),v;return d(()=>{let r=Y(t),i=Y(n);r&&i&&(v=av(r,i,h)),e(()=>{h()})}),T(()=>{v&&v()}),{update:h,contentStyle:g,arrowStyle:_}},LW=()=>({name:`overflow`,async fn(e){let t=await ov(e),n=0;return t.left>0&&(n=t.left),t.right>0&&(n=t.right),{data:{maxWidth:e.rects.floating.width-n}}}}),RW=Q({zIndex:{type:Number,default:1001},visible:Boolean,fill:{type:String,default:`rgba(0,0,0,0.5)`},pos:{type:Z(Object)},targetAreaClickable:{type:Boolean,default:!0}}),zW={style:{width:`100%`,height:`100%`}},BW=[`d`],VW=z({name:`ElTourMask`,inheritAttrs:!1,__name:`mask`,props:RW,setup(e){let t=e,{ns:n}=l(PW),r=K(()=>t.pos?.radius??2),i=K(()=>{let e=r.value,t=`a${e},${e} 0 0 1`;return{topRight:`${t} ${e},${e}`,bottomRight:`${t} ${-e},${e}`,bottomLeft:`${t} ${-e},${-e}`,topLeft:`${t} ${e},${-e}`}}),{width:a,height:o}=Yf(),s=K(()=>{let e=a.value,n=o.value,s=i.value,c=`M${e},0 L0,0 L0,${n} L${e},${n} L${e},0 Z`,l=r.value;return t.pos?`${c} M${t.pos.left+l},${t.pos.top} h${t.pos.width-l*2} ${s.topRight} v${t.pos.height-l*2} ${s.bottomRight} h${-t.pos.width+l*2} ${s.bottomLeft} v${-t.pos.height+l*2} ${s.topLeft} z`:c}),c=K(()=>({position:`fixed`,left:0,right:0,top:0,bottom:0,zIndex:t.zIndex,pointerEvents:t.pos&&t.targetAreaClickable?`none`:`auto`})),u=K(()=>({fill:t.fill,pointerEvents:`auto`,cursor:`auto`}));return Up(we(t,`visible`),{ns:n}),(t,r)=>e.visible?(N(),W(`div`,k({key:0,class:Y(n).e(`mask`),style:c.value},t.$attrs),[(N(),W(`svg`,zW,[B(`path`,{class:F(Y(n).e(`hollow`)),style:m(u.value),d:s.value},null,14,BW)]))],16)):G(`v-if`,!0)}}),HW=[`data-side`],UW=z({name:`ElTourContent`,__name:`content`,props:DW,emits:OW,setup(e,{emit:t}){let n=e,r=t,i=q(n.placement),a=q(n.strategy),o=q(null),s=q(null);M(()=>n.placement,()=>{i.value=n.placement});let{contentStyle:c,arrowStyle:u}=IW(we(n,`reference`),o,s,i,a,we(n,`offset`),we(n,`zIndex`),we(n,`showArrow`)),d=K(()=>i.value.split(`-`)[0]),{ns:f}=l(PW),p=()=>{r(`close`)},h=e=>{e.detail.focusReason===`pointer`&&e.preventDefault()};return(t,n)=>(N(),W(`div`,{ref_key:`contentRef`,ref:o,style:m(Y(c)),class:F(Y(f).e(`content`)),"data-side":d.value,tabindex:`-1`},[J(Y(tS),{loop:``,trapped:``,"focus-start-el":`container`,"focus-trap-el":o.value||void 0,onReleaseRequested:p,onFocusoutPrevented:h},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`focus-trap-el`]),e.showArrow?(N(),W(`span`,{key:0,ref_key:`arrowRef`,ref:s,style:m(Y(u)),class:F(Y(f).e(`arrow`))},null,6)):G(`v-if`,!0)],14,HW))}}),WW=z({name:`ElTourSteps`,props:{current:{type:Number,default:0}},emits:[`update-total`],setup(e,{slots:t,emit:n}){let r=0;return()=>{let i=t.default?.(),a=[],o=0;function s(e){A(e)&&e.forEach(e=>{(e?.type||{})?.name===`ElTourStep`&&(a.push(e),o+=1)})}return i.length&&s(vv(i[0]?.children)),r!==o&&(r=o,n(`update-total`,o)),a.length?a[e.current]:null}}}),GW=z({name:`ElTour`,inheritAttrs:!1,__name:`tour`,props:kW,emits:AW,setup(e,{emit:t}){let n=e,r=t,i=$(`tour`),a=q(0),o=q(),s=K(()=>!Ad(n.current)),c=q(n.current??0),l=K({get(){return Ad(n.current)?c.value:n.current},set(e){(s.value?n.current:c.value)!==e&&(s.value||(c.value=e),r(`update:current`,e))}}),u=K(()=>o.value?.target),d=K(()=>[i.b(),b.value===`primary`?i.m(`primary`):``]),f=K(()=>o.value?.placement||n.placement),p=K(()=>o.value?.contentStyle??n.contentStyle),h=K(()=>o.value?.mask??n.mask),g=K(()=>!!h.value&&n.modelValue),_=K(()=>jd(h.value)?void 0:h.value),v=K(()=>!!u.value&&(o.value?.showArrow??n.showArrow)),y=K(()=>o.value?.scrollIntoViewOptions??n.scrollIntoViewOptions),b=K(()=>o.value?.type??n.type),{nextZIndex:x}=xg(),S=x(),C=K(()=>n.zIndex??S),{mergedPosInfo:w,triggerTarget:T}=NW(u,we(n,`modelValue`),we(n,`gap`),h,y);M(()=>n.current,e=>!Ad(e)&&(c.value=e)),M(l,(e,t)=>{!n.modelValue||e===t||r(xr,e)},{flush:`post`}),M(()=>n.modelValue,e=>{!e&&l.value!==0&&(l.value=0)});let E=()=>{n.closeOnPressEscape&&(r(br,!1),r(`close`,l.value))},D=e=>{a.value=e},O=le();return Qe(PW,{currentStep:o,current:l,total:a,showClose:we(n,`showClose`),closeIcon:we(n,`closeIcon`),mergedType:b,ns:i,slots:O,updateModelValue(e){r(br,e)},onClose(){r(`close`,l.value)},onFinish(){r(`finish`)}}),(t,n)=>(N(),W(R,null,[(N(),H(Fe,{to:e.appendTo},[B(`div`,k({class:d.value},t.$attrs),[J(VW,{visible:g.value,fill:_.value?.color,style:m(_.value?.style),pos:Y(w),"z-index":C.value,"target-area-clickable":e.targetAreaClickable},null,8,[`visible`,`fill`,`style`,`pos`,`z-index`,`target-area-clickable`]),e.modelValue?(N(),H(UW,{key:l.value,reference:Y(T),placement:f.value,"show-arrow":v.value,"z-index":C.value,style:m(p.value),onClose:E},{default:V(()=>[J(Y(WW),{current:l.value,onUpdateTotal:D},{default:V(()=>[I(t.$slots,`default`)]),_:3},8,[`current`])]),_:3},8,[`reference`,`placement`,`show-arrow`,`z-index`,`style`])):G(`v-if`,!0)],16)],8,[`to`])),G(` just for IDE `),G(`v-if`,!0)],64))}}),KW=[`aria-label`],qW=z({name:`ElTourStep`,__name:`step`,props:jW,emits:MW,setup(e,{emit:t}){let n=e,i=t,{Close:a}=Py,{t:o}=Dp(),{currentStep:s,current:c,total:u,showClose:f,closeIcon:p,mergedType:m,ns:h,slots:g,updateModelValue:_,onClose:v,onFinish:y}=l(PW);M(n,e=>{s.value=e},{immediate:!0});let b=K(()=>n.showClose??f.value),x=K(()=>n.closeIcon??p.value??a),C=e=>{if(e)return vd(e,[`children`,`onClick`])},w=()=>{--c.value,n.prevButtonProps?.onClick&&n.prevButtonProps?.onClick()},E=()=>{c.value>=u.value-1?D():c.value+=1,n.nextButtonProps?.onClick&&n.nextButtonProps.onClick()},D=()=>{O(),y()},O=()=>{_(!1),v(),i(`close`)},A=e=>{if(!e.target?.isContentEditable)switch(Kp(e)){case X.left:e.preventDefault(),c.value>0&&w();break;case X.right:e.preventDefault(),E();break}};return d(()=>{window.addEventListener(`keydown`,A)}),T(()=>{window.removeEventListener(`keydown`,A)}),(t,n)=>(N(),W(R,null,[b.value?(N(),W(`button`,{key:0,"aria-label":Y(o)(`el.tour.close`),class:F(Y(h).e(`closebtn`)),type:`button`,onClick:O},[J(Y(By),{class:F(Y(h).e(`close`))},{default:V(()=>[(N(),H(L(x.value)))]),_:1},8,[`class`])],10,KW)):G(`v-if`,!0),B(`header`,{class:F([Y(h).e(`header`),{"show-close":Y(f)}])},[I(t.$slots,`header`,{},()=>[B(`span`,{role:`heading`,class:F(Y(h).e(`title`))},S(e.title),3)])],2),B(`div`,{class:F(Y(h).e(`body`))},[I(t.$slots,`default`,{},()=>[B(`span`,null,S(e.description),1)])],2),B(`footer`,{class:F(Y(h).e(`footer`))},[B(`div`,{class:F(Y(h).b(`indicators`))},[Y(g).indicators?(N(),H(L(Y(g).indicators),{key:0,current:Y(c),total:Y(u)},null,8,[`current`,`total`])):(N(!0),W(R,{key:1},r(Y(u),(e,t)=>(N(),W(`span`,{key:e,class:F([Y(h).b(`indicator`),Y(h).is(`active`,t===Y(c))])},null,2))),128))],2),B(`div`,{class:F(Y(h).b(`buttons`))},[Y(c)>0?(N(),H(Y(xw),k({key:0,size:`small`,type:Y(m)},C(e.prevButtonProps),{onClick:w}),{default:V(()=>[Ke(S(e.prevButtonProps?.children??Y(o)(`el.tour.previous`)),1)]),_:1},16,[`type`])):G(`v-if`,!0),Y(c)<=Y(u)-1?(N(),H(Y(xw),k({key:1,size:`small`,type:Y(m)===`primary`?`default`:`primary`},C(e.nextButtonProps),{onClick:E}),{default:V(()=>[Ke(S(e.nextButtonProps?.children??(Y(c)===Y(u)-1?Y(o)(`el.tour.finish`):Y(o)(`el.tour.next`))),1)]),_:1},16,[`type`])):G(`v-if`,!0)],2)],2)],64))}}),JW=Pv(GW,{TourStep:qW}),YW=Lv(qW),XW=Q({container:{type:Z([String,Object])},offset:{type:Number,default:0},bound:{type:Number,default:15},duration:{type:Number,default:300},marker:{type:Boolean,default:!0},type:{type:Z(String),default:`default`},direction:{type:Z(String),default:`vertical`},selectScrollTop:Boolean}),ZW={change:e=>P(e),click:(e,t)=>e instanceof MouseEvent&&(P(t)||Ad(t))},QW=(e=>{if(!nf||e===``)return null;if(P(e))try{return document.querySelector(e)}catch{return null}return e});function $W(e){let t=0,n=(...n)=>{t&&Pp(t),t=Np(()=>{e(...n),t=0})};return n.cancel=()=>{Pp(t),t=0},n}var eG=Symbol(`anchor`),tG=z({name:`ElAnchor`,__name:`anchor`,props:XW,emits:ZW,setup(e,{expose:t,emit:n}){let r=e,i=n,a=le(),o=q(``),s=q({}),c=q(null),l=q(null),u=q(),f={},p=!1,h=0,g=$(`anchor`),_=K(()=>[g.b(),r.type===`underline`?g.m(`underline`):``,g.m(r.direction)]),v=e=>{f[e.href]=e.el},y=e=>{delete f[e]},b=e=>{o.value!==e&&(o.value=e,i(xr,e))},x=null,S=``,C=e=>{if(!u.value)return;let t=QW(e);if(!t)return;if(x){if(S===e)return;x()}S=e,p=!0;let n=Vp(t,u.value),i=EA(t,n),a=n.scrollHeight-n.clientHeight,o=Math.min(i-r.offset,a);x=Bp(u.value,h,o,r.duration,()=>{setTimeout(()=>{p=!1,S=``},20)})},w=e=>{e&&(b(e),C(e))},T=(e,t)=>{i(`click`,e,t),w(t)},E=$W(()=>{u.value&&(h=Hp(u.value));let e=D();p||Ad(e)||b(e)}),D=()=>{if(!u.value)return;let e=Hp(u.value),t=[];for(let e of Object.keys(f)){let n=QW(e);if(!n)continue;let i=EA(n,Vp(n,u.value));t.push({top:i-r.offset-r.bound,href:e})}t.sort((e,t)=>e.top-t.top);for(let n=0;ne))return i.href}},O=()=>{let e=QW(r.container);!e||Ld(e)?u.value=window:u.value=e};kf(u,`scroll`,E);let k=()=>{U(()=>{if(!c.value||!l.value||!o.value){s.value={};return}let e=f[o.value];if(!e){s.value={};return}let t=c.value.getBoundingClientRect(),n=l.value.getBoundingClientRect(),i=e.getBoundingClientRect();r.direction===`horizontal`?s.value={left:`${i.left-t.left}px`,width:`${i.width}px`,opacity:1}:s.value={top:`${i.top-t.top+(i.height-n.height)/2}px`,opacity:1}})};return M(o,k),M(()=>a.default?.(),k),d(()=>{O();let e=decodeURIComponent(window.location.hash);QW(e)?w(e):E()}),M(()=>r.container,()=>{O()}),Qe(eG,{ns:g,direction:r.direction,currentAnchor:o,addLink:v,removeLink:y,handleClick:T}),t({scrollTo:w}),(t,n)=>(N(),W(`div`,{ref_key:`anchorRef`,ref:c,class:F(_.value)},[e.marker?(N(),W(`div`,{key:0,ref_key:`markerRef`,ref:l,class:F(Y(g).e(`marker`)),style:m(s.value)},null,6)):G(`v-if`,!0),B(`div`,{class:F(Y(g).e(`list`))},[I(t.$slots,`default`)],2)],2))}}),nG=Q({title:String,href:String}),rG=[`href`],iG=z({name:`ElAnchorLink`,__name:`anchor-link`,props:nG,setup(e){let t=e,n=q(null),{ns:r,direction:i,currentAnchor:a,addLink:o,removeLink:s,handleClick:c}=l(eG),u=K(()=>[r.e(`link`),r.is(`active`,a.value===t.href)]),f=e=>{c(e,t.href)};return M(()=>t.href,(e,t)=>{U(()=>{t&&s(t),e&&o({href:e,el:n.value})})}),d(()=>{let{href:e}=t;e&&o({href:e,el:n.value})}),T(()=>{let{href:e}=t;e&&s(e)}),(t,a)=>(N(),W(`div`,{class:F(Y(r).e(`item`))},[B(`a`,{ref_key:`linkRef`,ref:n,class:F(u.value),href:e.href,onClick:f},[I(t.$slots,`default`,{},()=>[Ke(S(e.title),1)])],10,rG),t.$slots[`sub-link`]&&Y(i)===`vertical`?(N(),W(`div`,{key:0,class:F(Y(r).e(`list`))},[I(t.$slots,`sub-link`)],2)):G(`v-if`,!0)],2))}}),aG=Pv(tG,{AnchorLink:iG}),oG=Lv(iG),sG={label:`label`,value:`value`,disabled:`disabled`},cG=Q({direction:{type:Z(String),default:`horizontal`},options:{type:Z(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:Z(Object),default:()=>sG},block:Boolean,size:xv,disabled:{type:Boolean,default:void 0},validateEvent:{type:Boolean,default:!0},id:String,name:String,...Mv([`ariaLabel`])}),lG={[br]:e=>P(e)||Md(e)||jd(e),[xr]:e=>P(e)||Md(e)||jd(e)},uG=[`id`,`aria-label`,`aria-labelledby`],dG=[`name`,`disabled`,`checked`,`onChange`],fG=Pv(z({name:`ElSegmented`,__name:`segmented`,props:cG,emits:lG,setup(e,{emit:t}){let n=e,i=t,a=$(`segmented`),o=rg(),s=cb(),c=lb(),{formItem:l}=ub(),{inputId:u,isLabeledByFormItem:d}=db(n,{formItemContext:l}),f=q(null),p=If(),h=ve({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),g=(e,t)=>{let r=v(t);i(br,r),i(xr,r),e.target.checked=r===n.modelValue},_=K(()=>({...sG,...n.props})),v=e=>E(e)?e[_.value.value]:e,y=e=>E(e)?e[_.value.label]:e,b=e=>!!(c.value||E(e)&&e[_.value.disabled]),x=e=>n.modelValue===v(e),C=e=>n.options.find(t=>v(t)===e),w=e=>[a.e(`item`),a.is(`selected`,x(e)),a.is(`disabled`,b(e))],T=()=>{if(!f.value)return;let e=f.value.querySelector(`.is-selected`),t=f.value.querySelector(`.is-selected input`);if(!e||!t){h.width=0,h.height=0,h.translateX=0,h.translateY=0,h.focusVisible=!1;return}h.isInit=!0,n.direction===`vertical`?(h.height=e.offsetHeight,h.translateY=e.offsetTop):(h.width=e.offsetWidth,h.translateX=e.offsetLeft);try{h.focusVisible=t.matches(`:focus-visible`)}catch{}},D=K(()=>[a.b(),a.m(s.value),a.is(`block`,n.block)]),O=K(()=>({width:n.direction===`vertical`?`100%`:`${h.width}px`,height:n.direction===`vertical`?`${h.height}px`:`100%`,transform:n.direction===`vertical`?`translateY(${h.translateY}px)`:`translateX(${h.translateX}px)`,display:h.isInit?`block`:`none`})),k=K(()=>[a.e(`item-selected`),a.is(`disabled`,b(C(n.modelValue))),a.is(`focus-visible`,h.focusVisible)]),A=K(()=>n.name||o.value);return Uf(f,T),M(p,T),M(()=>n.options,T,{deep:!0,flush:`post`}),M(()=>n.modelValue,()=>{T(),n.validateEvent&&l?.validate?.(`change`).catch(ge)},{flush:`post`}),(t,n)=>e.options.length?(N(),W(`div`,{key:0,id:Y(u),ref_key:`segmentedRef`,ref:f,class:F(D.value),role:`radiogroup`,"aria-label":Y(d)?void 0:e.ariaLabel||`segmented`,"aria-labelledby":Y(d)?Y(l).labelId:void 0},[B(`div`,{class:F([Y(a).e(`group`),Y(a).m(e.direction)])},[B(`div`,{style:m(O.value),class:F(k.value)},null,6),(N(!0),W(R,null,r(e.options,(e,n)=>(N(),W(`label`,{key:n,class:F(w(e))},[B(`input`,{class:F(Y(a).e(`item-input`)),type:`radio`,name:A.value,disabled:b(e),checked:x(e),onChange:t=>g(t,e)},null,42,dG),B(`div`,{class:F(Y(a).e(`item-label`))},[I(t.$slots,`default`,{item:e},()=>[Ke(S(y(e)),1)])],2)],2))),128))],2)],10,uG)):G(`v-if`,!0)}})),pG=(e,t)=>{let n=e.toLowerCase();return(t.label||t.value||``).toLowerCase().includes(n)},mG=(e,t,n)=>{let{selectionEnd:r}=e;if(r===null)return;let i=e.value,a=Cs(t),o=-1,s;for(let e=r-1;e>=0;--e){let t=i[e];if(o===-1&&(t===n||t===` +`||t===`\r`)){o=e;continue}if(a.includes(t)){let n=o===-1?r:o;s={pattern:i.slice(e+1,n),start:e+1,end:n,prefix:t,prefixIndex:e,splitIndex:o,selectionEnd:r};break}}return s},hG=(e,t={debug:!1,useSelectionEnd:!1})=>{let n=e.selectionStart===null?0:e.selectionStart,r=e.selectionEnd===null?0:e.selectionEnd,i=t.useSelectionEnd?r:n,a=`direction.boxSizing.width.height.overflowX.overflowY.borderTopWidth.borderRightWidth.borderBottomWidth.borderLeftWidth.borderStyle.paddingTop.paddingRight.paddingBottom.paddingLeft.fontStyle.fontVariant.fontWeight.fontStretch.fontSize.fontSizeAdjust.lineHeight.fontFamily.textAlign.textTransform.textIndent.textDecoration.letterSpacing.wordSpacing.tabSize.MozTabSize`.split(`.`);if(t.debug){let e=document.querySelector(`#input-textarea-caret-position-mirror-div`);e?.parentNode&&e.parentNode.removeChild(e)}let o=document.createElement(`div`);o.id=`input-textarea-caret-position-mirror-div`,document.body.appendChild(o);let s=o.style,c=window.getComputedStyle(e),l=e.nodeName===`INPUT`;s.whiteSpace=l?`nowrap`:`pre-wrap`,l||(s.wordWrap=`break-word`),s.position=`absolute`,t.debug||(s.visibility=`hidden`),a.forEach(e=>{if(l&&e===`lineHeight`)if(c.boxSizing===`border-box`){let e=Number.parseInt(c.height),t=Number.parseInt(c.paddingTop)+Number.parseInt(c.paddingBottom)+Number.parseInt(c.borderTopWidth)+Number.parseInt(c.borderBottomWidth),n=t+Number.parseInt(c.lineHeight);e>n?s.lineHeight=`${e-t}px`:e===n?s.lineHeight=c.lineHeight:s.lineHeight=`0`}else s.lineHeight=c.height;else s[e]=c[e]}),lp()?e.scrollHeight>Number.parseInt(c.height)&&(s.overflowY=`scroll`):s.overflow=`hidden`,o.textContent=e.value.slice(0,Math.max(0,i)),l&&o.textContent&&(o.textContent=o.textContent.replace(/\s/g,`\xA0`));let u=document.createElement(`span`);u.textContent=e.value.slice(Math.max(0,i))||`.`,u.style.position=`relative`,u.style.left=`${-e.scrollLeft}px`,u.style.top=`${-e.scrollTop}px`,o.appendChild(u);let d={top:u.offsetTop+Number.parseInt(c.borderTopWidth),left:u.offsetLeft+Number.parseInt(c.borderLeftWidth),height:Number.parseInt(c.fontSize)*1.5};return t.debug?u.style.backgroundColor=`#aaa`:document.body.removeChild(o),d.left>=e.clientWidth&&(d.left=e.clientWidth),d},gG=Q({...OS,options:{type:Z(Array),default:()=>[]},prefix:{type:Z([String,Array]),default:`@`,validator:e=>P(e)?e.length===1:e.every(e=>P(e)&&e.length===1)},split:{type:String,default:` `,validator:e=>e.length===1},filterOption:{type:Z([Boolean,Function]),default:()=>pG,validator:e=>e===!1?!0:n(e)},placement:{type:Z(String),default:`bottom`},showArrow:Boolean,offset:{type:Number,default:0},whole:Boolean,checkIsWhole:{type:Z(Function)},modelValue:String,loading:Boolean,popperClass:fS.popperClass,popperStyle:fS.popperStyle,popperOptions:{type:Z(Object),default:()=>({})},props:{type:Z(Object),default:()=>vG}}),_G={[br]:e=>P(e),"whole-remove":(e,t)=>P(e)&&P(t),input:e=>P(e),search:(e,t)=>P(e)&&P(t),select:(e,t)=>E(e)&&P(t),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent},vG={value:`value`,label:`label`,disabled:`disabled`},yG=Q({options:{type:Z(Array),default:()=>[]},loading:Boolean,disabled:Boolean,contentId:String,ariaLabel:String}),bG={select:e=>P(e.value)},xG=[`id`,`aria-disabled`,`aria-selected`,`onMousemove`,`onClick`],SG=z({name:`ElMentionDropdown`,__name:`mention-dropdown`,props:yG,emits:bG,setup(e,{expose:t,emit:n}){let i=e,a=n,o=$(`mention`),{t:s}=Dp(),c=q(-1),l=q(),u=q(),d=q(),f=(e,t)=>[o.be(`dropdown`,`item`),o.is(`hovering`,c.value===t),o.is(`disabled`,e.disabled||i.disabled)],p=e=>{e.disabled||i.disabled||a(`select`,e)},m=e=>{c.value=e},h=K(()=>i.disabled||i.options.every(e=>e.disabled)),g=K(()=>i.options[c.value]),_=()=>{!g.value||g.value.disabled||i.disabled||a(`select`,g.value)},v=e=>{let{options:t}=i;if(t.length===0||h.value)return;e===`next`?(c.value++,c.value===t.length&&(c.value=0)):e===`prev`&&(c.value--,c.value<0&&(c.value=t.length-1));let n=t[c.value];if(n.disabled){v(e);return}U(()=>y(n))},y=e=>{let{options:t}=i,n=t.findIndex(t=>t.value===e.value),r=u.value?.[n];if(r){let e=d.value?.querySelector?.(`.${o.be(`dropdown`,`wrap`)}`);e&&zp(e,r)}l.value?.handleScroll()};return M(()=>i.options,()=>{h.value||i.options.length===0?c.value=-1:c.value=i.options.findIndex(e=>!e.disabled)},{immediate:!0}),t({hoveringIndex:c,navigateOptions:v,selectHoverOption:_,hoverOption:g}),(t,n)=>(N(),W(`div`,{ref_key:`dropdownRef`,ref:d,class:F(Y(o).b(`dropdown`))},[t.$slots.header?(N(),W(`div`,{key:0,class:F(Y(o).be(`dropdown`,`header`))},[I(t.$slots,`header`)],2)):G(`v-if`,!0),Ge(J(Y(tC),{id:e.contentId,ref_key:`scrollbarRef`,ref:l,tag:`ul`,"wrap-class":Y(o).be(`dropdown`,`wrap`),"view-class":Y(o).be(`dropdown`,`list`),role:`listbox`,"aria-label":e.ariaLabel,"aria-orientation":`vertical`},{default:V(()=>[(N(!0),W(R,null,r(e.options,(n,r)=>(N(),W(`li`,{id:`${e.contentId}-${r}`,ref_for:!0,ref_key:`optionRefs`,ref:u,key:r,class:F(f(n,r)),role:`option`,"aria-disabled":n.disabled||e.disabled||void 0,"aria-selected":c.value===r,onMousemove:e=>m(r),onClick:kn(e=>p(n),[`stop`])},[I(t.$slots,`label`,{item:n,index:r},()=>[B(`span`,null,S(n.label??n.value),1)])],42,xG))),128))]),_:3},8,[`id`,`wrap-class`,`view-class`,`aria-label`]),[[jt,e.options.length>0&&!e.loading]]),e.loading?(N(),W(`div`,{key:1,class:F(Y(o).be(`dropdown`,`loading`))},[I(t.$slots,`loading`,{},()=>[Ke(S(Y(s)(`el.mention.loading`)),1)])],2)):G(`v-if`,!0),t.$slots.footer?(N(),W(`div`,{key:2,class:F(Y(o).be(`dropdown`,`footer`))},[I(t.$slots,`footer`)],2)):G(`v-if`,!0)],2))}}),CG=Pv(z({name:`ElMention`,inheritAttrs:!1,__name:`mention`,props:gG,emits:_G,setup(e,{expose:t,emit:i}){let o=e,s=i,c=K(()=>{let e=zS.props??[];return Sd(o,A(e)?e:Object.keys(e))}),l=$(`mention`),u=lb(),d=rg(),f=q(),p=q(),h=q(),g=q(!1),_=q(),v=q(),y=K(()=>o.showArrow?o.placement:`${o.placement}-start`),b=K(()=>o.showArrow?[`bottom`,`top`]:[`bottom-start`,`top-start`]),x=K(()=>({...vG,...o.props})),S=e=>{let t={label:e[x.value.label],value:e[x.value.value],disabled:e[x.value.disabled]};return{...e,...t}},C=K(()=>o.options.map(S)),w=K(()=>{let{filterOption:e}=o;return!v.value||!e?C.value:C.value.filter(t=>e(v.value.pattern,t))}),T=K(()=>g.value&&(!!w.value.length||o.loading)),E=K(()=>`${d.value}-${h.value?.hoveringIndex}`),D=e=>{s(br,e),s(Sr,e),ne()},O=e=>{if(f.value?.isComposing)return;let t=Kp(e);switch(t){case X.left:case X.right:ne();break;case X.up:case X.down:if(!g.value)return;e.preventDefault(),h.value?.navigateOptions(t===X.up?`prev`:`next`);break;case X.enter:case X.numpadEnter:if(!g.value){o.type!==`textarea`&&ne();return}e.preventDefault(),h.value?.hoverOption?h.value?.selectHoverOption():g.value=!1;break;case X.esc:if(!g.value)return;e.preventDefault(),g.value=!1;break;case X.backspace:if(o.whole&&v.value){let{splitIndex:t,selectionEnd:r,pattern:i,prefixIndex:a,prefix:c}=v.value,l=te();if(!l)return;let u=l.value,d=C.value.find(e=>e.value===i);if((n(o.checkIsWhole)?o.checkIsWhole(i,c):d)&&t!==-1&&t+1===r){e.preventDefault();let n=u.slice(0,a)+u.slice(t+1);s(br,n),s(Sr,n),s(`whole-remove`,i,c);let r=a;U(()=>{l.selectionStart=r,l.selectionEnd=r,ie()})}}}},{wrapperRef:ee}=wv(f,{disabled:u,afterFocus(){ne()},beforeBlur(e){return p.value?.isFocusInsideContent(e)},afterBlur(){g.value=!1}}),j=()=>{ne()},M=e=>o.options.find(t=>e.value===t[x.value.value]),P=e=>{if(!v.value)return;let t=te();if(!t)return;let n=t.value,{split:r}=o,i=n.slice(v.value.end),a=i.startsWith(r),c=`${e.value}${a?``:r}`,l=n.slice(0,v.value.start)+c+i;s(br,l),s(Sr,l),s(`select`,M(e),v.value.prefix);let u=v.value.start+c.length+ +!!a;U(()=>{t.selectionStart=u,t.selectionEnd=u,t.focus(),ie()})},te=()=>o.type===`textarea`?f.value?.textarea:f.value?.input,ne=()=>{setTimeout(()=>{re(),ie(),U(()=>p.value?.updatePopper())},0)},re=()=>{let e=te();if(!e)return;let t=hG(e),n=e.getBoundingClientRect(),r=ee.value.getBoundingClientRect();_.value={position:`absolute`,width:0,height:`${t.height}px`,left:`${t.left+n.left-r.left}px`,top:`${t.top+n.top-r.top}px`}},ie=()=>{let e=te();if(document.activeElement!==e){g.value=!1;return}let{prefix:t,split:n}=o;if(v.value=mG(e,t,n),v.value&&v.value.splitIndex===-1){g.value=!0,s(`search`,v.value.pattern,v.value.prefix);return}g.value=!1};return t({input:f,tooltip:p,dropdownVisible:T}),(t,n)=>(N(),W(`div`,{ref_key:`wrapperRef`,ref:ee,class:F(Y(l).b())},[J(Y(zS),k(k(c.value,t.$attrs),{ref_key:`elInputRef`,ref:f,"model-value":e.modelValue,disabled:Y(u),role:T.value?`combobox`:void 0,"aria-activedescendant":T.value?E.value||``:void 0,"aria-controls":T.value?Y(d):void 0,"aria-expanded":T.value||void 0,"aria-label":e.ariaLabel,"aria-autocomplete":T.value?`none`:void 0,"aria-haspopup":T.value?`listbox`:void 0,onInput:D,onKeydown:O,onMousedown:j}),xe({_:2},[r(t.$slots,(e,n)=>({name:n,fn:V(e=>[I(t.$slots,n,se(a(e)))])}))]),1040,[`model-value`,`disabled`,`role`,`aria-activedescendant`,`aria-controls`,`aria-expanded`,`aria-label`,`aria-autocomplete`,`aria-haspopup`]),J(Y(ES),{ref_key:`tooltipRef`,ref:p,visible:T.value,"popper-class":[Y(l).e(`popper`),e.popperClass],"popper-style":e.popperStyle,"popper-options":e.popperOptions,placement:y.value,"fallback-placements":b.value,effect:`light`,pure:``,offset:e.offset,"show-arrow":e.showArrow},{default:V(()=>[B(`div`,{style:m(_.value)},null,4)]),content:V(()=>[J(SG,{ref_key:`dropdownRef`,ref:h,options:w.value,disabled:Y(u),loading:e.loading,"content-id":Y(d),"aria-label":e.ariaLabel,onSelect:P,onClick:n[0]||=kn(e=>f.value?.focus(),[`stop`])},xe({_:2},[r(t.$slots,(e,n)=>({name:n,fn:V(e=>[I(t.$slots,n,se(a(e)))])}))]),1032,[`options`,`disabled`,`loading`,`content-id`,`aria-label`])]),_:3},8,[`visible`,`popper-class`,`popper-style`,`popper-options`,`placement`,`fallback-placements`,`offset`,`show-arrow`])],2))}})),wG=Q({layout:{type:String,default:`horizontal`,values:[`horizontal`,`vertical`]},lazy:Boolean}),TG={resizeStart:(e,t)=>!0,resize:(e,t)=>!0,resizeEnd:(e,t)=>!0,collapse:(e,t,n)=>!0},EG=Q({min:{type:[String,Number]},max:{type:[String,Number]},size:{type:[String,Number]},resizable:{type:Boolean,default:!0},collapsible:Boolean}),DG={"update:size":e=>typeof e==`number`||typeof e==`string`};function OG(e){let t=q(),{width:n,height:r}=Gf(t);return{containerEl:t,containerSize:K(()=>e.value===`horizontal`?n.value:r.value)}}function kG(e){return Number(e.slice(0,-1))/100}function AG(e){return Number(e.slice(0,-2))}function jG(e){return P(e)&&e.endsWith(`%`)}function MG(e){return P(e)&&e.endsWith(`px`)}function NG(e,t){let n=K(()=>e.value.map(e=>e.size)),r=K(()=>e.value.length),i=q([]);M([n,r,t],()=>{let n=[],a=0;for(let i=0;ie+(t||0),0);if(o>1||!a){let e=1/o;n=n.map(t=>t===void 0?0:t*e)}else{let e=(1-o)/a;n=n.map(t=>t===void 0?e:t)}i.value=n});let a=e=>e*t.value;return{percentSizes:i,pxSizes:K(()=>i.value.map(a))}}function PG(e,t,n,r){let i=e=>e*t.value||0;function a(e,t){return jG(e)?i(kG(e)):MG(e)?AG(e):e??t}let o=q(0),s=q(null),c=[],l=ge,u=K(()=>e.value.map(e=>[e.min,e.max]));M(r,()=>{if(o.value){let e=new MouseEvent(`mouseup`,{bubbles:!0});window.dispatchEvent(e)}});let d=e=>{o.value=0,s.value={index:e,confirmed:!1},c=n.value},f=(n,i)=>{let d=null;if((!s.value||!s.value.confirmed)&&i!==0){if(i>0)d=n,s.value={index:n,confirmed:!0};else for(let e=n;e>=0;--e)if(c[e]>0){d=e,s.value={index:e,confirmed:!0};break}}let f=d??s.value?.index??n,p=[...c],m=f+1,h=a(u.value[f][0],0),g=a(u.value[m][0],0),_=a(u.value[f][1],t.value||0),v=a(u.value[m][1],t.value||0),y=i;p[f]+y_&&(y=_-p[f]),p[m]-y>v&&(y=p[m]-v),p[f]+=y,p[m]-=y,o.value=y,l=()=>{e.value.forEach((e,t)=>{e.size=p[t]}),l=ge},r.value||l()},p=()=>{r.value&&l(),o.value=0,s.value=null,c=[]},m=[];return{lazyOffset:o,onMoveStart:d,onMoving:f,onMoveEnd:p,movingIndex:s,onCollapse:(t,r)=>{m.length||m.push(...n.value.map((e,t)=>e<=0?a(u.value[t]?.[0],0):e));let i=n.value,o=r===`start`?t:t+1,s=r===`start`?t+1:t,c=i[o],l=i[s];if(c!==0&&l!==0)i[o]=0,i[s]+=c,m[t]=c;else{let e=c+l,n=Ts(m[t],0,e),r=e-n;i[s]=n,i[o]=r}e.value.forEach((e,t)=>{e.size=i[t]})}}}var FG=Symbol(`splitterRootContextKey`),IG=z({name:`ElSplitter`,__name:`splitter`,props:wG,emits:TG,setup(e,{emit:t}){let n=$(`splitter`),r=t,i=e,a=we(i,`layout`),o=we(i,`lazy`),{containerEl:s,containerSize:c}=OG(a),{removeChild:l,children:u,addChild:d,ChildrenSorter:f}=bv(Xe(),`ElSplitterPanel`);M(u,()=>{_.value=null,u.value.forEach((e,t)=>{e.setIndex(t)})});let{percentSizes:p,pxSizes:h}=NG(u,c),{lazyOffset:g,movingIndex:_,onMoveStart:v,onMoving:y,onMoveEnd:b,onCollapse:x}=PG(u,c,h,o),S=K(()=>({[n.cssVarBlockName(`bar-offset`)]:o.value?`${g.value}px`:void 0}));return Qe(FG,ve({panels:u,percentSizes:p,pxSizes:h,layout:a,lazy:o,movingIndex:_,containerSize:c,onMoveStart:e=>{v(e),r(`resizeStart`,e,h.value)},onMoving:(e,t)=>{y(e,t),o.value||r(`resize`,e,h.value)},onMoveEnd:async e=>{b(),await U(),r(`resizeEnd`,e,h.value)},onCollapse:(e,t)=>{x(e,t),r(`collapse`,e,t,h.value)},registerPanel:d,unregisterPanel:l})),(e,t)=>(N(),W(`div`,{ref_key:`containerEl`,ref:s,class:F([Y(n).b(),Y(n).e(a.value)]),style:m(S.value)},[I(e.$slots,`default`),J(Y(f)),G(` Prevent iframe touch events from breaking `),Y(_)?(N(),W(`div`,{key:0,class:F([Y(n).e(`mask`),Y(n).e(`mask-${a.value}`)])},null,2)):G(`v-if`,!0)],6))}});function LG(e){return e&&E(e)?e:{start:!!e,end:!!e}}function RG(e,t,n,r){return!!(e?.collapsible.end&&t>0||n?.collapsible.start&&r===0&&t>0)}var zG=z({name:`ElSplitterBar`,__name:`split-bar`,props:{index:{type:Number,required:!0},layout:{type:String,values:[`horizontal`,`vertical`],default:`horizontal`},resizable:{type:Boolean,default:!0},lazy:Boolean,startCollapsible:Boolean,endCollapsible:Boolean},emits:[`moveStart`,`moving`,`moveEnd`,`collapse`],setup(e,{emit:t}){let n=$(`splitter-bar`),r=e,i=t,a=K(()=>r.layout===`horizontal`),o=K(()=>a.value?{width:0}:{height:0}),s=K(()=>({width:a.value?`16px`:`100%`,height:a.value?`100%`:`16px`,cursor:r.resizable?a.value?`ew-resize`:`ns-resize`:`auto`,touchAction:`none`})),c=K(()=>{let e=n.e(`dragger`);return{[`${e}-horizontal`]:a.value,[`${e}-vertical`]:!a.value,[`${e}-active`]:!!l.value}}),l=q(null),u=e=>{r.resizable&&(l.value=[e.pageX,e.pageY],i(`moveStart`,r.index),window.addEventListener(`mouseup`,h),window.addEventListener(`mousemove`,f))},d=e=>{if(r.resizable&&e.touches.length===1){e.preventDefault();let t=e.touches[0];l.value=[t.pageX,t.pageY],i(`moveStart`,r.index),window.addEventListener(`touchend`,g),window.addEventListener(`touchmove`,p)}},f=e=>{let{pageX:t,pageY:n}=e,o=t-l.value[0],s=n-l.value[1],c=a.value?o:s;i(`moving`,r.index,c)},p=e=>{if(e.touches.length===1){e.preventDefault();let t=e.touches[0],n=t.pageX-l.value[0],o=t.pageY-l.value[1],s=a.value?n:o;i(`moving`,r.index,s)}},h=()=>{l.value=null,window.removeEventListener(`mouseup`,h),window.removeEventListener(`mousemove`,f),i(`moveEnd`,r.index)},g=()=>{l.value=null,window.removeEventListener(`touchend`,g),window.removeEventListener(`touchmove`,p),i(`moveEnd`,r.index)},_=K(()=>a.value?Vv:Uv),v=K(()=>a.value?Hv:Bv);return(t,r)=>(N(),W(`div`,{class:F([Y(n).b()]),style:m(o.value)},[e.startCollapsible?(N(),W(`div`,{key:0,class:F([Y(n).e(`collapse-icon`),Y(n).e(`${e.layout}-collapse-icon-start`)]),onClick:r[0]||=t=>i(`collapse`,e.index,`start`)},[I(t.$slots,`start-collapsible`,{},()=>[(N(),H(L(_.value),{style:{width:`12px`,height:`12px`}}))])],2)):G(`v-if`,!0),B(`div`,{class:F([Y(n).e(`dragger`),c.value,Y(n).is(`disabled`,!e.resizable),Y(n).is(`lazy`,e.resizable&&e.lazy)]),style:m(s.value),onMousedown:u,onTouchstart:d},null,38),e.endCollapsible?(N(),W(`div`,{key:1,class:F([Y(n).e(`collapse-icon`),Y(n).e(`${e.layout}-collapse-icon-end`)]),onClick:r[1]||=t=>i(`collapse`,e.index,`end`)},[I(t.$slots,`end-collapsible`,{},()=>[(N(),H(L(v.value),{style:{width:`12px`,height:`12px`}}))])],2)):G(`v-if`,!0)],6))}}),BG=`ElSplitterPanel`,VG=z({name:BG,__name:`split-panel`,props:EG,emits:DG,setup(e,{expose:t,emit:n}){let r=$(`splitter-panel`),i=e,a=n,o=l(FG);o||qd(BG,`usage: `);let{panels:s,layout:c,lazy:u,containerSize:d,pxSizes:f}=Se(o),{registerPanel:p,unregisterPanel:m,onCollapse:h,onMoveEnd:g,onMoveStart:_,onMoving:v}=o,y=q(),b=Xe(),x=b.uid,S=q(0),C=K(()=>s.value[S.value]),w=e=>{S.value=e},E=K(()=>C.value?f.value[S.value]??0:0),D=K(()=>C.value?f.value[S.value+1]??0:0),O=K(()=>C.value?s.value[S.value+1]:null),A=K(()=>O.value?i.resizable&&O.value?.resizable&&(E.value!==0||!i.min)&&(D.value!==0||!O.value.min):!1),ee=K(()=>C.value?S.value!==s.value.length-1:!1),j=K(()=>RG(C.value,E.value,O.value,D.value)),P=K(()=>RG(O.value,D.value,C.value,E.value));function te(e){return jG(e)?kG(e)*d.value||0:MG(e)?AG(e):e??0}let ne=!1;M(()=>i.size,()=>{if(!ne&&C.value){if(!d.value){C.value.size=i.size;return}let e=te(i.size),t=te(i.max),n=te(i.min),r=Math.min(Math.max(e,n||0),t||e);r!==e&&a(`update:size`,r),C.value.size=r}}),M(()=>C.value?.size,e=>{e!==i.size&&(ne=!0,a(`update:size`,e),U(()=>ne=!1))}),M(()=>i.resizable,e=>{C.value&&(C.value.resizable=e)});let re=ve({uid:x,getVnode:()=>b.vnode,setIndex:w,...i,collapsible:K(()=>LG(i.collapsible))});return p(re),T(()=>m(re)),t({splitterPanelRef:y}),(e,t)=>(N(),W(R,null,[B(`div`,k({ref_key:`panelEl`,ref:y,class:[Y(r).b()],style:{flexBasis:`${E.value}px`}},e.$attrs),[I(e.$slots,`default`)],16),ee.value?(N(),H(zG,{key:0,index:S.value,layout:Y(c),lazy:Y(u),resizable:A.value,"start-collapsible":j.value,"end-collapsible":P.value,onMoveStart:Y(_),onMoving:Y(v),onMoveEnd:Y(g),onCollapse:Y(h)},{"start-collapsible":V(()=>[I(e.$slots,`start-collapsible`)]),"end-collapsible":V(()=>[I(e.$slots,`end-collapsible`)]),_:3},8,[`index`,`layout`,`lazy`,`resizable`,`start-collapsible`,`end-collapsible`,`onMoveStart`,`onMoving`,`onMoveEnd`,`onCollapse`])):G(`v-if`,!0)],64))}}),HG=Pv(IG,{SplitPanel:VG}),UG=Lv(VG),WG=`ElInfiniteScroll`,GG={delay:{type:Number,default:200},distance:{type:Number,default:0},disabled:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0}},KG=(e,t)=>Object.entries(GG).reduce((n,[r,i])=>{let{type:a,default:o}=i,s=e.getAttribute(`infinite-scroll-${r}`),c=t[s]??s??o;return c=c===`false`?!1:c,c=a(c),n[r]=Number.isNaN(c)?o:c,n},{}),qG=e=>{let{observer:t}=e[WG];t&&(t.disconnect(),delete e[WG].observer)},JG=(e,t)=>{let{container:n,containerEl:r,instance:i,observer:a,lastScrollTop:o}=e[WG],{disabled:s,distance:c}=KG(e,i),{clientHeight:l,scrollHeight:u,scrollTop:d}=r,f=d-o;if(e[WG].lastScrollTop=d,a||s||f<0)return;let p=!1;if(n===e)p=u-(l+d)<=c;else{let{clientTop:t,scrollHeight:n}=e,i=EA(e,r);p=d+l>=i+t+n-c}p&&t.call(i)};function YG(e,t){let{containerEl:n,instance:r}=e[WG],{disabled:i}=KG(e,r);i||n.clientHeight===0||(n.scrollHeight<=n.clientHeight?t.call(r):qG(e))}var XG={async mounted(e,t){let{instance:r,value:i}=t;Zf({scope:WG,from:`the directive v-infinite-scroll`,replacement:`the el-scrollbar infinite scroll`,version:`3.0.0`,ref:`https://element-plus.org/en-US/component/scrollbar#infinite-scroll`},!0),n(i)||qd(WG,`'v-infinite-scroll' binding value must be a function`),await U();let{delay:a,immediate:o}=KG(e,r),s=Ip(e,!0),c=s===window?document.documentElement:s,l=Td(JG.bind(null,e,i),a);if(s){if(e[WG]={instance:r,container:s,containerEl:c,delay:a,cb:i,onScroll:l,lastScrollTop:c.scrollTop},o){let t=new MutationObserver(Td(YG.bind(null,e,i),50));e[WG].observer=t,t.observe(e,{childList:!0,subtree:!0}),YG(e,i)}s.addEventListener(`scroll`,l)}},unmounted(e){if(!e.ElInfiniteScroll)return;let{container:t,onScroll:n}=e[WG];t?.removeEventListener(`scroll`,n),qG(e)},async updated(e){if(!e.ElInfiniteScroll)await U();else{let{containerEl:t,cb:n,observer:r}=e[WG];t.clientHeight&&r&&YG(e,n)}}};XG.install=e=>{e.directive(`InfiniteScroll`,XG)};var ZG=XG;function QG(e,t){let n,r=q(!1),i=ve({...e,originalPosition:``,originalOverflow:``,visible:!1});function a(e){i.text=e}function o(){let e=i.parent,t=d.ns;if(!e.vLoadingAddClassList){let n=e.getAttribute(`loading-number`);n=Number.parseInt(n)-1,n?e.setAttribute(`loading-number`,n.toString()):(_p(e,t.bm(`parent`,`relative`)),e.removeAttribute(`loading-number`)),_p(e,t.bm(`parent`,`hidden`))}s(),u.unmount()}function s(){d.$el?.parentNode?.removeChild(d.$el)}function c(){e.beforeClose&&!e.beforeClose()||(r.value=!0,clearTimeout(n),n=setTimeout(l,400),i.visible=!1,e.closed?.())}function l(){if(!r.value)return;let e=i.parent;r.value=!1,e.vLoadingAddClassList=void 0,o()}let u=In(z({name:`ElLoading`,setup(e,{expose:t}){let{ns:n,zIndex:r}=IC(`loading`);return t({ns:n,zIndex:r}),()=>{let e=i.spinner||i.svg,t=Je(`svg`,{class:`circular`,viewBox:i.svgViewBox?i.svgViewBox:`0 0 50 50`,...e?{innerHTML:e}:{}},[Je(`circle`,{class:`path`,cx:`25`,cy:`25`,r:`20`,fill:`none`})]),r=i.text?Je(`p`,{class:n.b(`text`)},[i.text]):void 0;return Je(pt,{name:n.b(`fade`),onAfterLeave:l},{default:V(()=>[Ge(J(`div`,{style:{backgroundColor:i.background||``},class:[n.b(`mask`),i.customClass,n.is(`fullscreen`,i.fullscreen)]},[Je(`div`,{class:n.b(`spinner`)},[t,r])]),[[jt,i.visible]])])})}}}));Object.assign(u._context,t??{});let d=u.mount(document.createElement(`div`));return{...Se(i),setText:a,removeElLoadingChild:s,close:c,handleAfterLeave:l,vm:d,get $el(){return d.$el}}}var $G=void 0,eK=function(e={},t){if(!nf)return;let n=tK(e);if(n.fullscreen&&$G)return $G;let r=QG({...n,closed:()=>{n.closed?.(),n.fullscreen&&($G=void 0)}},t??eK._context);nK(n,n.parent,r),rK(n,n.parent,r),n.parent.vLoadingAddClassList=()=>rK(n,n.parent,r);let i=n.parent.getAttribute(`loading-number`);return i=i?`${Number.parseInt(i)+1}`:`1`,n.parent.setAttribute(`loading-number`,i),n.parent.appendChild(r.$el),U(()=>r.visible.value=n.visible),n.fullscreen&&($G=r),r},tK=e=>{let t;return t=P(e.target)?document.querySelector(e.target)??document.body:e.target||document.body,{parent:t===document.body||e.body?document.body:t,background:e.background||``,svg:e.svg||``,svgViewBox:e.svgViewBox||``,spinner:e.spinner||!1,text:e.text||``,fullscreen:t===document.body&&(e.fullscreen??!0),lock:e.lock??!1,customClass:e.customClass||``,visible:e.visible??!0,beforeClose:e.beforeClose,closed:e.closed,target:t}},nK=async(e,t,n)=>{let{nextZIndex:r}=n.vm.zIndex||n.vm._.exposed.zIndex,i={};if(e.fullscreen)n.originalPosition.value=vp(document.body,`position`),n.originalOverflow.value=vp(document.body,`overflow`),i.zIndex=r();else if(e.parent===document.body){n.originalPosition.value=vp(document.body,`position`),await U();for(let t of[`top`,`left`]){let n=t===`top`?`scrollTop`:`scrollLeft`;i[t]=`${e.target.getBoundingClientRect()[t]+document.body[n]+document.documentElement[n]-Number.parseInt(vp(document.body,`margin-${t}`),10)}px`}for(let t of[`height`,`width`])i[t]=`${e.target.getBoundingClientRect()[t]}px`}else n.originalPosition.value=vp(t,`position`);for(let[e,t]of Object.entries(i))n.$el.style[e]=t},rK=(e,t,n)=>{let r=n.vm.ns||n.vm._.exposed.ns;[`absolute`,`fixed`,`sticky`].includes(n.originalPosition.value)?_p(t,r.bm(`parent`,`relative`)):gp(t,r.bm(`parent`,`relative`)),e.fullscreen&&e.lock?gp(t,r.bm(`parent`,`hidden`)):_p(t,r.bm(`parent`,`hidden`))};eK._context=null;var iK=Symbol(`ElLoading`),aK=e=>`element-loading-${ie(e)}`,oK=(e,t)=>{let n=t.instance,r=e=>E(t.value)?t.value[e]:void 0,i=e=>q(P(e)&&n?.[e]||e),a=t=>i(r(t)||e.getAttribute(aK(t))),o=r(`fullscreen`)??t.modifiers.fullscreen,s={text:a(`text`),svg:a(`svg`),svgViewBox:a(`svgViewBox`),spinner:a(`spinner`),background:a(`background`),customClass:a(`customClass`),fullscreen:o,target:r(`target`)??(o?void 0:e),body:r(`body`)??t.modifiers.body,lock:r(`lock`)??t.modifiers.lock},c=eK(s);c._context=cK._context,e[iK]={options:s,instance:c}},sK=(e,t)=>{for(let n of Object.keys(e))he(e[n])&&(e[n].value=t[n])},cK={mounted(e,t){t.value&&oK(e,t)},updated(e,t){let n=e[iK];if(!t.value){n?.instance.close(),e[iK]=null;return}n?sK(n.options,E(t.value)?t.value:{text:e.getAttribute(aK(`text`)),svg:e.getAttribute(aK(`svg`)),svgViewBox:e.getAttribute(aK(`svgViewBox`)),spinner:e.getAttribute(aK(`spinner`)),background:e.getAttribute(aK(`background`)),customClass:e.getAttribute(aK(`customClass`))}):oK(e,t)},unmounted(e){e[iK]?.instance.close(),e[iK]=null}};cK._context=null;var lK={install(e){eK._context=e._context,cK._context=e._context,e.directive(`loading`,cK),e.config.globalProperties.$loading=eK},directive:cK,service:eK},uK=[`primary`,`success`,`info`,`warning`,`error`],dK=[`top`,`top-left`,`top-right`,`bottom`,`bottom-left`,`bottom-right`],fK=DS({customClass:``,dangerouslyUseHTMLString:!1,duration:3e3,icon:void 0,id:``,message:``,onClose:void 0,showClose:!1,type:`info`,plain:!1,offset:16,placement:void 0,zIndex:0,grouping:!1,repeatNum:1,appendTo:nf?document.body:void 0}),pK=Q({customClass:{type:String,default:fK.customClass},dangerouslyUseHTMLString:{type:Boolean,default:fK.dangerouslyUseHTMLString},duration:{type:Number,default:fK.duration},icon:{type:Ny,default:fK.icon},id:{type:String,default:fK.id},message:{type:Z([String,Object,Function]),default:fK.message},onClose:{type:Z(Function),default:fK.onClose},showClose:{type:Boolean,default:fK.showClose},type:{type:String,values:uK,default:fK.type},plain:{type:Boolean,default:fK.plain},offset:{type:Number,default:fK.offset},placement:{type:String,values:dK,default:fK.placement},zIndex:{type:Number,default:fK.zIndex},grouping:{type:Boolean,default:fK.grouping},repeatNum:{type:Number,default:fK.repeatNum}}),mK={destroy:()=>!0},hK=ye({}),gK=e=>(hK[e]||(hK[e]=ye([])),hK[e]),_K=(e,t)=>{let n=hK[t]||[],r=n.findIndex(t=>t.id===e),i=n[r],a;return r>0&&(a=n[r-1]),{current:i,prev:a}},vK=(e,t)=>{let{prev:n}=_K(e,t);return n?n.vm.exposed.bottom.value:0},yK=(e,t,n)=>(hK[n]||[]).findIndex(t=>t.id===e)>0?16:t,bK=[`id`],xK=[`innerHTML`],SK=z({name:`ElMessage`,__name:`message`,props:pK,emits:mK,setup(e,{expose:t,emit:n}){let{Close:r}=Fy,i=e,a=n,o=q(!1),{ns:s,zIndex:c}=IC(`message`),{currentZIndex:l,nextZIndex:u}=c,f=q(),p=q(!1),h=q(0),g,_=K(()=>i.type?i.type===`error`?`danger`:i.type:`info`),v=K(()=>{let e=i.type;return{[s.bm(`icon`,e)]:e&&Iy[e]}}),y=K(()=>i.icon||Iy[i.type]||``),b=K(()=>i.placement||`top`),x=K(()=>vK(i.id,b.value)),C=K(()=>Math.max(yK(i.id,i.offset,b.value)+x.value,i.offset)),w=K(()=>h.value+C.value),T=K(()=>b.value.includes(`left`)?s.is(`left`):b.value.includes(`right`)?s.is(`right`):s.is(`center`)),E=K(()=>b.value.startsWith(`top`)?`top`:`bottom`),D=K(()=>({[E.value]:`${C.value}px`,zIndex:l.value}));function O(){i.duration!==0&&({stop:g}=wf(()=>{A()},i.duration))}function k(){g?.()}function A(){p.value=!1,U(()=>{o.value||(i.onClose?.(),a(`destroy`))})}function ee(e){Kp(e)===X.esc&&A()}return d(()=>{O(),u(),p.value=!0}),M(()=>i.repeatNum,()=>{k(),O()}),kf(document,`keydown`,ee),Uf(f,()=>{h.value=f.value.getBoundingClientRect().height}),t({visible:p,bottom:w,close:A}),(t,n)=>(N(),H(pt,{name:Y(s).b(`fade`),onBeforeEnter:n[0]||=e=>o.value=!0,onBeforeLeave:e.onClose,onAfterLeave:n[1]||=e=>t.$emit(`destroy`),persisted:``},{default:V(()=>[Ge(B(`div`,{id:e.id,ref_key:`messageRef`,ref:f,class:F([Y(s).b(),{[Y(s).m(e.type)]:e.type},Y(s).is(`closable`,e.showClose),Y(s).is(`plain`,e.plain),Y(s).is(`bottom`,E.value===`bottom`),T.value,e.customClass]),style:m(D.value),role:`alert`,onMouseenter:k,onMouseleave:O},[e.repeatNum>1?(N(),H(Y(xC),{key:0,value:e.repeatNum,type:_.value,class:F(Y(s).e(`badge`))},null,8,[`value`,`type`,`class`])):G(`v-if`,!0),y.value?(N(),H(Y(By),{key:1,class:F([Y(s).e(`icon`),v.value])},{default:V(()=>[(N(),H(L(y.value)))]),_:1},8,[`class`])):G(`v-if`,!0),!e.dangerouslyUseHTMLString||t.$slots.default?(N(),W(`p`,{key:2,class:F(Y(s).e(`content`))},[I(t.$slots,`default`,{},()=>[Ke(S(e.message),1)])],2)):(N(),W(R,{key:3},[G(` Caution here, message could've been compromised, never use user's input as message `),B(`p`,{class:F(Y(s).e(`content`)),innerHTML:e.message},null,10,xK)],2112)),e.showClose?(N(),H(Y(By),{key:4,class:F(Y(s).e(`closeBtn`)),onClick:kn(A,[`stop`])},{default:V(()=>[J(Y(r))]),_:1},8,[`class`])):G(`v-if`,!0)],46,bK),[[jt,p.value]])]),_:3},8,[`name`,`onBeforeLeave`]))}}),CK=1,wK=e=>{if(!e.appendTo)e.appendTo=document.body;else if(P(e.appendTo)){let t=document.querySelector(e.appendTo);Pd(t)||(Jd(`ElMessage`,`the appendTo option is not an HTMLElement. Falling back to document.body.`),t=document.body),e.appendTo=t}},TK=e=>{!e.placement&&P(BC.placement)&&BC.placement&&(e.placement=BC.placement),e.placement||=`top`,dK.includes(e.placement)||(Jd(`ElMessage`,`Invalid placement: ${e.placement}. Falling back to 'top'.`),e.placement=`top`)},EK=e=>{let t=!e||P(e)||s(e)||n(e)?{message:e}:e,r={...fK,...t};return wK(r),TK(r),jd(BC.grouping)&&!r.grouping&&(r.grouping=BC.grouping),Md(BC.duration)&&r.duration===3e3&&(r.duration=BC.duration),Md(BC.offset)&&r.offset===16&&(r.offset=BC.offset),jd(BC.showClose)&&!r.showClose&&(r.showClose=BC.showClose),jd(BC.plain)&&!r.plain&&(r.plain=BC.plain),r},DK=e=>{let t=hK[e.props.placement||`top`],n=t.indexOf(e);if(n===-1)return;t.splice(n,1);let{handler:r}=e;r.close()},OK=({appendTo:e,...t},r)=>{let i=`message_${CK++}`,a=t.onClose,o=document.createElement(`div`),c={...t,id:i,onClose:()=>{a?.(),DK(d)},onDestroy:()=>{Fn(null,o)}},l=J(SK,c,n(c.message)||s(c.message)?{default:n(c.message)?c.message:()=>c.message}:null);l.appContext=r||kK._context,Fn(l,o),e.appendChild(o.firstElementChild);let u=l.component,d={id:i,vnode:l,vm:u,handler:{close:()=>{u.exposed.close()}},props:l.component.props};return d},kK=(e={},t)=>{if(!nf)return{close:()=>void 0};let n=EK(e),r=gK(n.placement||`top`);if(n.grouping&&r.length){let e=r.find(({vnode:e})=>e.props?.message===n.message);if(e)return e.props.repeatNum+=1,e.props.type=n.type,e.handler}if(Md(BC.max)&&r.length>=BC.max)return{close:()=>void 0};let i=OK(n,t);return r.push(i),i.handler};uK.forEach(e=>{kK[e]=(t={},n)=>kK({...EK(t),type:e},n)});function AK(e){for(let t in hK)if(Ye(hK,t)){let n=[...hK[t]];for(let t of n)(!e||e===t.props.type)&&t.handler.close()}}function jK(e){hK[e]&&[...hK[e]].forEach(e=>e.handler.close())}kK.closeAll=AK,kK.closeAllByPlacement=jK,kK._context=null;var MK=Fv(kK,`$message`),NK=z({name:`ElMessageBox`,directives:{TrapFocus:oT},components:{ElButton:xw,ElFocusTrap:tS,ElInput:zS,ElOverlay:AN,ElIcon:By,...Fy},inheritAttrs:!1,props:{buttonSize:{type:String,validator:MR},modal:{type:Boolean,default:!0},lockScroll:{type:Boolean,default:!0},showClose:{type:Boolean,default:!0},closeOnClickModal:{type:Boolean,default:!0},closeOnPressEscape:{type:Boolean,default:!0},closeOnHashChange:{type:Boolean,default:!0},center:Boolean,draggable:Boolean,overflow:Boolean,roundButton:Boolean,container:{type:String,default:`body`},boxType:{type:String,default:``}},emits:[`vanish`,`action`],setup(e,{emit:t}){let{locale:r,zIndex:i,ns:a,size:o}=IC(`message-box`,K(()=>e.buttonSize)),{t:s}=r,{nextZIndex:c}=i,l=q(!1),u=ve({autofocus:!0,beforeClose:null,callback:null,cancelButtonText:``,cancelButtonClass:``,confirmButtonText:``,confirmButtonClass:``,cancelButtonType:``,confirmButtonType:`primary`,customClass:``,customStyle:{},dangerouslyUseHTMLString:!1,distinguishCancelAndClose:!1,icon:``,closeIcon:``,inputPattern:null,inputPlaceholder:``,inputType:`text`,inputValue:``,inputValidator:void 0,inputErrorMessage:``,message:``,modalFade:!0,modalClass:``,showCancelButton:!1,showConfirmButton:!0,type:``,title:void 0,showInput:!1,action:``,confirmButtonLoading:!1,cancelButtonLoading:!1,confirmButtonLoadingIcon:Ie(dy),cancelButtonLoadingIcon:Ie(dy),confirmButtonDisabled:!1,editorErrorMessage:``,validateError:!1,zIndex:c()}),f=K(()=>{let e=u.type;return{[a.bm(`icon`,e)]:e&&Iy[e]}}),p=rg(),m=rg(),h=K(()=>{let e=u.type;return u.icon||e&&Iy[e]||``}),g=K(()=>!!u.message),_=q(),v=q(),y=q(),b=q(),x=q(),S=K(()=>u.confirmButtonClass);M(()=>u.inputValue,async t=>{await U(),e.boxType===`prompt`&&t&&A()},{immediate:!0}),M(()=>l.value,t=>{t&&(e.boxType!==`prompt`&&(u.autofocus?y.value=x.value?.$el??_.value:y.value=_.value),u.zIndex=c()),e.boxType===`prompt`&&(t?U().then(()=>{b.value&&b.value.$el&&(u.autofocus?y.value=ee()??_.value:y.value=_.value)}):(u.editorErrorMessage=``,u.validateError=!1))});let{isDragging:C}=xp(_,v,K(()=>e.draggable),K(()=>e.overflow));d(async()=>{await U(),e.closeOnHashChange&&window.addEventListener(`hashchange`,w)}),T(()=>{e.closeOnHashChange&&window.removeEventListener(`hashchange`,w)});function w(){l.value&&(l.value=!1,U(()=>{u.action&&t(`action`,u.action)}))}let E=()=>{e.closeOnClickModal&&k(u.distinguishCancelAndClose?`close`:`cancel`)},D=Zh(E),O=e=>{if(u.inputType!==`textarea`&&!b.value?.isComposing)return e.preventDefault(),k(`confirm`)},k=t=>{e.boxType===`prompt`&&t===`confirm`&&!A()||(u.action=t,u.beforeClose?u.beforeClose?.(t,u,w):w())},A=()=>{if(e.boxType===`prompt`){let e=u.inputPattern;if(e&&!e.test(u.inputValue||``))return u.editorErrorMessage=u.inputErrorMessage||s(`el.messagebox.error`),u.validateError=!0,!1;let t=u.inputValidator;if(n(t)){let e=t(u.inputValue);if(e===!1)return u.editorErrorMessage=u.inputErrorMessage||s(`el.messagebox.error`),u.validateError=!0,!1;if(P(e))return u.editorErrorMessage=e,u.validateError=!0,!1}}return u.editorErrorMessage=``,u.validateError=!1,!0},ee=()=>{let e=b.value?.$refs;return e?.input??e?.textarea},j=()=>{k(`close`)},N=()=>{e.closeOnPressEscape&&j()};return e.lockScroll&&Up(l,{ns:a}),{...Se(u),ns:a,overlayEvent:D,visible:l,hasMessage:g,typeClass:f,contentId:p,inputId:m,btnSize:o,iconComponent:h,confirmButtonClasses:S,rootRef:_,focusStartRef:y,headerRef:v,inputRef:b,isDragging:C,confirmRef:x,doClose:w,handleClose:j,onCloseRequested:N,handleWrapperClick:E,handleInputEnter:O,handleAction:k,t:s}}}),PK=[`aria-label`,`aria-describedby`],FK=[`aria-label`],IK=[`id`];function LK(e,t,n,r,i,a){let o=h(`el-icon`),s=h(`el-input`),c=h(`el-button`),l=h(`el-focus-trap`),u=h(`el-overlay`);return N(),H(pt,{name:`fade-in-linear`,onAfterLeave:t[11]||=t=>e.$emit(`vanish`),persisted:``},{default:V(()=>[Ge(J(u,{"z-index":e.zIndex,"overlay-class":[e.ns.is(`message-box`),e.modalClass],mask:e.modal},{default:V(()=>[B(`div`,{role:`dialog`,"aria-label":e.title,"aria-modal":`true`,"aria-describedby":e.showInput?void 0:e.contentId,class:F(`${e.ns.namespace.value}-overlay-message-box`),onClick:t[8]||=(...t)=>e.overlayEvent.onClick&&e.overlayEvent.onClick(...t),onMousedown:t[9]||=(...t)=>e.overlayEvent.onMousedown&&e.overlayEvent.onMousedown(...t),onMouseup:t[10]||=(...t)=>e.overlayEvent.onMouseup&&e.overlayEvent.onMouseup(...t)},[J(l,{loop:``,trapped:e.visible,"focus-trap-el":e.rootRef,"focus-start-el":e.focusStartRef,onReleaseRequested:e.onCloseRequested},{default:V(()=>[B(`div`,{ref:`rootRef`,class:F([e.ns.b(),e.customClass,e.ns.is(`draggable`,e.draggable),e.ns.is(`dragging`,e.isDragging),{[e.ns.m(`center`)]:e.center}]),style:m(e.customStyle),tabindex:`-1`,onClick:t[7]||=kn(()=>{},[`stop`])},[e.title!==null&&e.title!==void 0?(N(),W(`div`,{key:0,ref:`headerRef`,class:F([e.ns.e(`header`),{"show-close":e.showClose}])},[B(`div`,{class:F(e.ns.e(`title`))},[e.iconComponent&&e.center?(N(),H(o,{key:0,class:F([e.ns.e(`status`),e.typeClass])},{default:V(()=>[(N(),H(L(e.iconComponent)))]),_:1},8,[`class`])):G(`v-if`,!0),B(`span`,null,S(e.title),1)],2),e.showClose?(N(),W(`button`,{key:0,type:`button`,class:F(e.ns.e(`headerbtn`)),"aria-label":e.t(`el.messagebox.close`),onClick:t[0]||=t=>e.handleAction(e.distinguishCancelAndClose?`close`:`cancel`),onKeydown:t[1]||=jn(kn(t=>e.handleAction(e.distinguishCancelAndClose?`close`:`cancel`),[`prevent`]),[`enter`])},[J(o,{class:F(e.ns.e(`close`))},{default:V(()=>[(N(),H(L(e.closeIcon||`close`)))]),_:1},8,[`class`])],42,FK)):G(`v-if`,!0)],2)):G(`v-if`,!0),B(`div`,{id:e.contentId,class:F(e.ns.e(`content`))},[B(`div`,{class:F(e.ns.e(`container`))},[e.iconComponent&&!e.center&&e.hasMessage?(N(),H(o,{key:0,class:F([e.ns.e(`status`),e.typeClass])},{default:V(()=>[(N(),H(L(e.iconComponent)))]),_:1},8,[`class`])):G(`v-if`,!0),e.hasMessage?(N(),W(`div`,{key:1,class:F(e.ns.e(`message`))},[I(e.$slots,`default`,{},()=>[e.dangerouslyUseHTMLString?(N(),H(L(e.showInput?`label`:`p`),{key:1,for:e.showInput?e.inputId:void 0,innerHTML:e.message},null,8,[`for`,`innerHTML`])):(N(),H(L(e.showInput?`label`:`p`),{key:0,for:e.showInput?e.inputId:void 0,textContent:S(e.message)},null,8,[`for`,`textContent`]))])],2)):G(`v-if`,!0)],2),Ge(B(`div`,{class:F(e.ns.e(`input`))},[J(s,{id:e.inputId,ref:`inputRef`,modelValue:e.inputValue,"onUpdate:modelValue":t[2]||=t=>e.inputValue=t,type:e.inputType,placeholder:e.inputPlaceholder,"aria-invalid":e.validateError,class:F({invalid:e.validateError}),onKeydown:jn(e.handleInputEnter,[`enter`])},null,8,[`id`,`modelValue`,`type`,`placeholder`,`aria-invalid`,`class`,`onKeydown`]),B(`div`,{class:F(e.ns.e(`errormsg`)),style:m({visibility:e.editorErrorMessage?`visible`:`hidden`})},S(e.editorErrorMessage),7)],2),[[jt,e.showInput]])],10,IK),e.showCancelButton||e.showConfirmButton?(N(),W(`div`,{key:1,class:F(e.ns.e(`btns`))},[e.showCancelButton?(N(),H(c,{key:0,type:e.cancelButtonType===`text`?``:e.cancelButtonType,text:e.cancelButtonType===`text`,loading:e.cancelButtonLoading,"loading-icon":e.cancelButtonLoadingIcon,class:F([e.cancelButtonClass]),round:e.roundButton,size:e.btnSize,onClick:t[3]||=t=>e.handleAction(`cancel`),onKeydown:t[4]||=jn(kn(t=>e.handleAction(`cancel`),[`prevent`]),[`enter`])},{default:V(()=>[Ke(S(e.cancelButtonText||e.t(`el.messagebox.cancel`)),1)]),_:1},8,[`type`,`text`,`loading`,`loading-icon`,`class`,`round`,`size`])):G(`v-if`,!0),Ge(J(c,{ref:`confirmRef`,type:e.confirmButtonType===`text`?``:e.confirmButtonType,text:e.confirmButtonType===`text`,loading:e.confirmButtonLoading,"loading-icon":e.confirmButtonLoadingIcon,class:F([e.confirmButtonClasses]),round:e.roundButton,disabled:e.confirmButtonDisabled,size:e.btnSize,onClick:t[5]||=t=>e.handleAction(`confirm`),onKeydown:t[6]||=jn(kn(t=>e.handleAction(`confirm`),[`prevent`]),[`enter`])},{default:V(()=>[Ke(S(e.confirmButtonText||e.t(`el.messagebox.confirm`)),1)]),_:1},8,[`type`,`text`,`loading`,`loading-icon`,`class`,`round`,`disabled`,`size`]),[[jt,e.showConfirmButton]])],2)):G(`v-if`,!0)],6)]),_:3},8,[`trapped`,`focus-trap-el`,`focus-start-el`,`onReleaseRequested`])],42,PK)]),_:3},8,[`z-index`,`overlay-class`,`mask`]),[[jt,e.visible]])]),_:3})}var RK=$x(NK,[[`render`,LK]]),zK=new Map,BK=e=>{let t=document.body;return e.appendTo&&(P(e.appendTo)&&(t=document.querySelector(e.appendTo)),Pd(e.appendTo)&&(t=e.appendTo),Pd(t)||(Jd(`ElMessageBox`,`the appendTo option is not an HTMLElement. Falling back to document.body.`),t=document.body)),t},VK=(e,t)=>{let n=e.component?.proxy;return()=>n.handleAction(t)},HK=(e,t,r=null)=>{let i=J(RK,e,n(e.message)||s(e.message)?{default:n(e.message)?()=>e.message({confirm:VK(i,`confirm`),cancel:VK(i,`cancel`),close:VK(i,`close`)}):()=>e.message}:null);return i.appContext=r,Fn(i,t),BK(e).appendChild(t.firstElementChild),i.component},UK=()=>document.createElement(`div`),WK=(e,t)=>{let n=UK();e.onVanish=()=>{Fn(null,n),zK.delete(i)},e.onAction=t=>{let n=zK.get(i),a;a=e.showInput?{value:i.inputValue,action:t}:t,e.callback?e.callback(a,r.proxy):t===`cancel`||t===`close`?e.distinguishCancelAndClose&&t!==`cancel`?n.reject(`close`):n.reject(`cancel`):n.resolve(a)};let r=HK(e,n,t),i=r.proxy;for(let t in e)Ye(e,t)&&!Ye(i.$props,t)&&(t===`closeIcon`&&E(e[t])?i[t]=Ie(e[t]):i[t]=e[t]);return i.visible=!0,i};function GK(e,t=null){if(!nf)return Promise.reject();let n;return P(e)||s(e)?e={message:e}:n=e.callback,new Promise((r,i)=>{let a=WK(e,t??GK._context);zK.set(a,{options:e,callback:n,resolve:r,reject:i})})}var KK=[`alert`,`confirm`,`prompt`],qK={alert:{closeOnPressEscape:!1,closeOnClickModal:!1},confirm:{showCancelButton:!0},prompt:{showCancelButton:!0,showInput:!0}};KK.forEach(e=>{GK[e]=JK(e)});function JK(e){return(t,n,r,i)=>{let a=``;return E(n)?(r=n,a=``):a=Ad(n)?``:n,GK(Object.assign({title:a,message:t,type:``,...qK[e]},r,{boxType:e}),i)}}GK.close=()=>{zK.forEach((e,t)=>{t.doClose()}),zK.clear()},GK._context=null;var YK=GK;YK.install=e=>{YK._context=e._context,e.config.globalProperties.$msgbox=YK,e.config.globalProperties.$messageBox=YK,e.config.globalProperties.$alert=YK.alert,e.config.globalProperties.$confirm=YK.confirm,e.config.globalProperties.$prompt=YK.prompt};var XK=YK,ZK=[`primary`,`success`,`info`,`warning`,`error`],QK=Q({customClass:{type:String,default:``},dangerouslyUseHTMLString:Boolean,duration:{type:Number,default:4500},icon:{type:Ny},id:{type:String,default:``},message:{type:Z([String,Object,Function]),default:``},offset:{type:Number,default:0},onClick:{type:Z(Function),default:()=>void 0},onClose:{type:Z(Function),required:!0},position:{type:String,values:[`top-right`,`top-left`,`bottom-right`,`bottom-left`],default:`top-right`},showClose:{type:Boolean,default:!0},title:{type:String,default:``},type:{type:String,values:[...ZK,``],default:``},zIndex:Number,closeIcon:{type:Ny,default:ey}}),$K={destroy:()=>!0},eq=[`id`],tq=[`textContent`],nq={key:0},rq=[`innerHTML`],iq=z({name:`ElNotification`,__name:`notification`,props:QK,emits:$K,setup(e,{expose:t}){let n=e,{ns:r,zIndex:i}=IC(`notification`),{nextZIndex:a,currentZIndex:o}=i,s=q(!1),c,l=K(()=>{let e=n.type;return e&&Iy[n.type]?r.m(e):``}),u=K(()=>n.type&&Iy[n.type]||n.icon),f=K(()=>n.position.endsWith(`right`)?`right`:`left`),p=K(()=>n.position.startsWith(`top`)?`top`:`bottom`),h=K(()=>({[p.value]:`${n.offset}px`,zIndex:n.zIndex??o.value}));function g(){n.duration>0&&({stop:c}=wf(()=>{s.value&&v()},n.duration))}function _(){c?.()}function v(){s.value=!1}function y(e){switch(Kp(e)){case X.delete:case X.backspace:_();break;case X.esc:s.value&&v();break;default:g();break}}return d(()=>{g(),a(),s.value=!0}),kf(document,`keydown`,y),t({visible:s,close:v}),(t,n)=>(N(),H(pt,{name:Y(r).b(`fade`),onBeforeLeave:e.onClose,onAfterLeave:n[1]||=e=>t.$emit(`destroy`),persisted:``},{default:V(()=>[Ge(B(`div`,{id:e.id,class:F([Y(r).b(),e.customClass,f.value]),style:m(h.value),role:`alert`,onMouseenter:_,onMouseleave:g,onClick:n[0]||=(...t)=>e.onClick&&e.onClick(...t)},[u.value?(N(),H(Y(By),{key:0,class:F([Y(r).e(`icon`),l.value])},{default:V(()=>[(N(),H(L(u.value)))]),_:1},8,[`class`])):G(`v-if`,!0),B(`div`,{class:F(Y(r).e(`group`))},[B(`h2`,{class:F(Y(r).e(`title`)),textContent:S(e.title)},null,10,tq),Ge(B(`div`,{class:F(Y(r).e(`content`)),style:m(e.title?void 0:{margin:0})},[I(t.$slots,`default`,{},()=>[e.dangerouslyUseHTMLString?(N(),W(R,{key:1},[G(` Caution here, message could've been compromised, never use user's input as message `),B(`p`,{innerHTML:e.message},null,8,rq)],2112)):(N(),W(`p`,nq,S(e.message),1))])],6),[[jt,e.message]]),e.showClose?(N(),H(Y(By),{key:0,class:F(Y(r).e(`closeBtn`)),onClick:kn(v,[`stop`])},{default:V(()=>[(N(),H(L(e.closeIcon)))]),_:1},8,[`class`])):G(`v-if`,!0)],2)],46,eq),[[jt,s.value]])]),_:3},8,[`name`,`onBeforeLeave`]))}}),aq={"top-left":[],"top-right":[],"bottom-left":[],"bottom-right":[]},oq=16,sq=1,cq=function(e={},t){if(!nf)return{close:()=>void 0};(P(e)||s(e))&&(e={message:e});let r=e.position||`top-right`,i=e.offset||0;aq[r].forEach(({vm:e})=>{i+=(e.el?.offsetHeight||0)+oq}),i+=oq;let a=`notification_${sq++}`,o=e.onClose,c={...e,offset:i,id:a,onClose:()=>{lq(a,r,o)}},l=document.body;Pd(e.appendTo)?l=e.appendTo:P(e.appendTo)&&(l=document.querySelector(e.appendTo)),Pd(l)||(Jd(`ElNotification`,`the appendTo option is not an HTMLElement. Falling back to document.body.`),l=document.body);let u=document.createElement(`div`),d=J(iq,c,n(c.message)?c.message:s(c.message)?()=>c.message:null);return d.appContext=Ad(t)?cq._context:t,d.props.onDestroy=()=>{Fn(null,u)},Fn(d,u),aq[r].push({vm:d}),l.appendChild(u.firstElementChild),{close:()=>{d.component.exposed.visible.value=!1}}};ZK.forEach(e=>{cq[e]=(t={},n)=>((P(t)||s(t))&&(t={message:t}),cq({...t,type:e},n))});function lq(e,t,n){let r=aq[t],i=r.findIndex(({vm:t})=>t.component?.props.id===e);if(i===-1)return;let{vm:a}=r[i];if(!a)return;n?.(a);let o=a.el.offsetHeight,s=t.split(`-`)[0];r.splice(i,1);let c=r.length;if(!(c<1))for(let e=i;e{e.component.exposed.visible.value=!1})}function dq(e=`top-right`){let t=aq[e][0]?.vm.component?.props?.offset||0;for(let{vm:n}of aq[e])n.component.props.offset=t,t+=(n.el?.offsetHeight||0)+oq}cq.closeAll=uq,cq.updateOffsets=dq,cq._context=null;var fq=Fv(cq,`$notify`),pq=Q({trigger:pS.trigger,triggerKeys:pS.triggerKeys,placement:ZN.placement,disabled:pS.disabled,visible:fS.visible,transition:fS.transition,popperOptions:ZN.popperOptions,tabindex:ZN.tabindex,content:fS.content,popperStyle:fS.popperStyle,popperClass:fS.popperClass,enterable:{...fS.enterable,default:!0},effect:{...fS.effect,default:`light`},teleported:fS.teleported,appendTo:fS.appendTo,title:String,width:{type:[String,Number],default:150},offset:{type:Number,default:void 0},showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0},showArrow:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},"onUpdate:visible":{type:Function}}),mq={"update:visible":e=>jd(e),"before-enter":()=>!0,"before-leave":()=>!0,"after-enter":()=>!0,"after-leave":()=>!0},hq=`onUpdate:visible`,gq=z({name:`ElPopover`,__name:`popover`,props:pq,emits:mq,setup(e,{expose:t,emit:n}){let r=e,i=n,a=K(()=>r[hq]),o=$(`popover`),s=q(),c=K(()=>Y(s)?.popperRef),l=K(()=>[{width:bp(r.width)},r.popperStyle]),u=K(()=>[o.b(),r.popperClass,{[o.m(`plain`)]:!!r.content}]),d=K(()=>r.transition===`${o.namespace.value}-fade-in-linear`),f=()=>{s.value?.hide()},p=()=>{i(`before-enter`)},m=()=>{i(`before-leave`)},h=()=>{i(`after-enter`)},g=()=>{i(`update:visible`,!1),i(`after-leave`)};return t({popperRef:c,hide:f}),(t,n)=>(N(),H(Y(ES),k({ref_key:`tooltipRef`,ref:s},t.$attrs,{trigger:e.trigger,"trigger-keys":e.triggerKeys,placement:e.placement,disabled:e.disabled,visible:e.visible,transition:e.transition,"popper-options":e.popperOptions,tabindex:e.tabindex,content:e.content,offset:e.offset,"show-after":e.showAfter,"hide-after":e.hideAfter,"auto-close":e.autoClose,"show-arrow":e.showArrow,"aria-label":e.title,effect:e.effect,enterable:e.enterable,"popper-class":u.value,"popper-style":l.value,teleported:e.teleported,"append-to":e.appendTo,persistent:e.persistent,"gpu-acceleration":d.value,"onUpdate:visible":a.value,onBeforeShow:p,onBeforeHide:m,onShow:h,onHide:g}),{content:V(()=>[e.title?(N(),W(`div`,{key:0,class:F(Y(o).e(`title`)),role:`title`},S(e.title),3)):G(`v-if`,!0),I(t.$slots,`default`,{hide:f},()=>[Ke(S(e.content),1)])]),default:V(()=>[t.$slots.reference?I(t.$slots,`reference`,{key:0}):G(`v-if`,!0)]),_:3},16,[`trigger`,`trigger-keys`,`placement`,`disabled`,`visible`,`transition`,`popper-options`,`tabindex`,`content`,`offset`,`show-after`,`hide-after`,`auto-close`,`show-arrow`,`aria-label`,`effect`,`enterable`,`popper-class`,`popper-style`,`teleported`,`append-to`,`persistent`,`gpu-acceleration`,`onUpdate:visible`]))}}),_q=(e,t)=>{let n=(t.arg||t.value)?.popperRef;n&&(n.triggerRef=e)},vq=Iv({mounted(e,t){_q(e,t)},updated(e,t){_q(e,t)}},`popover`),yq=Pv(gq,{directive:vq}),bq=`2.14.2`,xq=(e=[])=>({version:bq,install:(t,n)=>{t[Cr]||(t[Cr]=!0,e.forEach(e=>t.use(e)),n&&LC(n,t,!0))}}),Sq=[zv,Vy,oC,MV,mC,hC,bC,xC,OC,kC,xw,Sw,tD,nD,bD,xD,Yk,Vk,Xk,ok,sk,ck,tA,_A,vA,sA,QA,nj,VC,cj,lj,uj,dj,fj,dN,cN,bN,xN,VN,HN,XN,QP,$P,eF,OF,Cx,wx,By,LF,PF,zS,HF,ZF,tI,aI,kI,AI,jI,MI,II,fL,pL,yq,dS,bL,wk,Ek,Tk,TL,OL,eA,tC,LE,RE,zE,XL,$L,eR,yR,CR,hj,yj,AR,jR,VR,SB,CB,jV,XV,ZV,oE,QV,tE,lH,pH,mH,ES,jH,aU,hU,RU,_W,EW,JW,YW,aG,oG,fG,CG,HG,UG],Cq=[ZG,lK,MK,XK,fq,vq],wq=xq([...Sq,...Cq]);wq.install,wq.version;var Tq=wq,Eq=(e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n},Dq={};function Oq(e,t){let n=h(`router-view`);return N(),H(n)}var kq=Eq(Dq,[[`render`,Oq]]),Aq=typeof document<`u`;function jq(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function Mq(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&jq(e.default)}var Nq=Object.assign;function Pq(e,t){let n={};for(let r in t){let i=t[r];n[r]=Iq(i)?i.map(e):e(i)}return n}var Fq=()=>{},Iq=Array.isArray;function Lq(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var Rq=Symbol(``);function zq(e,t){return Nq(Error(),{type:e,[Rq]:!0},t)}function Bq(e,t){return e instanceof Error&&Rq in e&&(t==null||!!(e.type&t))}var Vq=Symbol(``),Hq=Symbol(``),Uq=Symbol(``),Wq=Symbol(``),Gq=Symbol(``);function Kq(){return l(Uq)}function qq(e){return l(Wq)}var Jq=/#/g,Yq=/&/g,Xq=/\//g,Zq=/=/g,Qq=/\?/g,$q=/\+/g,eJ=/%5B/g,tJ=/%5D/g,nJ=/%5E/g,rJ=/%60/g,iJ=/%7B/g,aJ=/%7C/g,oJ=/%7D/g,sJ=/%20/g;function cJ(e){return e==null?``:encodeURI(``+e).replace(aJ,`|`).replace(eJ,`[`).replace(tJ,`]`)}function lJ(e){return cJ(e).replace(iJ,`{`).replace(oJ,`}`).replace(nJ,`^`)}function uJ(e){return cJ(e).replace($q,`%2B`).replace(sJ,`+`).replace(Jq,`%23`).replace(Yq,`%26`).replace(rJ,"`").replace(iJ,`{`).replace(oJ,`}`).replace(nJ,`^`)}function dJ(e){return uJ(e).replace(Zq,`%3D`)}function fJ(e){return cJ(e).replace(Jq,`%23`).replace(Qq,`%3F`)}function pJ(e){return fJ(e).replace(Xq,`%2F`)}function mJ(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var hJ=/\/$/,gJ=e=>e.replace(hJ,``);function _J(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=TJ(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:mJ(o)}}function vJ(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function yJ(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function bJ(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&xJ(t.matched[r],n.matched[i])&&SJ(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function xJ(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function SJ(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!CJ(e[n],t[n]))return!1;return!0}function CJ(e,t){return Iq(e)?wJ(e,t):Iq(t)?wJ(t,e):(e&&e.valueOf())===(t&&t.valueOf())}function wJ(e,t){return Iq(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function TJ(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 EJ={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0};function DJ(e){if(!e)if(Aq){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),gJ(e)}var OJ=/^[^#]+#/;function kJ(e,t){return e.replace(OJ,`#`)+t}function AJ(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 jJ=()=>({left:window.scrollX,top:window.scrollY});function MJ(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=AJ(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 NJ(e,t){return(history.state?history.state.position-t:-1)+e}var PJ=new Map;function FJ(e,t){PJ.set(e,t)}function IJ(e){let t=PJ.get(e);return PJ.delete(e),t}function LJ(e){return typeof e==`string`||e&&typeof e==`object`}function RJ(e){return typeof e==`string`||typeof e==`symbol`}function zJ(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&uJ(e)):[r&&uJ(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function VJ(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=Iq(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}function HJ(){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 UJ(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(zq(4,{from:n,to:t})):e instanceof Error?c(e):LJ(e)?c(zq(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 WJ(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(jq(s)){let c=(s.__vccOpts||s)[t];c&&a.push(UJ(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=Mq(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&UJ(c,n,r,o,e,i)()}))}}return a}function GJ(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oxJ(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>xJ(e,s))||i.push(s))}return[n,r,i]}var KJ=()=>location.protocol+`//`+location.host;function qJ(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),yJ(n,``)}return yJ(n,e)+r+i}function JJ(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=qJ(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(Nq({},e.state,{scroll:jJ()}),``)}}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 YJ(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?jJ():null}}function XJ(e){let{history:t,location:n}=window,r={value:qJ(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:KJ()+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,Nq({},t.state,YJ(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Nq({},i.value,t.state,{forward:e,scroll:jJ()});a(o.current,o,!0),a(e,Nq({},YJ(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function ZJ(e){e=DJ(e);let t=XJ(e),n=JJ(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Nq({location:``,base:e,go:r,createHref:kJ.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}var QJ={type:0,value:``},$J=/[a-zA-Z0-9_]/;function eY(e){if(!e)return[[]];if(e===`/`)return[[QJ]];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 oY(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var cY={strict:!1,end:!0,sensitive:!1};function lY(e,t,n){let r=Nq(iY(eY(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function uY(e,t){let n=[],r=new Map;t=Lq(cY,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=fY(e);s.aliasOf=r&&r.record;let l=Lq(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(fY(Nq({},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=lY(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!mY(d)&&o(e.name)),vY(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:Fq}function o(e){if(RJ(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=gY(e,n);n.splice(t,0,e),e.record.name&&!mY(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 zq(1,{location:e});s=i.record.name,a=Nq(dY(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&dY(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 zq(1,{location:e,currentLocation:t});s=i.record.name,a=Nq({},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:hY(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 dY(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function fY(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:pY(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 pY(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 mY(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function hY(e){return e.reduce((e,t)=>Nq(e,t.meta),{})}function gY(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;oY(e,t[i])<0?r=i:n=i+1}let i=_Y(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function _Y(e){let t=e;for(;t=t.parent;)if(vY(t)&&oY(e,t)===0)return t}function vY({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function yY(e){let t=l(Uq),n=l(Wq),r=K(()=>{let n=Y(e.to);return t.resolve(n)}),i=K(()=>{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(xJ.bind(null,i));if(o>-1)return o;let s=wY(e[t-2]);return t>1&&wY(i)===s&&a[a.length-1].path!==s?a.findIndex(xJ.bind(null,e[t-2])):o}),a=K(()=>i.value>-1&&CY(n.params,r.value.params)),o=K(()=>i.value>-1&&i.value===n.matched.length-1&&SJ(n.params,r.value.params));function s(n={}){if(SY(n)){let n=t[Y(e.replace)?`replace`:`push`](Y(e.to)).catch(Fq);return e.viewTransition&&typeof document<`u`&&`startViewTransition`in document&&document.startViewTransition(()=>n),n}return Promise.resolve()}return{route:r,href:K(()=>r.value.href),isActive:a,isExactActive:o,navigate:s}}function bY(e){return e.length===1?e[0]:e}var xY=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:yY,setup(e,{slots:t}){let n=ve(yY(e)),{options:r}=l(Uq),i=K(()=>({[TY(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[TY(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&bY(t.default(n));return e.custom?r:Je(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function SY(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 CY(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(!Iq(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function wY(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var TY=(e,t,n)=>e??t??n,EY=z({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=l(Gq),i=K(()=>e.route||r.value),a=l(Hq,0),o=K(()=>{let e=Y(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=K(()=>i.value.matched[o.value]);Qe(Hq,K(()=>o.value+1)),Qe(Vq,s),Qe(Gq,i);let c=q();return M(()=>[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||!xJ(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 DY(n.default,{Component:l,route:r});let u=o.props[a],d=Je(l,Nq({},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 DY(n.default,{Component:d,route:r})||d}}});function DY(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var OY=EY;function kY(e){let t=uY(e.routes,e),n=e.parseQuery||zJ,r=e.stringifyQuery||BJ,i=e.history,a=HJ(),o=HJ(),s=HJ(),c=Le(EJ),l=EJ;Aq&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=Pq.bind(null,e=>``+e),d=Pq.bind(null,pJ),f=Pq.bind(null,mJ);function p(e,n){let r,i;return RJ(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=Nq({},a||c.value),typeof e==`string`){let r=_J(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Nq(r,o,{params:f(o.params),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Nq({},e,{path:_J(n,e.path,a.path).path});else{let t=Nq({},e.params);for(let e in t)t[e]??delete t[e];o=Nq({},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=vJ(r,Nq({},e,{hash:lJ(l),path:s.path})),m=i.createHref(p);return Nq({fullPath:p,hash:l,query:r===BJ?VJ(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?_J(n,e,c.value.path):Nq({},e)}function y(e,t){if(l!==e)return zq(8,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Nq(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={}),Nq({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(Nq(v(u),{state:typeof u==`object`?Nq({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&bJ(r,i,n)&&(f=zq(16,{to:d,from:i}),ne(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>Bq(e)?Bq(e,2)?e:te(e):N(e,d,i)).then(e=>{if(e){if(Bq(e,2))return C(Nq({replace:s},v(e.to),{state:typeof e.to==`object`?Nq({},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=ae.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=GJ(e,t);n=WJ(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(UJ(r,e,t))});let c=w.bind(null,e,t);return n.push(c),I(n).then(()=>{n=[];for(let r of a.list())n.push(UJ(r,e,t));return n.push(c),I(n)}).then(()=>{n=WJ(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(UJ(r,e,t))});return n.push(c),I(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(Iq(r.beforeEnter))for(let i of r.beforeEnter)n.push(UJ(i,e,t));else n.push(UJ(r.beforeEnter,e,t));return n.push(c),I(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=WJ(s,`beforeRouteEnter`,e,t,T),n.push(c),I(n))).then(()=>{n=[];for(let r of o.list())n.push(UJ(r,e,t));return n.push(c),I(n)}).catch(e=>Bq(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===EJ,l=Aq?history.state:{};n&&(r||s?i.replace(e.fullPath,Nq({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,ne(e,t,n,s),te()}let k;function A(){k||=i.listen((e,t,n)=>{if(!F.listening)return;let r=_(e),a=S(r,F.currentRoute.value);if(a){C(Nq(a,{replace:!0,force:!0}),r).catch(Fq);return}l=r;let o=c.value;Aq&&FJ(NJ(o.fullPath,n.delta),jJ()),E(r,o).catch(e=>Bq(e,12)?e:Bq(e,2)?(C(Nq(v(e.to),{force:!0}),r).then(e=>{Bq(e,20)&&!n.delta&&n.type===`pop`&&i.go(-1,!1)}).catch(Fq),Promise.reject()):(n.delta&&i.go(-n.delta,!1),N(e,r,o))).then(e=>{e||=O(r,o,!1),e&&(n.delta&&!Bq(e,8)?i.go(-n.delta,!1):n.type===`pop`&&Bq(e,20)&&i.go(-1,!1)),D(r,o,e)}).catch(Fq)})}let ee=HJ(),j=HJ(),M;function N(e,t,n){te(e);let r=j.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function P(){return M&&c.value!==EJ?Promise.resolve():new Promise((e,t)=>{ee.add([e,t])})}function te(e){return M||(M=!e,A(),ee.list().forEach(([t,n])=>e?n(e):t()),ee.reset()),e}function ne(t,n,r,i){let{scrollBehavior:a}=e;if(!Aq||!a)return Promise.resolve();let o=!r&&IJ(NJ(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return U().then(()=>a(t,n,o)).then(e=>e&&MJ(e)).catch(e=>N(e,t,n))}let re=e=>i.go(e),ie,ae=new Set,F={currentRoute:c,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:_,options:e,push:b,replace:x,go:re,back:()=>re(-1),forward:()=>re(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:j.add,isReady:P,install(e){e.component(`RouterLink`,xY),e.component(`RouterView`,OY),e.config.globalProperties.$router=F,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>Y(c)}),Aq&&!ie&&c.value===EJ&&(ie=!0,b(i.location).catch(e=>{}));let t={};for(let e in EJ)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Uq,F),e.provide(Wq,ye(t)),e.provide(Gq,c);let n=e.unmount;ae.add(e),e.unmount=function(){ae.delete(e),ae.size<1&&(l=EJ,k&&k(),k=null,c.value=EJ,ie=!1,M=!1),n()}}};function I(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return F}var AY=_r(`auth`,()=>{let e=q(localStorage.getItem(`prism_token`)||``);async function t(t){let{data:n}=await We.post(`/auth/login`,{password:t});e.value=n.token,localStorage.setItem(`prism_token`,n.token)}function n(){e.value=``,localStorage.removeItem(`prism_token`)}return{token:e,login:t,logout:n,isLoggedIn:()=>!!e.value}}),jY={class:`layout`},MY={class:`sidebar custom-scrollbar`},NY={class:`main-area`},PY={class:`topbar`},FY={class:`topbar-title`},IY={class:`main-content custom-scrollbar`},LY=z({__name:`MainLayout`,setup(e){let t=qq(),n=Kq(),i=AY(),a={"/":`监控大盘`,"/subscriptions":`订阅管理`,"/proxies":`代理节点`,"/rules":`路由规则`,"/logs":`运行日志`,"/settings":`系统设置`},o=K(()=>a[t.path]||`Prism`),s=[{path:`/`,label:`监控大盘`,icon:hy},{path:`/subscriptions`,label:`订阅管理`,icon:ly},{path:`/proxies`,label:`代理节点`,icon:ty},{path:`/rules`,label:`路由规则`,icon:uy},{path:`/logs`,label:`运行日志`,icon:ay},{path:`/settings`,label:`系统设置`,icon:Cy}];function c(){i.logout(),n.push(`/login`)}return(e,n)=>{let i=h(`el-icon`),a=h(`router-link`),l=h(`el-button`),u=h(`router-view`);return N(),W(`div`,jY,[B(`aside`,MY,[n[0]||=pe(``,2),(N(),W(R,null,r(s,e=>J(a,{key:e.path,to:e.path,class:F([`nav-item`,{active:Y(t).path===e.path}])},{default:V(()=>[J(i,{size:16},{default:V(()=>[(N(),H(L(e.icon)))]),_:2},1024),Ke(` `+S(e.label),1)]),_:2},1032,[`to`,`class`])),64))]),B(`div`,NY,[B(`header`,PY,[B(`span`,FY,S(o.value),1),J(l,{text:``,onClick:c},{default:V(()=>[...n[1]||=[Ke(`退出登录`,-1)]]),_:1})]),B(`main`,IY,[J(u)])])])}}}),RY=`modulepreload`,zY=function(e){return`/`+e},BY={},VY=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}r=o(t.map(t=>{if(t=zY(t,n),t in BY)return;BY[t]=!0;let r=t.endsWith(`.css`),i=r?`[rel="stylesheet"]`:``;if(n)for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}else if(document.querySelector(`link[href="${t}"]${i}`))return;let o=document.createElement(`link`);if(o.rel=r?`stylesheet`:RY,r||(o.as=`script`),o.crossOrigin=``,o.href=t,a&&o.setAttribute(`nonce`,a),document.head.appendChild(o),r)return new Promise((e,n)=>{o.addEventListener(`load`,e),o.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},HY=kY({history:ZJ(),routes:[{path:`/login`,name:`login`,component:()=>VY(()=>import(`./LoginView-CogloP1s.js`),__vite__mapDeps([0,1])),meta:{public:!0}},{path:`/`,component:LY,children:[{path:``,name:`dashboard`,component:()=>VY(()=>import(`./DashboardView-BVv1KNO9.js`),__vite__mapDeps([2,1,3]))},{path:`subscriptions`,name:`subscriptions`,component:()=>VY(()=>import(`./SubscriptionsView-BwdRKwvh.js`),__vite__mapDeps([4,1,3]))},{path:`proxies`,name:`proxies`,component:()=>VY(()=>import(`./ProxiesView-CGCYPjQ-.js`),__vite__mapDeps([5,1,3]))},{path:`rules`,name:`rules`,component:()=>VY(()=>import(`./RulesView-4vpiUKI8.js`),__vite__mapDeps([6,1,3]))},{path:`logs`,name:`logs`,component:()=>VY(()=>import(`./LogsView-SE35ruFF.js`),__vite__mapDeps([7,1,3]))},{path:`settings`,name:`settings`,component:()=>VY(()=>import(`./SettingsView-D_MdXCJL.js`),__vite__mapDeps([8,1,3]))}]}]});HY.beforeEach(async e=>{let t=AY();if(e.meta.public||t.isLoggedIn())return!0;try{if(!(await(await fetch(`/api/v1/auth/status`)).json()).enabled)return t.token=`disabled`,!0}catch{}return`/login`});var UY=In(kq);UY.use(rr()),UY.use(HY),UY.use(Tq),UY.mount(`#app`);export{jn as a,MK as i,Kq as n,kn as o,XK as r,AY as t}; \ No newline at end of file diff --git a/internal/api/static/assets/index-CxbpOrcM.css b/internal/api/static/assets/index-CxbpOrcM.css new file mode 100644 index 0000000..be24787 --- /dev/null +++ b/internal/api/static/assets/index-CxbpOrcM.css @@ -0,0 +1 @@ +:root{--el-color-white:#fff;--el-color-black:#000;--el-color-primary-rgb:64, 158, 255;--el-color-success-rgb:103, 194, 58;--el-color-warning-rgb:230, 162, 60;--el-color-danger-rgb:245, 108, 108;--el-color-error-rgb:245, 108, 108;--el-color-info-rgb:144, 147, 153;--el-font-size-extra-large:20px;--el-font-size-large:18px;--el-font-size-medium:16px;--el-font-size-base:14px;--el-font-size-small:13px;--el-font-size-extra-small:12px;--el-font-family:"Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif;--el-font-weight-primary:500;--el-font-line-height-primary:24px;--el-index-normal:1;--el-index-top:1000;--el-index-popper:2000;--el-border-radius-base:4px;--el-border-radius-small:2px;--el-border-radius-round:20px;--el-border-radius-circle:100%;--el-transition-duration:.3s;--el-transition-duration-fast:.2s;--el-transition-function-ease-in-out-bezier:cubic-bezier(.645, .045, .355, 1);--el-transition-function-fast-bezier:cubic-bezier(.23, 1, .32, 1);--el-transition-all:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);--el-transition-fade:opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-md-fade:transform var(--el-transition-duration) var(--el-transition-function-fast-bezier), opacity var(--el-transition-duration) var(--el-transition-function-fast-bezier);--el-transition-fade-linear:opacity var(--el-transition-duration-fast) linear;--el-transition-border:border-color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-box-shadow:box-shadow var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-transition-color:color var(--el-transition-duration-fast) var(--el-transition-function-ease-in-out-bezier);--el-component-size-large:40px;--el-component-size:32px;--el-component-size-small:24px;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--el-color-primary:#409eff;--el-color-primary-light-3:#79bbff;--el-color-primary-light-5:#a0cfff;--el-color-primary-light-7:#c6e2ff;--el-color-primary-light-8:#d9ecff;--el-color-primary-light-9:#ecf5ff;--el-color-primary-dark-2:#337ecc;--el-color-success:#67c23a;--el-color-success-light-3:#95d475;--el-color-success-light-5:#b3e19d;--el-color-success-light-7:#d1edc4;--el-color-success-light-8:#e1f3d8;--el-color-success-light-9:#f0f9eb;--el-color-success-dark-2:#529b2e;--el-color-warning:#e6a23c;--el-color-warning-light-3:#eebe77;--el-color-warning-light-5:#f3d19e;--el-color-warning-light-7:#f8e3c5;--el-color-warning-light-8:#faecd8;--el-color-warning-light-9:#fdf6ec;--el-color-warning-dark-2:#b88230;--el-color-danger:#f56c6c;--el-color-danger-light-3:#f89898;--el-color-danger-light-5:#fab6b6;--el-color-danger-light-7:#fcd3d3;--el-color-danger-light-8:#fde2e2;--el-color-danger-light-9:#fef0f0;--el-color-danger-dark-2:#c45656;--el-color-error:#f56c6c;--el-color-error-light-3:#f89898;--el-color-error-light-5:#fab6b6;--el-color-error-light-7:#fcd3d3;--el-color-error-light-8:#fde2e2;--el-color-error-light-9:#fef0f0;--el-color-error-dark-2:#c45656;--el-color-info:#909399;--el-color-info-light-3:#b1b3b8;--el-color-info-light-5:#c8c9cc;--el-color-info-light-7:#dedfe0;--el-color-info-light-8:#e9e9eb;--el-color-info-light-9:#f4f4f5;--el-color-info-dark-2:#73767a;--el-bg-color:#fff;--el-bg-color-page:#f2f3f5;--el-bg-color-overlay:#fff;--el-text-color-primary:#303133;--el-text-color-regular:#606266;--el-text-color-secondary:#909399;--el-text-color-placeholder:#a8abb2;--el-text-color-disabled:#c0c4cc;--el-border-color:#dcdfe6;--el-border-color-light:#e4e7ed;--el-border-color-lighter:#ebeef5;--el-border-color-extra-light:#f2f6fc;--el-border-color-dark:#d4d7de;--el-border-color-darker:#cdd0d6;--el-fill-color:#f0f2f5;--el-fill-color-light:#f5f7fa;--el-fill-color-lighter:#fafafa;--el-fill-color-extra-light:#fafcff;--el-fill-color-dark:#ebedf0;--el-fill-color-darker:#e6e8eb;--el-fill-color-blank:#fff;--el-box-shadow:0px 12px 32px 4px #0000000a, 0px 8px 20px #00000014;--el-box-shadow-light:0px 0px 12px #0000001f;--el-box-shadow-lighter:0px 0px 6px #0000001f;--el-box-shadow-dark:0px 16px 48px 16px #00000014, 0px 12px 32px #0000001f, 0px 8px 16px -8px #00000029;--el-disabled-bg-color:var(--el-fill-color-light);--el-disabled-text-color:var(--el-text-color-placeholder);--el-disabled-border-color:var(--el-border-color-light);--el-overlay-color:#000c;--el-overlay-color-light:#000000b3;--el-overlay-color-lighter:#00000080;--el-mask-color:#ffffffe6;--el-mask-color-extra-light:#ffffff4d;--el-border-width:1px;--el-border-style:solid;--el-border-color-hover:var(--el-text-color-disabled);--el-border:var(--el-border-width) var(--el-border-style) var(--el-border-color);--el-svg-monochrome-grey:var(--el-border-color)}.fade-in-linear-enter-active,.fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.fade-in-linear-enter-from,.fade-in-linear-leave-to{opacity:0}.el-fade-in-linear-enter-active,.el-fade-in-linear-leave-active{transition:var(--el-transition-fade-linear)}.el-fade-in-linear-enter-from,.el-fade-in-linear-leave-to{opacity:0}.el-fade-in-enter-active,.el-fade-in-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-fade-in-enter-from,.el-fade-in-leave-active{opacity:0}.el-zoom-in-center-enter-active,.el-zoom-in-center-leave-active{transition:all var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-zoom-in-center-enter-from,.el-zoom-in-center-leave-active{opacity:0;transform:scaleX(0)}.el-zoom-in-top-enter-active,.el-zoom-in-top-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:top;transform:scaleY(1)}.el-zoom-in-top-enter-active[data-popper-placement^=top],.el-zoom-in-top-leave-active[data-popper-placement^=top]{transform-origin:bottom}.el-zoom-in-top-enter-from,.el-zoom-in-top-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-bottom-enter-active,.el-zoom-in-bottom-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:bottom;transform:scaleY(1)}.el-zoom-in-bottom-enter-from,.el-zoom-in-bottom-leave-active{opacity:0;transform:scaleY(0)}.el-zoom-in-left-enter-active,.el-zoom-in-left-leave-active{opacity:1;transition:var(--el-transition-md-fade);transform-origin:0 0;transform:scale(1)}.el-zoom-in-left-enter-from,.el-zoom-in-left-leave-active{opacity:0;transform:scale(.45)}.collapse-transition{transition:var(--el-transition-duration) height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.el-collapse-transition-leave-active,.el-collapse-transition-enter-active{transition:var(--el-transition-duration) max-height ease-in-out, var(--el-transition-duration) padding-top ease-in-out, var(--el-transition-duration) padding-bottom ease-in-out}.horizontal-collapse-transition{transition:var(--el-transition-duration) width ease-in-out, var(--el-transition-duration) padding-left ease-in-out, var(--el-transition-duration) padding-right ease-in-out}.el-list-enter-active,.el-list-leave-active{transition:all 1s}.el-list-enter-from,.el-list-leave-to{opacity:0;transform:translateY(-30px)}.el-list-leave-active{position:absolute!important}.el-opacity-transition{transition:opacity var(--el-transition-duration) cubic-bezier(.55, 0, .1, 1)}.el-icon--right{margin-left:5px}.el-icon--left{margin-right:5px}@keyframes rotating{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.el-icon{--color:inherit;fill:currentColor;width:1em;height:1em;color:var(--color);line-height:1em;font-size:inherit;justify-content:center;align-items:center;display:inline-flex;position:relative}.el-icon.is-loading{animation:2s linear infinite rotating}.el-icon svg{width:1em;height:1em}.el-affix--fixed{position:fixed}.el-alert{--el-alert-padding:8px 16px;--el-alert-border-radius-base:var(--el-border-radius-base);--el-alert-title-font-size:14px;--el-alert-title-with-description-font-size:16px;--el-alert-description-font-size:14px;--el-alert-close-font-size:16px;--el-alert-close-customed-font-size:14px;--el-alert-icon-size:16px;--el-alert-icon-large-size:28px;width:100%;padding:var(--el-alert-padding);box-sizing:border-box;border-radius:var(--el-alert-border-radius-base);background-color:var(--el-color-white);opacity:1;transition:opacity var(--el-transition-duration-fast);align-items:center;margin:0;display:flex;position:relative;overflow:hidden}.el-alert.is-light .el-alert__close-btn{color:var(--el-text-color-placeholder)}.el-alert.is-dark .el-alert__close-btn,.el-alert.is-dark .el-alert__description{color:var(--el-color-white)}.el-alert.is-center{justify-content:center}.el-alert--primary{--el-alert-bg-color:var(--el-color-primary-light-9)}.el-alert--primary.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-primary)}.el-alert--primary.is-light .el-alert__description{color:var(--el-color-primary)}.el-alert--primary.is-dark{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-alert--success{--el-alert-bg-color:var(--el-color-success-light-9)}.el-alert--success.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-success)}.el-alert--success.is-light .el-alert__description{color:var(--el-color-success)}.el-alert--success.is-dark{background-color:var(--el-color-success);color:var(--el-color-white)}.el-alert--info{--el-alert-bg-color:var(--el-color-info-light-9)}.el-alert--info.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-info)}.el-alert--info.is-light .el-alert__description{color:var(--el-color-info)}.el-alert--info.is-dark{background-color:var(--el-color-info);color:var(--el-color-white)}.el-alert--warning{--el-alert-bg-color:var(--el-color-warning-light-9)}.el-alert--warning.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-warning)}.el-alert--warning.is-light .el-alert__description{color:var(--el-color-warning)}.el-alert--warning.is-dark{background-color:var(--el-color-warning);color:var(--el-color-white)}.el-alert--error{--el-alert-bg-color:var(--el-color-error-light-9)}.el-alert--error.is-light{background-color:var(--el-alert-bg-color);color:var(--el-color-error)}.el-alert--error.is-light .el-alert__description{color:var(--el-color-error)}.el-alert--error.is-dark{background-color:var(--el-color-error);color:var(--el-color-white)}.el-alert__content{flex-direction:column;gap:4px;display:flex}.el-alert .el-alert__icon{font-size:var(--el-alert-icon-size);width:var(--el-alert-icon-size);margin-right:8px}.el-alert .el-alert__icon.is-big{font-size:var(--el-alert-icon-large-size);width:var(--el-alert-icon-large-size);margin-right:12px}.el-alert__title{font-size:var(--el-alert-title-font-size);line-height:24px}.el-alert__title.with-description{font-size:var(--el-alert-title-with-description-font-size)}.el-alert .el-alert__description{font-size:var(--el-alert-description-font-size);margin:0}.el-alert .el-alert__close-btn{font-size:var(--el-alert-close-font-size);opacity:1;cursor:pointer;position:absolute;top:12px;right:16px}.el-alert .el-alert__close-btn.is-customed{font-style:normal;font-size:var(--el-alert-close-customed-font-size);line-height:24px;top:8px}.el-alert-fade-enter-from,.el-alert-fade-leave-active{opacity:0}.el-aside{box-sizing:border-box;width:var(--el-aside-width,300px);flex-shrink:0;overflow:auto}.el-autocomplete{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;width:var(--el-input-width);display:inline-block;position:relative}.el-autocomplete__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-autocomplete__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-autocomplete__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-autocomplete__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-autocomplete-suggestion{border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-autocomplete-suggestion__header{border-bottom:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__footer{border-top:1px solid var(--el-border-color-lighter);padding:10px}.el-autocomplete-suggestion__wrap{box-sizing:border-box;max-height:280px;padding:10px 0}.el-autocomplete-suggestion__list{margin:0;padding:0}.el-autocomplete-suggestion li{cursor:pointer;color:var(--el-text-color-regular);line-height:34px;font-size:var(--el-font-size-base);text-align:left;text-overflow:ellipsis;white-space:nowrap;margin:0;padding:0 20px;list-style:none;overflow:hidden}.el-autocomplete-suggestion li:hover,.el-autocomplete-suggestion li.highlighted{background-color:var(--el-fill-color-light)}.el-autocomplete-suggestion li.divider{border-top:1px solid var(--el-color-black);margin-top:6px}.el-autocomplete-suggestion li.divider:last-child{margin-bottom:-6px}.el-autocomplete-suggestion.is-loading li{cursor:default;height:100px;color:var(--el-text-color-secondary);justify-content:center;align-items:center;font-size:20px;display:flex}.el-autocomplete-suggestion.is-loading li:hover{background-color:var(--el-bg-color-overlay)}.el-avatar{--el-avatar-text-color:var(--el-color-white);--el-avatar-bg-color:var(--el-text-color-disabled);--el-avatar-text-size:14px;--el-avatar-icon-size:18px;--el-avatar-border-radius:var(--el-border-radius-base);--el-avatar-size-large:56px;--el-avatar-size:40px;--el-avatar-size-small:24px;box-sizing:border-box;text-align:center;color:var(--el-avatar-text-color);background:var(--el-avatar-bg-color);width:var(--el-avatar-size);height:var(--el-avatar-size);font-size:var(--el-avatar-text-size);outline:none;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.el-avatar>img{width:100%;height:100%;display:block}.el-avatar--circle{border-radius:50%}.el-avatar--square{border-radius:var(--el-avatar-border-radius)}.el-avatar--icon{font-size:var(--el-avatar-icon-size)}.el-avatar--small{--el-avatar-size:24px}.el-avatar--large{--el-avatar-size:56px}.el-avatar-group{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px;display:inline-flex}.el-avatar-group .el-avatar{border:1px solid var(--el-border-color-extra-light)}.el-avatar-group .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-item-gap)}.el-avatar-group__collapse-avatars{--el-avatar-group-item-gap:-8px;--el-avatar-group-collapse-item-gap:4px}.el-avatar-group__collapse-avatars .el-avatar:not(:first-child){margin-left:var(--el-avatar-group-collapse-item-gap)}.el-backtop{--el-backtop-bg-color:var(--el-bg-color-overlay);--el-backtop-text-color:var(--el-color-primary);--el-backtop-hover-bg-color:var(--el-border-color-extra-light);background-color:var(--el-backtop-bg-color);width:40px;height:40px;color:var(--el-backtop-text-color);box-shadow:var(--el-box-shadow-lighter);cursor:pointer;z-index:5;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:fixed}.el-backtop:hover{background-color:var(--el-backtop-hover-bg-color)}.el-backtop__icon{font-size:20px}.el-badge{--el-badge-bg-color:var(--el-color-danger);--el-badge-radius:10px;--el-badge-font-size:12px;--el-badge-padding:6px;--el-badge-size:18px;vertical-align:middle;width:fit-content;display:inline-block;position:relative}.el-badge__content{background-color:var(--el-badge-bg-color);border-radius:var(--el-badge-radius);color:var(--el-color-white);font-size:var(--el-badge-font-size);height:var(--el-badge-size);padding:0 var(--el-badge-padding);white-space:nowrap;border:1px solid var(--el-bg-color);justify-content:center;align-items:center;display:inline-flex}.el-badge__content.is-fixed{top:0;right:calc(1px + var(--el-badge-size) / 2);z-index:var(--el-index-normal);position:absolute;transform:translateY(-50%)translate(100%)}.el-badge__content.is-fixed.is-dot{right:5px}.el-badge__content.is-dot{border-radius:50%;width:8px;height:8px;padding:0;right:0}.el-badge__content.is-hide-zero{display:none}.el-badge__content--primary{background-color:var(--el-color-primary)}.el-badge__content--success{background-color:var(--el-color-success)}.el-badge__content--warning{background-color:var(--el-color-warning)}.el-badge__content--info{background-color:var(--el-color-info)}.el-badge__content--danger{background-color:var(--el-color-danger)}.el-breadcrumb__separator{color:var(--el-text-color-placeholder);margin:0 9px;font-weight:700}.el-breadcrumb__separator.el-icon{margin:0 6px;font-weight:400}.el-breadcrumb__separator.el-icon svg{vertical-align:middle}.el-breadcrumb__item{float:left;align-items:center;display:inline-flex}.el-breadcrumb__inner{color:var(--el-text-color-regular)}.el-breadcrumb__inner.is-link,.el-breadcrumb__inner a{transition:var(--el-transition-color);color:var(--el-text-color-primary);font-weight:700;text-decoration:none}.el-breadcrumb__inner.is-link:hover,.el-breadcrumb__inner a:hover{color:var(--el-color-primary);cursor:pointer}.el-breadcrumb__item:last-child .el-breadcrumb__inner,.el-breadcrumb__item:last-child .el-breadcrumb__inner:hover,.el-breadcrumb__item:last-child .el-breadcrumb__inner a,.el-breadcrumb__item:last-child .el-breadcrumb__inner a:hover{color:var(--el-text-color-regular);cursor:text;font-weight:400}.el-breadcrumb__item:last-child .el-breadcrumb__separator{display:none}.el-breadcrumb{font-size:14px;line-height:1}.el-breadcrumb:before,.el-breadcrumb:after{content:"";display:table}.el-breadcrumb:after{clear:both}.el-button-group>.el-button+.el-button{margin-left:0}.el-button-group>.el-button:first-child:last-child{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base);border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base)}.el-button-group>.el-button:first-child:last-child.is-round{border-radius:var(--el-border-radius-round)}.el-button-group>.el-button:first-child:last-child.is-circle{border-radius:50%}.el-button-group>.el-button:not(:first-child):not(:last-child){border-radius:0}.el-button-group>.el-button:hover,.el-button-group>.el-button:focus,.el-button-group>.el-button:active,.el-button-group>.el-button.is-active{z-index:1}.el-button-group--horizontal{vertical-align:middle;display:inline-block}.el-button-group--horizontal:before,.el-button-group--horizontal:after{content:"";display:table}.el-button-group--horizontal:after{clear:both}.el-button-group--horizontal>.el-button{float:left;position:relative}.el-button-group--horizontal>.el-button:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.el-button-group--horizontal>.el-button:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--horizontal>.el-button:not(:last-child){margin-right:-1px}.el-button-group--horizontal .el-button--primary:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--primary:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--success:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--warning:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--danger:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:first-child{border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:last-child{border-left-color:var(--el-button-divide-border-color)}.el-button-group--horizontal .el-button--info:not(:first-child):not(:last-child){border-left-color:var(--el-button-divide-border-color);border-right-color:var(--el-button-divide-border-color)}.el-button-group--horizontal>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-bottom-left-radius:0}.el-button-group--vertical{flex-direction:column;align-items:stretch;display:inline-flex}.el-button-group--vertical>.el-button{margin-top:-1px}.el-button-group--vertical>.el-button:first-child{border-bottom-right-radius:0;border-bottom-left-radius:0}.el-button-group--vertical>.el-button:last-child{border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical>.el-dropdown{margin-top:-1px}.el-button-group--vertical>.el-dropdown>.el-button{border-left-color:var(--el-button-divide-border-color);border-top-left-radius:0;border-top-right-radius:0}.el-button-group--vertical .el-button--primary:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--primary:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--success:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--warning:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--danger:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:first-child{border-bottom-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:last-child{border-top-color:var(--el-button-divide-border-color)}.el-button-group--vertical .el-button--info:not(:first-child):not(:last-child){border-top-color:var(--el-button-divide-border-color);border-bottom-color:var(--el-button-divide-border-color)}.el-button{--el-button-font-weight:var(--el-font-weight-primary);--el-button-border-color:var(--el-border-color);--el-button-bg-color:var(--el-fill-color-blank);--el-button-text-color:var(--el-text-color-regular);--el-button-disabled-text-color:var(--el-disabled-text-color);--el-button-disabled-bg-color:var(--el-fill-color-blank);--el-button-disabled-border-color:var(--el-border-color-light);--el-button-divide-border-color:#ffffff80;--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-7);--el-button-active-text-color:var(--el-button-hover-text-color);--el-button-active-border-color:var(--el-color-primary);--el-button-active-bg-color:var(--el-button-hover-bg-color);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-hover-link-text-color:var(--el-text-color-secondary);--el-button-active-color:var(--el-text-color-primary);white-space:nowrap;cursor:pointer;height:32px;color:var(--el-button-text-color);text-align:center;box-sizing:border-box;line-height:1;font-weight:var(--el-button-font-weight);-webkit-user-select:none;user-select:none;vertical-align:middle;-webkit-appearance:none;background-color:var(--el-button-bg-color);border:var(--el-border);border-color:var(--el-button-border-color);outline:none;justify-content:center;align-items:center;transition:all .1s;display:inline-flex}.el-button:hover{color:var(--el-button-hover-text-color);border-color:var(--el-button-hover-border-color);background-color:var(--el-button-hover-bg-color);outline:none}.el-button:active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button:focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button>span{align-items:center;display:inline-flex}.el-button+.el-button{margin-left:12px}.el-button{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:8px 15px}.el-button.is-round{padding:8px 15px}.el-button::-moz-focus-inner{border:0}.el-button [class*=el-icon]+span{margin-left:6px}.el-button [class*=el-icon] svg{vertical-align:bottom}.el-button.is-plain{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary)}.el-button.is-active{color:var(--el-button-active-text-color);border-color:var(--el-button-active-border-color);background-color:var(--el-button-active-bg-color);outline:none}.el-button.is-disabled,.el-button.is-disabled:hover{color:var(--el-button-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color);border-color:var(--el-button-disabled-border-color)}.el-button.is-loading{pointer-events:none;position:relative}.el-button.is-loading:before{z-index:1;pointer-events:none;content:"";border-radius:inherit;background-color:var(--el-mask-color-extra-light);position:absolute;inset:-1px}.el-button.is-round{border-radius:var(--el-border-radius-round)}.el-button.is-dashed{--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-fill-color-blank);--el-button-hover-border-color:var(--el-color-primary);border-style:dashed}.el-button.is-circle{border-radius:50%;width:32px;padding:8px}.el-button.is-text{color:var(--el-button-text-color);background-color:#0000;border:0 solid #0000}.el-button.is-text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important}.el-button.is-text:not(.is-disabled):hover{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled):focus-visible{outline:2px solid var(--el-button-outline-color);outline-offset:1px;transition:outline-offset,outline}.el-button.is-text:not(.is-disabled):active{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg{background-color:var(--el-fill-color-light)}.el-button.is-text:not(.is-disabled).is-has-bg:hover{background-color:var(--el-fill-color)}.el-button.is-text:not(.is-disabled).is-has-bg:active{background-color:var(--el-fill-color-dark)}.el-button__text--expand{letter-spacing:.3em;margin-right:-.3em}.el-button.is-link{color:var(--el-button-text-color);background:0 0;border-color:#0000;height:auto;padding:2px}.el-button.is-link:hover{color:var(--el-button-hover-link-text-color)}.el-button.is-link.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button.is-link:not(.is-disabled):hover{background-color:#0000;border-color:#0000}.el-button.is-link:not(.is-disabled):active{color:var(--el-button-active-color);background-color:#0000;border-color:#0000}.el-button--text{color:var(--el-color-primary);background:0 0;border-color:#0000;padding-left:0;padding-right:0}.el-button--text.is-disabled{color:var(--el-button-disabled-text-color);background-color:#0000!important;border-color:#0000!important}.el-button--text:not(.is-disabled):hover{color:var(--el-color-primary-light-3);background-color:#0000;border-color:#0000}.el-button--text:not(.is-disabled):active{color:var(--el-color-primary-dark-2);background-color:#0000;border-color:#0000}.el-button__link--expand{letter-spacing:.3em;margin-right:-.3em}.el-button--primary{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-primary);--el-button-border-color:var(--el-color-primary);--el-button-outline-color:var(--el-color-primary-light-5);--el-button-active-color:var(--el-color-primary-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-primary-light-5);--el-button-hover-bg-color:var(--el-color-primary-light-3);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-bg-color:var(--el-color-primary-dark-2);--el-button-active-border-color:var(--el-color-primary-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-primary-light-5);--el-button-disabled-border-color:var(--el-color-primary-light-5)}.el-button--primary.is-plain,.el-button--primary.is-text,.el-button--primary.is-link{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-primary);--el-button-hover-border-color:var(--el-color-primary);--el-button-active-text-color:var(--el-color-white)}.el-button--primary.is-plain.is-disabled,.el-button--primary.is-plain.is-disabled:hover,.el-button--primary.is-plain.is-disabled:focus,.el-button--primary.is-plain.is-disabled:active,.el-button--primary.is-text.is-disabled,.el-button--primary.is-text.is-disabled:hover,.el-button--primary.is-text.is-disabled:focus,.el-button--primary.is-text.is-disabled:active,.el-button--primary.is-link.is-disabled,.el-button--primary.is-link.is-disabled:hover,.el-button--primary.is-link.is-disabled:focus,.el-button--primary.is-link.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--primary.is-dashed{--el-button-text-color:var(--el-color-primary);--el-button-bg-color:var(--el-color-primary-light-9);--el-button-border-color:var(--el-color-primary-light-5);--el-button-hover-text-color:var(--el-color-primary);--el-button-hover-bg-color:var(--el-color-primary-light-9);--el-button-hover-border-color:var(--el-color-primary-light-3);--el-button-active-text-color:var(--el-color-primary-dark-2);--el-button-active-bg-color:var(--el-color-primary-light-9);--el-button-active-border-color:var(--el-color-primary-dark-2)}.el-button--primary.is-dashed.is-disabled,.el-button--primary.is-dashed.is-disabled:hover,.el-button--primary.is-dashed.is-disabled:focus,.el-button--primary.is-dashed.is-disabled:active{color:var(--el-color-primary-light-5);background-color:var(--el-color-primary-light-9);border-color:var(--el-color-primary-light-8)}.el-button--success{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-success);--el-button-border-color:var(--el-color-success);--el-button-outline-color:var(--el-color-success-light-5);--el-button-active-color:var(--el-color-success-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-success-light-5);--el-button-hover-bg-color:var(--el-color-success-light-3);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-bg-color:var(--el-color-success-dark-2);--el-button-active-border-color:var(--el-color-success-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-success-light-5);--el-button-disabled-border-color:var(--el-color-success-light-5)}.el-button--success.is-plain,.el-button--success.is-text,.el-button--success.is-link{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-success);--el-button-hover-border-color:var(--el-color-success);--el-button-active-text-color:var(--el-color-white)}.el-button--success.is-plain.is-disabled,.el-button--success.is-plain.is-disabled:hover,.el-button--success.is-plain.is-disabled:focus,.el-button--success.is-plain.is-disabled:active,.el-button--success.is-text.is-disabled,.el-button--success.is-text.is-disabled:hover,.el-button--success.is-text.is-disabled:focus,.el-button--success.is-text.is-disabled:active,.el-button--success.is-link.is-disabled,.el-button--success.is-link.is-disabled:hover,.el-button--success.is-link.is-disabled:focus,.el-button--success.is-link.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--success.is-dashed{--el-button-text-color:var(--el-color-success);--el-button-bg-color:var(--el-color-success-light-9);--el-button-border-color:var(--el-color-success-light-5);--el-button-hover-text-color:var(--el-color-success);--el-button-hover-bg-color:var(--el-color-success-light-9);--el-button-hover-border-color:var(--el-color-success-light-3);--el-button-active-text-color:var(--el-color-success-dark-2);--el-button-active-bg-color:var(--el-color-success-light-9);--el-button-active-border-color:var(--el-color-success-dark-2)}.el-button--success.is-dashed.is-disabled,.el-button--success.is-dashed.is-disabled:hover,.el-button--success.is-dashed.is-disabled:focus,.el-button--success.is-dashed.is-disabled:active{color:var(--el-color-success-light-5);background-color:var(--el-color-success-light-9);border-color:var(--el-color-success-light-8)}.el-button--warning{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-warning);--el-button-border-color:var(--el-color-warning);--el-button-outline-color:var(--el-color-warning-light-5);--el-button-active-color:var(--el-color-warning-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-warning-light-5);--el-button-hover-bg-color:var(--el-color-warning-light-3);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-bg-color:var(--el-color-warning-dark-2);--el-button-active-border-color:var(--el-color-warning-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-warning-light-5);--el-button-disabled-border-color:var(--el-color-warning-light-5)}.el-button--warning.is-plain,.el-button--warning.is-text,.el-button--warning.is-link{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-warning);--el-button-hover-border-color:var(--el-color-warning);--el-button-active-text-color:var(--el-color-white)}.el-button--warning.is-plain.is-disabled,.el-button--warning.is-plain.is-disabled:hover,.el-button--warning.is-plain.is-disabled:focus,.el-button--warning.is-plain.is-disabled:active,.el-button--warning.is-text.is-disabled,.el-button--warning.is-text.is-disabled:hover,.el-button--warning.is-text.is-disabled:focus,.el-button--warning.is-text.is-disabled:active,.el-button--warning.is-link.is-disabled,.el-button--warning.is-link.is-disabled:hover,.el-button--warning.is-link.is-disabled:focus,.el-button--warning.is-link.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--warning.is-dashed{--el-button-text-color:var(--el-color-warning);--el-button-bg-color:var(--el-color-warning-light-9);--el-button-border-color:var(--el-color-warning-light-5);--el-button-hover-text-color:var(--el-color-warning);--el-button-hover-bg-color:var(--el-color-warning-light-9);--el-button-hover-border-color:var(--el-color-warning-light-3);--el-button-active-text-color:var(--el-color-warning-dark-2);--el-button-active-bg-color:var(--el-color-warning-light-9);--el-button-active-border-color:var(--el-color-warning-dark-2)}.el-button--warning.is-dashed.is-disabled,.el-button--warning.is-dashed.is-disabled:hover,.el-button--warning.is-dashed.is-disabled:focus,.el-button--warning.is-dashed.is-disabled:active{color:var(--el-color-warning-light-5);background-color:var(--el-color-warning-light-9);border-color:var(--el-color-warning-light-8)}.el-button--danger{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-danger);--el-button-border-color:var(--el-color-danger);--el-button-outline-color:var(--el-color-danger-light-5);--el-button-active-color:var(--el-color-danger-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-danger-light-5);--el-button-hover-bg-color:var(--el-color-danger-light-3);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-bg-color:var(--el-color-danger-dark-2);--el-button-active-border-color:var(--el-color-danger-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-danger-light-5);--el-button-disabled-border-color:var(--el-color-danger-light-5)}.el-button--danger.is-plain,.el-button--danger.is-text,.el-button--danger.is-link{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-danger);--el-button-hover-border-color:var(--el-color-danger);--el-button-active-text-color:var(--el-color-white)}.el-button--danger.is-plain.is-disabled,.el-button--danger.is-plain.is-disabled:hover,.el-button--danger.is-plain.is-disabled:focus,.el-button--danger.is-plain.is-disabled:active,.el-button--danger.is-text.is-disabled,.el-button--danger.is-text.is-disabled:hover,.el-button--danger.is-text.is-disabled:focus,.el-button--danger.is-text.is-disabled:active,.el-button--danger.is-link.is-disabled,.el-button--danger.is-link.is-disabled:hover,.el-button--danger.is-link.is-disabled:focus,.el-button--danger.is-link.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--danger.is-dashed{--el-button-text-color:var(--el-color-danger);--el-button-bg-color:var(--el-color-danger-light-9);--el-button-border-color:var(--el-color-danger-light-5);--el-button-hover-text-color:var(--el-color-danger);--el-button-hover-bg-color:var(--el-color-danger-light-9);--el-button-hover-border-color:var(--el-color-danger-light-3);--el-button-active-text-color:var(--el-color-danger-dark-2);--el-button-active-bg-color:var(--el-color-danger-light-9);--el-button-active-border-color:var(--el-color-danger-dark-2)}.el-button--danger.is-dashed.is-disabled,.el-button--danger.is-dashed.is-disabled:hover,.el-button--danger.is-dashed.is-disabled:focus,.el-button--danger.is-dashed.is-disabled:active{color:var(--el-color-danger-light-5);background-color:var(--el-color-danger-light-9);border-color:var(--el-color-danger-light-8)}.el-button--info{--el-button-text-color:var(--el-color-white);--el-button-bg-color:var(--el-color-info);--el-button-border-color:var(--el-color-info);--el-button-outline-color:var(--el-color-info-light-5);--el-button-active-color:var(--el-color-info-dark-2);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-link-text-color:var(--el-color-info-light-5);--el-button-hover-bg-color:var(--el-color-info-light-3);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-bg-color:var(--el-color-info-dark-2);--el-button-active-border-color:var(--el-color-info-dark-2);--el-button-disabled-text-color:var(--el-color-white);--el-button-disabled-bg-color:var(--el-color-info-light-5);--el-button-disabled-border-color:var(--el-color-info-light-5)}.el-button--info.is-plain,.el-button--info.is-text,.el-button--info.is-link{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-white);--el-button-hover-bg-color:var(--el-color-info);--el-button-hover-border-color:var(--el-color-info);--el-button-active-text-color:var(--el-color-white)}.el-button--info.is-plain.is-disabled,.el-button--info.is-plain.is-disabled:hover,.el-button--info.is-plain.is-disabled:focus,.el-button--info.is-plain.is-disabled:active,.el-button--info.is-text.is-disabled,.el-button--info.is-text.is-disabled:hover,.el-button--info.is-text.is-disabled:focus,.el-button--info.is-text.is-disabled:active,.el-button--info.is-link.is-disabled,.el-button--info.is-link.is-disabled:hover,.el-button--info.is-link.is-disabled:focus,.el-button--info.is-link.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--info.is-dashed{--el-button-text-color:var(--el-color-info);--el-button-bg-color:var(--el-color-info-light-9);--el-button-border-color:var(--el-color-info-light-5);--el-button-hover-text-color:var(--el-color-info);--el-button-hover-bg-color:var(--el-color-info-light-9);--el-button-hover-border-color:var(--el-color-info-light-3);--el-button-active-text-color:var(--el-color-info-dark-2);--el-button-active-bg-color:var(--el-color-info-light-9);--el-button-active-border-color:var(--el-color-info-dark-2)}.el-button--info.is-dashed.is-disabled,.el-button--info.is-dashed.is-disabled:hover,.el-button--info.is-dashed.is-disabled:focus,.el-button--info.is-dashed.is-disabled:active{color:var(--el-color-info-light-5);background-color:var(--el-color-info-light-9);border-color:var(--el-color-info-light-8)}.el-button--large{--el-button-size:40px;height:var(--el-button-size)}.el-button--large [class*=el-icon]+span{margin-left:8px}.el-button--large{font-size:var(--el-font-size-base);border-radius:var(--el-border-radius-base);padding:12px 19px}.el-button--large.is-round{padding:12px 19px}.el-button--large.is-circle{width:var(--el-button-size);padding:12px}.el-button--small{--el-button-size:24px;height:var(--el-button-size)}.el-button--small [class*=el-icon]+span{margin-left:4px}.el-button--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:5px 11px;font-size:12px}.el-button--small.is-round{padding:5px 11px}.el-button--small.is-circle{width:var(--el-button-size);padding:5px}.el-calendar{--el-calendar-border:var(--el-table-border,1px solid var(--el-border-color-lighter));--el-calendar-header-border-bottom:var(--el-calendar-border);--el-calendar-selected-bg-color:var(--el-color-primary-light-9);--el-calendar-cell-width:85px;background-color:var(--el-fill-color-blank)}.el-calendar__header{border-bottom:var(--el-calendar-header-border-bottom);justify-content:space-between;padding:12px 20px;display:flex}.el-calendar__title{color:var(--el-text-color);align-self:center}.el-calendar__body{padding:12px 20px 35px}.el-calendar__select-controller .el-select{margin-right:8px}.el-calendar__select-controller .el-calendar-select__year{width:120px}.el-calendar__select-controller .el-calendar-select__month{width:60px}.el-calendar-table{table-layout:fixed;width:100%}.el-calendar-table thead th{color:var(--el-text-color-regular);padding:12px 0;font-weight:400}.el-calendar-table:not(.is-range) td.prev,.el-calendar-table:not(.is-range) td.next{color:var(--el-text-color-placeholder)}.el-calendar-table td{border-bottom:var(--el-calendar-border);border-right:var(--el-calendar-border);vertical-align:top;transition:background-color var(--el-transition-duration-fast) ease}.el-calendar-table td.is-selected{background-color:var(--el-calendar-selected-bg-color)}.el-calendar-table td.is-today{color:var(--el-color-primary)}.el-calendar-table tr:first-child td{border-top:var(--el-calendar-border)}.el-calendar-table tr td:first-child{border-left:var(--el-calendar-border)}.el-calendar-table tr.el-calendar-table__row--hide-border td{border-top:none}.el-calendar-table .el-calendar-day{box-sizing:border-box;height:var(--el-calendar-cell-width);padding:8px}.el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.el-card{--el-card-border-color:var(--el-border-color-light);--el-card-border-radius:4px;--el-card-padding:20px;--el-card-bg-color:var(--el-fill-color-blank);border-radius:var(--el-card-border-radius);border:1px solid var(--el-card-border-color);background-color:var(--el-card-bg-color);color:var(--el-text-color-primary);transition:var(--el-transition-duration);flex-direction:column;display:flex;overflow:hidden}.el-card.is-always-shadow,.el-card.is-hover-shadow:hover,.el-card.is-hover-shadow:focus{box-shadow:var(--el-box-shadow-light)}.el-card__header{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-bottom:1px solid var(--el-card-border-color);box-sizing:border-box}.el-card__body{padding:var(--el-card-padding);flex-grow:1;overflow:auto}.el-card__footer{padding:calc(var(--el-card-padding) - 2px) var(--el-card-padding);border-top:1px solid var(--el-card-border-color);box-sizing:border-box}.el-carousel__item{width:100%;height:100%;z-index:calc(var(--el-index-normal) - 1);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-carousel__item.is-active{z-index:calc(var(--el-index-normal) - 1)}.el-carousel__item.is-animating{transition:transform .4s ease-in-out}.el-carousel__item--card{width:50%;transition:transform .4s ease-in-out}.el-carousel__item--card.is-in-stage{cursor:pointer;z-index:var(--el-index-normal)}.el-carousel__item--card.is-in-stage:hover .el-carousel__mask,.el-carousel__item--card.is-in-stage.is-hover .el-carousel__mask{opacity:.12}.el-carousel__item--card.is-active{z-index:calc(var(--el-index-normal) + 1)}.el-carousel__item--card-vertical{width:100%;height:50%}.el-carousel__mask{background-color:var(--el-color-white);opacity:.24;width:100%;height:100%;transition:var(--el-transition-duration-fast);position:absolute;top:0;left:0}.el-carousel{--el-carousel-arrow-font-size:12px;--el-carousel-arrow-size:36px;--el-carousel-arrow-background:#1f2d3d1c;--el-carousel-arrow-hover-background:#1f2d3d3b;--el-carousel-indicator-width:30px;--el-carousel-indicator-height:2px;--el-carousel-indicator-padding-horizontal:4px;--el-carousel-indicator-padding-vertical:12px;--el-carousel-indicator-out-color:var(--el-border-color-hover);position:relative}.el-carousel--horizontal,.el-carousel--vertical{overflow:hidden}.el-carousel.is-vertical-outside{flex-direction:row;align-items:center;display:flex}.el-carousel.is-vertical-outside .el-carousel__container{flex:1}.el-carousel__container{height:300px;position:relative}.el-carousel__arrow{height:var(--el-carousel-arrow-size);width:var(--el-carousel-arrow-size);cursor:pointer;transition:var(--el-transition-duration);background-color:var(--el-carousel-arrow-background);color:#fff;z-index:10;text-align:center;font-size:var(--el-carousel-arrow-font-size);border:none;border-radius:50%;outline:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.el-carousel__arrow--left{left:16px}.el-carousel__arrow--right{right:16px}.el-carousel__arrow:hover{background-color:var(--el-carousel-arrow-hover-background)}.el-carousel__arrow i{cursor:pointer}.el-carousel__indicators{z-index:calc(var(--el-index-normal) + 1);margin:0;padding:0;list-style:none;position:absolute}.el-carousel__indicators--horizontal{bottom:0;left:50%;transform:translate(-50%)}.el-carousel__indicators--vertical{top:50%;right:0;transform:translateY(-50%)}.el-carousel__indicators--outside{text-align:center;position:static;transform:none}.el-carousel__indicators--outside .el-carousel__indicator:hover button{opacity:.64}.el-carousel__indicators--outside button{background-color:var(--el-carousel-indicator-out-color);opacity:.24}.el-carousel__indicators--right{right:0}.el-carousel__indicators--labels .el-carousel__button{color:#000;padding:2px 18px;font-size:12px}.el-carousel__indicators--labels .el-carousel__indicator{padding:6px 4px}.el-carousel__indicator{cursor:pointer;background-color:#0000}.el-carousel__indicator:hover button{opacity:.72}.el-carousel__indicator--horizontal{padding:var(--el-carousel-indicator-padding-vertical) var(--el-carousel-indicator-padding-horizontal);display:inline-block}.el-carousel__indicator--vertical{padding:var(--el-carousel-indicator-padding-horizontal) var(--el-carousel-indicator-padding-vertical)}.el-carousel__indicator--vertical .el-carousel__button{width:var(--el-carousel-indicator-height);height:calc(var(--el-carousel-indicator-width) / 2)}.el-carousel__indicator.is-active button{opacity:1}.el-carousel__button{opacity:.48;width:var(--el-carousel-indicator-width);height:var(--el-carousel-indicator-height);cursor:pointer;transition:var(--el-transition-duration);background-color:#fff;border:none;outline:none;margin:0;padding:0;display:block}.el-carousel__indicators--labels .el-carousel__button{width:auto;height:auto}.carousel-arrow-left-enter-from,.carousel-arrow-left-leave-active{opacity:0;transform:translateY(-50%)translate(-10px)}.carousel-arrow-right-enter-from,.carousel-arrow-right-leave-active{opacity:0;transform:translateY(-50%)translate(10px)}.el-transitioning{filter:url(#elCarouselHorizontal)}.el-transitioning-vertical{filter:url(#elCarouselVertical)}.el-cascader-panel{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);border-radius:var(--el-cascader-menu-radius);width:fit-content;font-size:var(--el-cascader-menu-font-size);display:flex}.el-cascader-panel.is-bordered{border:var(--el-cascader-menu-border);border-radius:var(--el-cascader-menu-radius)}.el-cascader-menu{box-sizing:border-box;min-width:180px;color:var(--el-cascader-menu-text-color);border-right:var(--el-cascader-menu-border)}.el-cascader-menu:last-child{border-right:none}.el-cascader-menu:last-child .el-cascader-node{padding-right:20px}.el-cascader-menu__wrap.el-scrollbar__wrap{height:204px}.el-cascader-menu__list{box-sizing:border-box;min-height:100%;margin:0;padding:6px 0;list-style:none;position:relative}.el-cascader-menu__list.el-vl__window{margin:6px 0;padding:0}.el-cascader-menu__list.el-vl__window ul{margin:0;padding:0}.el-cascader-menu__hover-zone{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.el-cascader-menu__empty-text{color:var(--el-cascader-color-empty);align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-cascader-menu__empty-text .is-loading{margin-right:2px}.el-cascader-node{box-sizing:border-box;outline:none;align-items:center;height:34px;padding:0 30px 0 20px;line-height:34px;display:flex;position:relative}.el-cascader-node.is-selectable.in-active-path{color:var(--el-cascader-menu-text-color)}.el-cascader-node.in-active-path,.el-cascader-node.is-selectable.in-checked-path,.el-cascader-node.is-active{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader-node:not(.is-disabled){cursor:pointer}.el-cascader-node:not(.is-disabled):hover,.el-cascader-node:not(.is-disabled):focus{background:var(--el-cascader-node-background-hover)}.el-cascader-node.is-disabled{color:var(--el-cascader-node-color-disabled);cursor:not-allowed}.el-cascader-node__prefix{position:absolute;left:10px}.el-cascader-node__postfix{position:absolute;right:10px}.el-cascader-node__label{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;padding:0 8px;overflow:hidden}.el-cascader-node>.el-checkbox,.el-cascader-node>.el-radio{margin-right:0}.el-cascader-node>.el-radio .el-radio__label{padding-left:0}.el-cascader{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);vertical-align:middle;font-size:var(--el-font-size-base);outline:none;line-height:32px;display:inline-block;position:relative}.el-cascader:not(.is-disabled):hover .el-input__wrapper{cursor:pointer;box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-cascader .el-input{cursor:pointer;display:flex}.el-cascader .el-input .el-input__inner{text-overflow:ellipsis}.el-cascader .el-input .el-input__inner:read-only{cursor:pointer}.el-cascader .el-input .el-input__inner:disabled{cursor:not-allowed}.el-cascader .el-input .el-input__suffix-inner .el-icon svg{vertical-align:middle}.el-cascader .el-input .icon-arrow-down{transition:transform var(--el-transition-duration);font-size:14px}.el-cascader .el-input .icon-arrow-down.is-reverse{transform:rotate(180deg)}.el-cascader .el-input .icon-circle-close:hover{color:var(--el-input-clear-hover-color,var(--el-text-color-secondary))}.el-cascader .el-input.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-cascader--large{font-size:14px;line-height:40px}.el-cascader--large .el-cascader__tags{gap:6px;padding:8px}.el-cascader--large .el-cascader__search-input{height:24px;margin-left:7px}.el-cascader--small{font-size:12px;line-height:24px}.el-cascader--small .el-cascader__tags{gap:4px;padding:2px}.el-cascader--small .el-cascader__search-input{height:20px;margin-left:5px}.el-cascader.is-disabled .el-cascader__label{z-index:calc(var(--el-index-normal) + 1);color:var(--el-disabled-text-color)}.el-cascader__dropdown{--el-cascader-menu-text-color:var(--el-text-color-regular);--el-cascader-menu-selected-text-color:var(--el-color-primary);--el-cascader-menu-fill:var(--el-bg-color-overlay);--el-cascader-menu-font-size:var(--el-font-size-base);--el-cascader-menu-radius:var(--el-border-radius-base);--el-cascader-menu-border:solid 1px var(--el-border-color-light);--el-cascader-menu-shadow:var(--el-box-shadow-light);--el-cascader-node-background-hover:var(--el-fill-color-light);--el-cascader-node-color-disabled:var(--el-text-color-placeholder);--el-cascader-color-empty:var(--el-text-color-placeholder);--el-cascader-tag-background:var(--el-fill-color);font-size:var(--el-cascader-menu-font-size);border-radius:var(--el-cascader-menu-radius)}.el-cascader__dropdown.el-popper{background:var(--el-cascader-menu-fill);border:var(--el-cascader-menu-border);box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__dropdown.el-popper .el-popper__arrow:before{border:var(--el-cascader-menu-border)}.el-cascader__dropdown.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-cascader__dropdown.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-cascader__dropdown.el-popper{box-shadow:var(--el-cascader-menu-shadow)}.el-cascader__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-cascader__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-cascader__tags{text-align:left;box-sizing:border-box;flex-wrap:wrap;gap:6px;padding:4px;line-height:normal;display:flex;position:absolute;top:50%;left:0;right:30px;transform:translateY(-50%)}.el-cascader__tags .el-tag{text-overflow:ellipsis;background:var(--el-cascader-tag-background);align-items:center;max-width:100%;display:inline-flex}.el-cascader__tags .el-tag.el-tag--dark,.el-cascader__tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__tags .el-tag+input{margin-left:0}.el-cascader__tags.is-validate{right:55px}.el-cascader__collapse-tags{white-space:normal;z-index:var(--el-index-normal)}.el-cascader__collapse-tags .el-tag{text-overflow:ellipsis;background:var(--el-fill-color);align-items:center;max-width:100%;display:inline-flex}.el-cascader__collapse-tags .el-tag.el-tag--dark,.el-cascader__collapse-tags .el-tag.el-tag--plain{background-color:var(--el-tag-bg-color)}.el-cascader__collapse-tags .el-tag:not(.is-hit){border-color:#0000}.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--dark,.el-cascader__collapse-tags .el-tag:not(.is-hit).el-tag--plain{border-color:var(--el-tag-border-color)}.el-cascader__collapse-tags .el-tag>span{text-overflow:ellipsis;flex:1;line-height:normal;overflow:hidden}.el-cascader__collapse-tags .el-tag .el-icon-close{background-color:var(--el-text-color-placeholder);color:var(--el-color-white);flex:none}.el-cascader__collapse-tags .el-tag .el-icon-close:hover{background-color:var(--el-text-color-secondary)}.el-cascader__collapse-tags .el-tag+input{margin-left:0}.el-cascader__collapse-tags .el-tag{margin:2px 0}.el-cascader__suggestion-panel{border-radius:var(--el-cascader-menu-radius)}.el-cascader__suggestion-wrap{max-height:204px}.el-cascader__suggestion-list{font-size:var(--el-font-size-base);color:var(--el-cascader-menu-text-color);text-align:center;margin:0;padding:6px 0;list-style:none}.el-cascader__suggestion-list.el-vl__window{margin:6px 0;padding:0}.el-cascader__suggestion-list.el-vl__window ul{margin:0;padding:0}.el-cascader__suggestion-item{text-align:left;cursor:pointer;box-sizing:border-box;outline:none;justify-content:space-between;align-items:center;height:34px;padding:0 15px;display:flex}.el-cascader__suggestion-item:hover,.el-cascader__suggestion-item:focus{background:var(--el-cascader-node-background-hover)}.el-cascader__suggestion-item.is-checked{color:var(--el-cascader-menu-selected-text-color);font-weight:700}.el-cascader__suggestion-item>:not(.el-icon){white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.el-cascader__suggestion-item>span{margin-right:10px}.el-cascader__suggestion-item .el-icon{flex-shrink:0}.el-cascader__empty-text{color:var(--el-cascader-color-empty);margin:10px 0}.el-cascader__search-input{min-width:60px;height:24px;color:var(--el-cascader-menu-text-color);box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;margin-left:7px;padding:0}.el-cascader__search-input::placeholder{color:#0000}.el-check-tag{background-color:var(--el-color-info-light-9);border-radius:var(--el-border-radius-base);color:var(--el-color-info);cursor:pointer;font-size:var(--el-font-size-base);line-height:var(--el-font-size-base);transition:var(--el-transition-all);padding:7px 15px;font-weight:700;display:inline-block}.el-check-tag:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--primary.is-checked{background-color:var(--el-color-primary-light-8);color:var(--el-color-primary)}.el-check-tag.el-check-tag--primary.is-checked:hover{background-color:var(--el-color-primary-light-7)}.el-check-tag.el-check-tag--primary.is-checked.is-disabled{background-color:var(--el-color-primary-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-checked.is-disabled:hover{background-color:var(--el-color-primary-light-8)}.el-check-tag.el-check-tag--primary.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--primary.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-check-tag.el-check-tag--success.is-checked{background-color:var(--el-color-success-light-8);color:var(--el-color-success)}.el-check-tag.el-check-tag--success.is-checked:hover{background-color:var(--el-color-success-light-7)}.el-check-tag.el-check-tag--success.is-checked.is-disabled{background-color:var(--el-color-success-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-checked.is-disabled:hover{background-color:var(--el-color-success-light-8)}.el-check-tag.el-check-tag--success.is-disabled{background-color:var(--el-color-success-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--success.is-disabled:hover{background-color:var(--el-color-success-light-9)}.el-check-tag.el-check-tag--warning.is-checked{background-color:var(--el-color-warning-light-8);color:var(--el-color-warning)}.el-check-tag.el-check-tag--warning.is-checked:hover{background-color:var(--el-color-warning-light-7)}.el-check-tag.el-check-tag--warning.is-checked.is-disabled{background-color:var(--el-color-warning-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-checked.is-disabled:hover{background-color:var(--el-color-warning-light-8)}.el-check-tag.el-check-tag--warning.is-disabled{background-color:var(--el-color-warning-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--warning.is-disabled:hover{background-color:var(--el-color-warning-light-9)}.el-check-tag.el-check-tag--danger.is-checked{background-color:var(--el-color-danger-light-8);color:var(--el-color-danger)}.el-check-tag.el-check-tag--danger.is-checked:hover{background-color:var(--el-color-danger-light-7)}.el-check-tag.el-check-tag--danger.is-checked.is-disabled{background-color:var(--el-color-danger-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-checked.is-disabled:hover{background-color:var(--el-color-danger-light-8)}.el-check-tag.el-check-tag--danger.is-disabled{background-color:var(--el-color-danger-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--danger.is-disabled:hover{background-color:var(--el-color-danger-light-9)}.el-check-tag.el-check-tag--error.is-checked{background-color:var(--el-color-error-light-8);color:var(--el-color-error)}.el-check-tag.el-check-tag--error.is-checked:hover{background-color:var(--el-color-error-light-7)}.el-check-tag.el-check-tag--error.is-checked.is-disabled{background-color:var(--el-color-error-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-checked.is-disabled:hover{background-color:var(--el-color-error-light-8)}.el-check-tag.el-check-tag--error.is-disabled{background-color:var(--el-color-error-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--error.is-disabled:hover{background-color:var(--el-color-error-light-9)}.el-check-tag.el-check-tag--info.is-checked{background-color:var(--el-color-info-light-8);color:var(--el-color-info)}.el-check-tag.el-check-tag--info.is-checked:hover{background-color:var(--el-color-info-light-7)}.el-check-tag.el-check-tag--info.is-checked.is-disabled{background-color:var(--el-color-info-light-8);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-checked.is-disabled:hover{background-color:var(--el-color-info-light-8)}.el-check-tag.el-check-tag--info.is-disabled{background-color:var(--el-color-info-light-9);color:var(--el-disabled-text-color);cursor:not-allowed}.el-check-tag.el-check-tag--info.is-disabled:hover{background-color:var(--el-color-info-light-9)}.el-checkbox-button{--el-checkbox-button-checked-bg-color:var(--el-color-primary);--el-checkbox-button-checked-text-color:var(--el-color-white);--el-checkbox-button-checked-border-color:var(--el-color-primary);--el-checkbox-button-disabled-checked-fill:var(--el-border-color-extra-light);display:inline-block;position:relative}.el-checkbox-button__inner{line-height:1;font-weight:var(--el-checkbox-font-weight);white-space:nowrap;vertical-align:middle;cursor:pointer;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-checkbox-button__inner.is-round{padding:8px 15px}.el-checkbox-button__inner:hover{color:var(--el-color-primary)}.el-checkbox-button__inner [class*=el-icon-]{line-height:.9}.el-checkbox-button__inner [class*=el-icon-]+span{margin-left:5px}.el-checkbox-button__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute}.el-checkbox-button.is-checked .el-checkbox-button__inner{color:var(--el-checkbox-button-checked-text-color);background-color:var(--el-checkbox-button-checked-bg-color);border-color:var(--el-checkbox-button-checked-border-color);box-shadow:-1px 0 0 0 var(--el-color-primary-light-7)}.el-checkbox-button.is-checked:first-child .el-checkbox-button__inner{border-left-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button.is-disabled .el-checkbox-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-checkbox-button.is-disabled:first-child .el-checkbox-button__inner{border-left-color:var(--el-button-disabled-border-color,var(--el-border-color-light))}.el-checkbox-button.is-disabled.is-checked .el-checkbox-button__inner{background-color:var(--el-checkbox-button-disabled-checked-fill)}.el-checkbox-button:first-child .el-checkbox-button__inner{border-top-left-radius:var(--el-border-radius-base);border-bottom-left-radius:var(--el-border-radius-base);box-shadow:none!important}.el-checkbox-button.is-focus .el-checkbox-button__inner{border-color:var(--el-checkbox-button-checked-border-color)}.el-checkbox-button:last-child .el-checkbox-button__inner{border-top-right-radius:var(--el-border-radius-base);border-bottom-right-radius:var(--el-border-radius-base)}.el-checkbox-button--large .el-checkbox-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-checkbox-button--large .el-checkbox-button__inner.is-round{padding:12px 19px}.el-checkbox-button--small .el-checkbox-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-checkbox-button--small .el-checkbox-button__inner.is-round{padding:5px 11px}.el-checkbox-group{font-size:0;line-height:0}.el-checkbox{--el-checkbox-font-size:14px;--el-checkbox-font-weight:var(--el-font-weight-primary);--el-checkbox-text-color:var(--el-text-color-regular);--el-checkbox-input-height:14px;--el-checkbox-input-width:14px;--el-checkbox-border-radius:var(--el-border-radius-small);--el-checkbox-bg-color:var(--el-fill-color-blank);--el-checkbox-input-border:var(--el-border);--el-checkbox-disabled-border-color:var(--el-border-color);--el-checkbox-disabled-input-fill:var(--el-fill-color-light);--el-checkbox-disabled-icon-color:var(--el-text-color-placeholder);--el-checkbox-disabled-checked-input-fill:var(--el-border-color-extra-light);--el-checkbox-disabled-checked-input-border-color:var(--el-border-color);--el-checkbox-disabled-checked-icon-color:var(--el-text-color-placeholder);--el-checkbox-checked-text-color:var(--el-color-primary);--el-checkbox-checked-input-border-color:var(--el-color-primary);--el-checkbox-checked-bg-color:var(--el-color-primary);--el-checkbox-checked-icon-color:var(--el-color-white);--el-checkbox-input-border-color-hover:var(--el-color-primary);color:var(--el-checkbox-text-color);font-weight:var(--el-checkbox-font-weight);font-size:var(--el-font-size-base);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;height:var(--el-checkbox-height,32px);align-items:center;margin-right:30px;display:inline-flex;position:relative}.el-checkbox.is-disabled{cursor:not-allowed}.el-checkbox.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-checkbox.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-checkbox.is-bordered.is-disabled{border-color:var(--el-border-color-lighter)}.el-checkbox.is-bordered.el-checkbox--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__label{font-size:var(--el-font-size-base)}.el-checkbox.is-bordered.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.is-bordered.el-checkbox--small{border-radius:calc(var(--el-border-radius-base) - 1px);padding:0 11px 0 7px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.is-bordered.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox input:focus-visible+.el-checkbox__inner{outline:2px solid var(--el-checkbox-input-border-color-hover);outline-offset:1px;border-radius:var(--el-checkbox-border-radius)}.el-checkbox__input{white-space:nowrap;cursor:pointer;outline:none;display:inline-flex;position:relative}.el-checkbox__input.is-disabled .el-checkbox__inner{background-color:var(--el-checkbox-disabled-input-fill);border-color:var(--el-checkbox-disabled-border-color);cursor:not-allowed}.el-checkbox__input.is-disabled .el-checkbox__inner:after{cursor:not-allowed;border-color:var(--el-checkbox-disabled-icon-color);will-change:transform}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-disabled-checked-input-fill);border-color:var(--el-checkbox-disabled-checked-input-border-color)}.el-checkbox__input.is-disabled.is-indeterminate .el-checkbox__inner:before{background-color:var(--el-checkbox-disabled-checked-icon-color);border-color:var(--el-checkbox-disabled-checked-icon-color)}.el-checkbox__input.is-disabled+span.el-checkbox__label{color:var(--el-disabled-text-color);cursor:not-allowed}.el-checkbox__input.is-checked .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-checked .el-checkbox__inner:after{border-color:var(--el-checkbox-checked-icon-color);transform:translate(-45%,-60%)rotate(45deg)scaleY(1)}.el-checkbox__input.is-checked+.el-checkbox__label{color:var(--el-checkbox-checked-text-color)}.el-checkbox__input.is-focus:not(.is-checked) .el-checkbox__original:not(:focus-visible){border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__input.is-indeterminate .el-checkbox__inner{background-color:var(--el-checkbox-checked-bg-color);border-color:var(--el-checkbox-checked-input-border-color)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:before{content:"";background-color:var(--el-checkbox-checked-icon-color);height:2px;display:block;position:absolute;top:5px;left:0;right:0;transform:scale(.5)}.el-checkbox__input.is-indeterminate .el-checkbox__inner:after{display:none}.el-checkbox__inner{border:var(--el-checkbox-input-border);border-radius:var(--el-checkbox-border-radius);box-sizing:border-box;width:var(--el-checkbox-input-width);height:var(--el-checkbox-input-height);background-color:var(--el-checkbox-bg-color);z-index:var(--el-index-normal);transition:border-color .25s cubic-bezier(.71,-.46,.29,1.46),background-color .25s cubic-bezier(.71,-.46,.29,1.46),outline .25s cubic-bezier(.71,-.46,.29,1.46);display:inline-block;position:relative}.el-checkbox__inner:hover{border-color:var(--el-checkbox-input-border-color-hover)}.el-checkbox__inner:after{box-sizing:content-box;content:"";transform-origin:50%;border:1px solid #0000;border-top:0;border-left:0;width:3px;height:7px;transition:transform .15s ease-in 50ms;position:absolute;top:50%;left:50%;transform:translate(-45%,-60%)rotate(45deg)scaleY(0)}.el-checkbox__original{opacity:0;z-index:-1;outline:none;width:0;height:0;margin:0;position:absolute}.el-checkbox__label{line-height:1;font-size:var(--el-checkbox-font-size);padding-left:8px;display:inline-block}.el-checkbox.el-checkbox--large{height:40px}.el-checkbox.el-checkbox--large .el-checkbox__label{font-size:14px}.el-checkbox.el-checkbox--large .el-checkbox__inner{width:14px;height:14px}.el-checkbox.el-checkbox--small{height:24px}.el-checkbox.el-checkbox--small .el-checkbox__label{font-size:12px}.el-checkbox.el-checkbox--small .el-checkbox__inner{width:12px;height:12px}.el-checkbox.el-checkbox--small .el-checkbox__input.is-indeterminate .el-checkbox__inner:before{top:4px}.el-checkbox.el-checkbox--small .el-checkbox__inner:after{width:2px;height:6px}.el-checkbox:last-of-type{margin-right:0}[class*=el-col-]{box-sizing:border-box}[class*=el-col-].is-guttered{min-height:1px;display:block}.el-col-0{flex:0 0;max-width:0%;display:none}.el-col-0.is-guttered{display:none}.el-col-offset-0{margin-left:0%}.el-col-pull-0{position:relative;right:0%}.el-col-push-0{position:relative;left:0%}.el-col-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-1.is-guttered{display:block}.el-col-offset-1{margin-left:4.16667%}.el-col-pull-1{position:relative;right:4.16667%}.el-col-push-1{position:relative;left:4.16667%}.el-col-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-2.is-guttered{display:block}.el-col-offset-2{margin-left:8.33333%}.el-col-pull-2{position:relative;right:8.33333%}.el-col-push-2{position:relative;left:8.33333%}.el-col-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-3.is-guttered{display:block}.el-col-offset-3{margin-left:12.5%}.el-col-pull-3{position:relative;right:12.5%}.el-col-push-3{position:relative;left:12.5%}.el-col-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-4.is-guttered{display:block}.el-col-offset-4{margin-left:16.6667%}.el-col-pull-4{position:relative;right:16.6667%}.el-col-push-4{position:relative;left:16.6667%}.el-col-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-5.is-guttered{display:block}.el-col-offset-5{margin-left:20.8333%}.el-col-pull-5{position:relative;right:20.8333%}.el-col-push-5{position:relative;left:20.8333%}.el-col-6{flex:0 0 25%;max-width:25%;display:block}.el-col-6.is-guttered{display:block}.el-col-offset-6{margin-left:25%}.el-col-pull-6{position:relative;right:25%}.el-col-push-6{position:relative;left:25%}.el-col-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-7.is-guttered{display:block}.el-col-offset-7{margin-left:29.1667%}.el-col-pull-7{position:relative;right:29.1667%}.el-col-push-7{position:relative;left:29.1667%}.el-col-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-8.is-guttered{display:block}.el-col-offset-8{margin-left:33.3333%}.el-col-pull-8{position:relative;right:33.3333%}.el-col-push-8{position:relative;left:33.3333%}.el-col-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-9.is-guttered{display:block}.el-col-offset-9{margin-left:37.5%}.el-col-pull-9{position:relative;right:37.5%}.el-col-push-9{position:relative;left:37.5%}.el-col-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-10.is-guttered{display:block}.el-col-offset-10{margin-left:41.6667%}.el-col-pull-10{position:relative;right:41.6667%}.el-col-push-10{position:relative;left:41.6667%}.el-col-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-11.is-guttered{display:block}.el-col-offset-11{margin-left:45.8333%}.el-col-pull-11{position:relative;right:45.8333%}.el-col-push-11{position:relative;left:45.8333%}.el-col-12{flex:0 0 50%;max-width:50%;display:block}.el-col-12.is-guttered{display:block}.el-col-offset-12{margin-left:50%}.el-col-pull-12{position:relative;right:50%}.el-col-push-12{position:relative;left:50%}.el-col-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-13.is-guttered{display:block}.el-col-offset-13{margin-left:54.1667%}.el-col-pull-13{position:relative;right:54.1667%}.el-col-push-13{position:relative;left:54.1667%}.el-col-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-14.is-guttered{display:block}.el-col-offset-14{margin-left:58.3333%}.el-col-pull-14{position:relative;right:58.3333%}.el-col-push-14{position:relative;left:58.3333%}.el-col-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-15.is-guttered{display:block}.el-col-offset-15{margin-left:62.5%}.el-col-pull-15{position:relative;right:62.5%}.el-col-push-15{position:relative;left:62.5%}.el-col-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-16.is-guttered{display:block}.el-col-offset-16{margin-left:66.6667%}.el-col-pull-16{position:relative;right:66.6667%}.el-col-push-16{position:relative;left:66.6667%}.el-col-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-17.is-guttered{display:block}.el-col-offset-17{margin-left:70.8333%}.el-col-pull-17{position:relative;right:70.8333%}.el-col-push-17{position:relative;left:70.8333%}.el-col-18{flex:0 0 75%;max-width:75%;display:block}.el-col-18.is-guttered{display:block}.el-col-offset-18{margin-left:75%}.el-col-pull-18{position:relative;right:75%}.el-col-push-18{position:relative;left:75%}.el-col-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-19.is-guttered{display:block}.el-col-offset-19{margin-left:79.1667%}.el-col-pull-19{position:relative;right:79.1667%}.el-col-push-19{position:relative;left:79.1667%}.el-col-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-20.is-guttered{display:block}.el-col-offset-20{margin-left:83.3333%}.el-col-pull-20{position:relative;right:83.3333%}.el-col-push-20{position:relative;left:83.3333%}.el-col-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-21.is-guttered{display:block}.el-col-offset-21{margin-left:87.5%}.el-col-pull-21{position:relative;right:87.5%}.el-col-push-21{position:relative;left:87.5%}.el-col-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-22.is-guttered{display:block}.el-col-offset-22{margin-left:91.6667%}.el-col-pull-22{position:relative;right:91.6667%}.el-col-push-22{position:relative;left:91.6667%}.el-col-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-23.is-guttered{display:block}.el-col-offset-23{margin-left:95.8333%}.el-col-pull-23{position:relative;right:95.8333%}.el-col-push-23{position:relative;left:95.8333%}.el-col-24{flex:0 0 100%;max-width:100%;display:block}.el-col-24.is-guttered{display:block}.el-col-offset-24{margin-left:100%}.el-col-pull-24{position:relative;right:100%}.el-col-push-24{position:relative;left:100%}@media only screen and (width<=767px){.el-col-xs-0{flex:0 0;max-width:0%;display:none}.el-col-xs-0.is-guttered{display:none}.el-col-xs-offset-0{margin-left:0%}.el-col-xs-pull-0{position:relative;right:0%}.el-col-xs-push-0{position:relative;left:0%}.el-col-xs-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xs-1.is-guttered{display:block}.el-col-xs-offset-1{margin-left:4.16667%}.el-col-xs-pull-1{position:relative;right:4.16667%}.el-col-xs-push-1{position:relative;left:4.16667%}.el-col-xs-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xs-2.is-guttered{display:block}.el-col-xs-offset-2{margin-left:8.33333%}.el-col-xs-pull-2{position:relative;right:8.33333%}.el-col-xs-push-2{position:relative;left:8.33333%}.el-col-xs-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xs-3.is-guttered{display:block}.el-col-xs-offset-3{margin-left:12.5%}.el-col-xs-pull-3{position:relative;right:12.5%}.el-col-xs-push-3{position:relative;left:12.5%}.el-col-xs-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xs-4.is-guttered{display:block}.el-col-xs-offset-4{margin-left:16.6667%}.el-col-xs-pull-4{position:relative;right:16.6667%}.el-col-xs-push-4{position:relative;left:16.6667%}.el-col-xs-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xs-5.is-guttered{display:block}.el-col-xs-offset-5{margin-left:20.8333%}.el-col-xs-pull-5{position:relative;right:20.8333%}.el-col-xs-push-5{position:relative;left:20.8333%}.el-col-xs-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xs-6.is-guttered{display:block}.el-col-xs-offset-6{margin-left:25%}.el-col-xs-pull-6{position:relative;right:25%}.el-col-xs-push-6{position:relative;left:25%}.el-col-xs-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xs-7.is-guttered{display:block}.el-col-xs-offset-7{margin-left:29.1667%}.el-col-xs-pull-7{position:relative;right:29.1667%}.el-col-xs-push-7{position:relative;left:29.1667%}.el-col-xs-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xs-8.is-guttered{display:block}.el-col-xs-offset-8{margin-left:33.3333%}.el-col-xs-pull-8{position:relative;right:33.3333%}.el-col-xs-push-8{position:relative;left:33.3333%}.el-col-xs-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xs-9.is-guttered{display:block}.el-col-xs-offset-9{margin-left:37.5%}.el-col-xs-pull-9{position:relative;right:37.5%}.el-col-xs-push-9{position:relative;left:37.5%}.el-col-xs-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xs-10.is-guttered{display:block}.el-col-xs-offset-10{margin-left:41.6667%}.el-col-xs-pull-10{position:relative;right:41.6667%}.el-col-xs-push-10{position:relative;left:41.6667%}.el-col-xs-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xs-11.is-guttered{display:block}.el-col-xs-offset-11{margin-left:45.8333%}.el-col-xs-pull-11{position:relative;right:45.8333%}.el-col-xs-push-11{position:relative;left:45.8333%}.el-col-xs-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xs-12.is-guttered{display:block}.el-col-xs-offset-12{margin-left:50%}.el-col-xs-pull-12{position:relative;right:50%}.el-col-xs-push-12{position:relative;left:50%}.el-col-xs-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xs-13.is-guttered{display:block}.el-col-xs-offset-13{margin-left:54.1667%}.el-col-xs-pull-13{position:relative;right:54.1667%}.el-col-xs-push-13{position:relative;left:54.1667%}.el-col-xs-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xs-14.is-guttered{display:block}.el-col-xs-offset-14{margin-left:58.3333%}.el-col-xs-pull-14{position:relative;right:58.3333%}.el-col-xs-push-14{position:relative;left:58.3333%}.el-col-xs-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xs-15.is-guttered{display:block}.el-col-xs-offset-15{margin-left:62.5%}.el-col-xs-pull-15{position:relative;right:62.5%}.el-col-xs-push-15{position:relative;left:62.5%}.el-col-xs-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xs-16.is-guttered{display:block}.el-col-xs-offset-16{margin-left:66.6667%}.el-col-xs-pull-16{position:relative;right:66.6667%}.el-col-xs-push-16{position:relative;left:66.6667%}.el-col-xs-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xs-17.is-guttered{display:block}.el-col-xs-offset-17{margin-left:70.8333%}.el-col-xs-pull-17{position:relative;right:70.8333%}.el-col-xs-push-17{position:relative;left:70.8333%}.el-col-xs-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xs-18.is-guttered{display:block}.el-col-xs-offset-18{margin-left:75%}.el-col-xs-pull-18{position:relative;right:75%}.el-col-xs-push-18{position:relative;left:75%}.el-col-xs-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xs-19.is-guttered{display:block}.el-col-xs-offset-19{margin-left:79.1667%}.el-col-xs-pull-19{position:relative;right:79.1667%}.el-col-xs-push-19{position:relative;left:79.1667%}.el-col-xs-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xs-20.is-guttered{display:block}.el-col-xs-offset-20{margin-left:83.3333%}.el-col-xs-pull-20{position:relative;right:83.3333%}.el-col-xs-push-20{position:relative;left:83.3333%}.el-col-xs-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xs-21.is-guttered{display:block}.el-col-xs-offset-21{margin-left:87.5%}.el-col-xs-pull-21{position:relative;right:87.5%}.el-col-xs-push-21{position:relative;left:87.5%}.el-col-xs-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xs-22.is-guttered{display:block}.el-col-xs-offset-22{margin-left:91.6667%}.el-col-xs-pull-22{position:relative;right:91.6667%}.el-col-xs-push-22{position:relative;left:91.6667%}.el-col-xs-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xs-23.is-guttered{display:block}.el-col-xs-offset-23{margin-left:95.8333%}.el-col-xs-pull-23{position:relative;right:95.8333%}.el-col-xs-push-23{position:relative;left:95.8333%}.el-col-xs-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xs-24.is-guttered{display:block}.el-col-xs-offset-24{margin-left:100%}.el-col-xs-pull-24{position:relative;right:100%}.el-col-xs-push-24{position:relative;left:100%}}@media only screen and (width>=768px){.el-col-sm-0{flex:0 0;max-width:0%;display:none}.el-col-sm-0.is-guttered{display:none}.el-col-sm-offset-0{margin-left:0%}.el-col-sm-pull-0{position:relative;right:0%}.el-col-sm-push-0{position:relative;left:0%}.el-col-sm-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-sm-1.is-guttered{display:block}.el-col-sm-offset-1{margin-left:4.16667%}.el-col-sm-pull-1{position:relative;right:4.16667%}.el-col-sm-push-1{position:relative;left:4.16667%}.el-col-sm-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-sm-2.is-guttered{display:block}.el-col-sm-offset-2{margin-left:8.33333%}.el-col-sm-pull-2{position:relative;right:8.33333%}.el-col-sm-push-2{position:relative;left:8.33333%}.el-col-sm-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-sm-3.is-guttered{display:block}.el-col-sm-offset-3{margin-left:12.5%}.el-col-sm-pull-3{position:relative;right:12.5%}.el-col-sm-push-3{position:relative;left:12.5%}.el-col-sm-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-sm-4.is-guttered{display:block}.el-col-sm-offset-4{margin-left:16.6667%}.el-col-sm-pull-4{position:relative;right:16.6667%}.el-col-sm-push-4{position:relative;left:16.6667%}.el-col-sm-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-sm-5.is-guttered{display:block}.el-col-sm-offset-5{margin-left:20.8333%}.el-col-sm-pull-5{position:relative;right:20.8333%}.el-col-sm-push-5{position:relative;left:20.8333%}.el-col-sm-6{flex:0 0 25%;max-width:25%;display:block}.el-col-sm-6.is-guttered{display:block}.el-col-sm-offset-6{margin-left:25%}.el-col-sm-pull-6{position:relative;right:25%}.el-col-sm-push-6{position:relative;left:25%}.el-col-sm-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-sm-7.is-guttered{display:block}.el-col-sm-offset-7{margin-left:29.1667%}.el-col-sm-pull-7{position:relative;right:29.1667%}.el-col-sm-push-7{position:relative;left:29.1667%}.el-col-sm-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-sm-8.is-guttered{display:block}.el-col-sm-offset-8{margin-left:33.3333%}.el-col-sm-pull-8{position:relative;right:33.3333%}.el-col-sm-push-8{position:relative;left:33.3333%}.el-col-sm-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-sm-9.is-guttered{display:block}.el-col-sm-offset-9{margin-left:37.5%}.el-col-sm-pull-9{position:relative;right:37.5%}.el-col-sm-push-9{position:relative;left:37.5%}.el-col-sm-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-sm-10.is-guttered{display:block}.el-col-sm-offset-10{margin-left:41.6667%}.el-col-sm-pull-10{position:relative;right:41.6667%}.el-col-sm-push-10{position:relative;left:41.6667%}.el-col-sm-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-sm-11.is-guttered{display:block}.el-col-sm-offset-11{margin-left:45.8333%}.el-col-sm-pull-11{position:relative;right:45.8333%}.el-col-sm-push-11{position:relative;left:45.8333%}.el-col-sm-12{flex:0 0 50%;max-width:50%;display:block}.el-col-sm-12.is-guttered{display:block}.el-col-sm-offset-12{margin-left:50%}.el-col-sm-pull-12{position:relative;right:50%}.el-col-sm-push-12{position:relative;left:50%}.el-col-sm-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-sm-13.is-guttered{display:block}.el-col-sm-offset-13{margin-left:54.1667%}.el-col-sm-pull-13{position:relative;right:54.1667%}.el-col-sm-push-13{position:relative;left:54.1667%}.el-col-sm-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-sm-14.is-guttered{display:block}.el-col-sm-offset-14{margin-left:58.3333%}.el-col-sm-pull-14{position:relative;right:58.3333%}.el-col-sm-push-14{position:relative;left:58.3333%}.el-col-sm-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-sm-15.is-guttered{display:block}.el-col-sm-offset-15{margin-left:62.5%}.el-col-sm-pull-15{position:relative;right:62.5%}.el-col-sm-push-15{position:relative;left:62.5%}.el-col-sm-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-sm-16.is-guttered{display:block}.el-col-sm-offset-16{margin-left:66.6667%}.el-col-sm-pull-16{position:relative;right:66.6667%}.el-col-sm-push-16{position:relative;left:66.6667%}.el-col-sm-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-sm-17.is-guttered{display:block}.el-col-sm-offset-17{margin-left:70.8333%}.el-col-sm-pull-17{position:relative;right:70.8333%}.el-col-sm-push-17{position:relative;left:70.8333%}.el-col-sm-18{flex:0 0 75%;max-width:75%;display:block}.el-col-sm-18.is-guttered{display:block}.el-col-sm-offset-18{margin-left:75%}.el-col-sm-pull-18{position:relative;right:75%}.el-col-sm-push-18{position:relative;left:75%}.el-col-sm-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-sm-19.is-guttered{display:block}.el-col-sm-offset-19{margin-left:79.1667%}.el-col-sm-pull-19{position:relative;right:79.1667%}.el-col-sm-push-19{position:relative;left:79.1667%}.el-col-sm-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-sm-20.is-guttered{display:block}.el-col-sm-offset-20{margin-left:83.3333%}.el-col-sm-pull-20{position:relative;right:83.3333%}.el-col-sm-push-20{position:relative;left:83.3333%}.el-col-sm-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-sm-21.is-guttered{display:block}.el-col-sm-offset-21{margin-left:87.5%}.el-col-sm-pull-21{position:relative;right:87.5%}.el-col-sm-push-21{position:relative;left:87.5%}.el-col-sm-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-sm-22.is-guttered{display:block}.el-col-sm-offset-22{margin-left:91.6667%}.el-col-sm-pull-22{position:relative;right:91.6667%}.el-col-sm-push-22{position:relative;left:91.6667%}.el-col-sm-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-sm-23.is-guttered{display:block}.el-col-sm-offset-23{margin-left:95.8333%}.el-col-sm-pull-23{position:relative;right:95.8333%}.el-col-sm-push-23{position:relative;left:95.8333%}.el-col-sm-24{flex:0 0 100%;max-width:100%;display:block}.el-col-sm-24.is-guttered{display:block}.el-col-sm-offset-24{margin-left:100%}.el-col-sm-pull-24{position:relative;right:100%}.el-col-sm-push-24{position:relative;left:100%}}@media only screen and (width>=992px){.el-col-md-0{flex:0 0;max-width:0%;display:none}.el-col-md-0.is-guttered{display:none}.el-col-md-offset-0{margin-left:0%}.el-col-md-pull-0{position:relative;right:0%}.el-col-md-push-0{position:relative;left:0%}.el-col-md-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-md-1.is-guttered{display:block}.el-col-md-offset-1{margin-left:4.16667%}.el-col-md-pull-1{position:relative;right:4.16667%}.el-col-md-push-1{position:relative;left:4.16667%}.el-col-md-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-md-2.is-guttered{display:block}.el-col-md-offset-2{margin-left:8.33333%}.el-col-md-pull-2{position:relative;right:8.33333%}.el-col-md-push-2{position:relative;left:8.33333%}.el-col-md-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-md-3.is-guttered{display:block}.el-col-md-offset-3{margin-left:12.5%}.el-col-md-pull-3{position:relative;right:12.5%}.el-col-md-push-3{position:relative;left:12.5%}.el-col-md-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-md-4.is-guttered{display:block}.el-col-md-offset-4{margin-left:16.6667%}.el-col-md-pull-4{position:relative;right:16.6667%}.el-col-md-push-4{position:relative;left:16.6667%}.el-col-md-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-md-5.is-guttered{display:block}.el-col-md-offset-5{margin-left:20.8333%}.el-col-md-pull-5{position:relative;right:20.8333%}.el-col-md-push-5{position:relative;left:20.8333%}.el-col-md-6{flex:0 0 25%;max-width:25%;display:block}.el-col-md-6.is-guttered{display:block}.el-col-md-offset-6{margin-left:25%}.el-col-md-pull-6{position:relative;right:25%}.el-col-md-push-6{position:relative;left:25%}.el-col-md-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-md-7.is-guttered{display:block}.el-col-md-offset-7{margin-left:29.1667%}.el-col-md-pull-7{position:relative;right:29.1667%}.el-col-md-push-7{position:relative;left:29.1667%}.el-col-md-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-md-8.is-guttered{display:block}.el-col-md-offset-8{margin-left:33.3333%}.el-col-md-pull-8{position:relative;right:33.3333%}.el-col-md-push-8{position:relative;left:33.3333%}.el-col-md-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-md-9.is-guttered{display:block}.el-col-md-offset-9{margin-left:37.5%}.el-col-md-pull-9{position:relative;right:37.5%}.el-col-md-push-9{position:relative;left:37.5%}.el-col-md-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-md-10.is-guttered{display:block}.el-col-md-offset-10{margin-left:41.6667%}.el-col-md-pull-10{position:relative;right:41.6667%}.el-col-md-push-10{position:relative;left:41.6667%}.el-col-md-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-md-11.is-guttered{display:block}.el-col-md-offset-11{margin-left:45.8333%}.el-col-md-pull-11{position:relative;right:45.8333%}.el-col-md-push-11{position:relative;left:45.8333%}.el-col-md-12{flex:0 0 50%;max-width:50%;display:block}.el-col-md-12.is-guttered{display:block}.el-col-md-offset-12{margin-left:50%}.el-col-md-pull-12{position:relative;right:50%}.el-col-md-push-12{position:relative;left:50%}.el-col-md-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-md-13.is-guttered{display:block}.el-col-md-offset-13{margin-left:54.1667%}.el-col-md-pull-13{position:relative;right:54.1667%}.el-col-md-push-13{position:relative;left:54.1667%}.el-col-md-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-md-14.is-guttered{display:block}.el-col-md-offset-14{margin-left:58.3333%}.el-col-md-pull-14{position:relative;right:58.3333%}.el-col-md-push-14{position:relative;left:58.3333%}.el-col-md-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-md-15.is-guttered{display:block}.el-col-md-offset-15{margin-left:62.5%}.el-col-md-pull-15{position:relative;right:62.5%}.el-col-md-push-15{position:relative;left:62.5%}.el-col-md-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-md-16.is-guttered{display:block}.el-col-md-offset-16{margin-left:66.6667%}.el-col-md-pull-16{position:relative;right:66.6667%}.el-col-md-push-16{position:relative;left:66.6667%}.el-col-md-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-md-17.is-guttered{display:block}.el-col-md-offset-17{margin-left:70.8333%}.el-col-md-pull-17{position:relative;right:70.8333%}.el-col-md-push-17{position:relative;left:70.8333%}.el-col-md-18{flex:0 0 75%;max-width:75%;display:block}.el-col-md-18.is-guttered{display:block}.el-col-md-offset-18{margin-left:75%}.el-col-md-pull-18{position:relative;right:75%}.el-col-md-push-18{position:relative;left:75%}.el-col-md-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-md-19.is-guttered{display:block}.el-col-md-offset-19{margin-left:79.1667%}.el-col-md-pull-19{position:relative;right:79.1667%}.el-col-md-push-19{position:relative;left:79.1667%}.el-col-md-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-md-20.is-guttered{display:block}.el-col-md-offset-20{margin-left:83.3333%}.el-col-md-pull-20{position:relative;right:83.3333%}.el-col-md-push-20{position:relative;left:83.3333%}.el-col-md-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-md-21.is-guttered{display:block}.el-col-md-offset-21{margin-left:87.5%}.el-col-md-pull-21{position:relative;right:87.5%}.el-col-md-push-21{position:relative;left:87.5%}.el-col-md-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-md-22.is-guttered{display:block}.el-col-md-offset-22{margin-left:91.6667%}.el-col-md-pull-22{position:relative;right:91.6667%}.el-col-md-push-22{position:relative;left:91.6667%}.el-col-md-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-md-23.is-guttered{display:block}.el-col-md-offset-23{margin-left:95.8333%}.el-col-md-pull-23{position:relative;right:95.8333%}.el-col-md-push-23{position:relative;left:95.8333%}.el-col-md-24{flex:0 0 100%;max-width:100%;display:block}.el-col-md-24.is-guttered{display:block}.el-col-md-offset-24{margin-left:100%}.el-col-md-pull-24{position:relative;right:100%}.el-col-md-push-24{position:relative;left:100%}}@media only screen and (width>=1200px){.el-col-lg-0{flex:0 0;max-width:0%;display:none}.el-col-lg-0.is-guttered{display:none}.el-col-lg-offset-0{margin-left:0%}.el-col-lg-pull-0{position:relative;right:0%}.el-col-lg-push-0{position:relative;left:0%}.el-col-lg-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-lg-1.is-guttered{display:block}.el-col-lg-offset-1{margin-left:4.16667%}.el-col-lg-pull-1{position:relative;right:4.16667%}.el-col-lg-push-1{position:relative;left:4.16667%}.el-col-lg-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-lg-2.is-guttered{display:block}.el-col-lg-offset-2{margin-left:8.33333%}.el-col-lg-pull-2{position:relative;right:8.33333%}.el-col-lg-push-2{position:relative;left:8.33333%}.el-col-lg-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-lg-3.is-guttered{display:block}.el-col-lg-offset-3{margin-left:12.5%}.el-col-lg-pull-3{position:relative;right:12.5%}.el-col-lg-push-3{position:relative;left:12.5%}.el-col-lg-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-lg-4.is-guttered{display:block}.el-col-lg-offset-4{margin-left:16.6667%}.el-col-lg-pull-4{position:relative;right:16.6667%}.el-col-lg-push-4{position:relative;left:16.6667%}.el-col-lg-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-lg-5.is-guttered{display:block}.el-col-lg-offset-5{margin-left:20.8333%}.el-col-lg-pull-5{position:relative;right:20.8333%}.el-col-lg-push-5{position:relative;left:20.8333%}.el-col-lg-6{flex:0 0 25%;max-width:25%;display:block}.el-col-lg-6.is-guttered{display:block}.el-col-lg-offset-6{margin-left:25%}.el-col-lg-pull-6{position:relative;right:25%}.el-col-lg-push-6{position:relative;left:25%}.el-col-lg-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-lg-7.is-guttered{display:block}.el-col-lg-offset-7{margin-left:29.1667%}.el-col-lg-pull-7{position:relative;right:29.1667%}.el-col-lg-push-7{position:relative;left:29.1667%}.el-col-lg-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-lg-8.is-guttered{display:block}.el-col-lg-offset-8{margin-left:33.3333%}.el-col-lg-pull-8{position:relative;right:33.3333%}.el-col-lg-push-8{position:relative;left:33.3333%}.el-col-lg-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-lg-9.is-guttered{display:block}.el-col-lg-offset-9{margin-left:37.5%}.el-col-lg-pull-9{position:relative;right:37.5%}.el-col-lg-push-9{position:relative;left:37.5%}.el-col-lg-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-lg-10.is-guttered{display:block}.el-col-lg-offset-10{margin-left:41.6667%}.el-col-lg-pull-10{position:relative;right:41.6667%}.el-col-lg-push-10{position:relative;left:41.6667%}.el-col-lg-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-lg-11.is-guttered{display:block}.el-col-lg-offset-11{margin-left:45.8333%}.el-col-lg-pull-11{position:relative;right:45.8333%}.el-col-lg-push-11{position:relative;left:45.8333%}.el-col-lg-12{flex:0 0 50%;max-width:50%;display:block}.el-col-lg-12.is-guttered{display:block}.el-col-lg-offset-12{margin-left:50%}.el-col-lg-pull-12{position:relative;right:50%}.el-col-lg-push-12{position:relative;left:50%}.el-col-lg-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-lg-13.is-guttered{display:block}.el-col-lg-offset-13{margin-left:54.1667%}.el-col-lg-pull-13{position:relative;right:54.1667%}.el-col-lg-push-13{position:relative;left:54.1667%}.el-col-lg-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-lg-14.is-guttered{display:block}.el-col-lg-offset-14{margin-left:58.3333%}.el-col-lg-pull-14{position:relative;right:58.3333%}.el-col-lg-push-14{position:relative;left:58.3333%}.el-col-lg-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-lg-15.is-guttered{display:block}.el-col-lg-offset-15{margin-left:62.5%}.el-col-lg-pull-15{position:relative;right:62.5%}.el-col-lg-push-15{position:relative;left:62.5%}.el-col-lg-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-lg-16.is-guttered{display:block}.el-col-lg-offset-16{margin-left:66.6667%}.el-col-lg-pull-16{position:relative;right:66.6667%}.el-col-lg-push-16{position:relative;left:66.6667%}.el-col-lg-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-lg-17.is-guttered{display:block}.el-col-lg-offset-17{margin-left:70.8333%}.el-col-lg-pull-17{position:relative;right:70.8333%}.el-col-lg-push-17{position:relative;left:70.8333%}.el-col-lg-18{flex:0 0 75%;max-width:75%;display:block}.el-col-lg-18.is-guttered{display:block}.el-col-lg-offset-18{margin-left:75%}.el-col-lg-pull-18{position:relative;right:75%}.el-col-lg-push-18{position:relative;left:75%}.el-col-lg-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-lg-19.is-guttered{display:block}.el-col-lg-offset-19{margin-left:79.1667%}.el-col-lg-pull-19{position:relative;right:79.1667%}.el-col-lg-push-19{position:relative;left:79.1667%}.el-col-lg-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-lg-20.is-guttered{display:block}.el-col-lg-offset-20{margin-left:83.3333%}.el-col-lg-pull-20{position:relative;right:83.3333%}.el-col-lg-push-20{position:relative;left:83.3333%}.el-col-lg-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-lg-21.is-guttered{display:block}.el-col-lg-offset-21{margin-left:87.5%}.el-col-lg-pull-21{position:relative;right:87.5%}.el-col-lg-push-21{position:relative;left:87.5%}.el-col-lg-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-lg-22.is-guttered{display:block}.el-col-lg-offset-22{margin-left:91.6667%}.el-col-lg-pull-22{position:relative;right:91.6667%}.el-col-lg-push-22{position:relative;left:91.6667%}.el-col-lg-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-lg-23.is-guttered{display:block}.el-col-lg-offset-23{margin-left:95.8333%}.el-col-lg-pull-23{position:relative;right:95.8333%}.el-col-lg-push-23{position:relative;left:95.8333%}.el-col-lg-24{flex:0 0 100%;max-width:100%;display:block}.el-col-lg-24.is-guttered{display:block}.el-col-lg-offset-24{margin-left:100%}.el-col-lg-pull-24{position:relative;right:100%}.el-col-lg-push-24{position:relative;left:100%}}@media only screen and (width>=1920px){.el-col-xl-0{flex:0 0;max-width:0%;display:none}.el-col-xl-0.is-guttered{display:none}.el-col-xl-offset-0{margin-left:0%}.el-col-xl-pull-0{position:relative;right:0%}.el-col-xl-push-0{position:relative;left:0%}.el-col-xl-1{flex:0 0 4.16667%;max-width:4.16667%;display:block}.el-col-xl-1.is-guttered{display:block}.el-col-xl-offset-1{margin-left:4.16667%}.el-col-xl-pull-1{position:relative;right:4.16667%}.el-col-xl-push-1{position:relative;left:4.16667%}.el-col-xl-2{flex:0 0 8.33333%;max-width:8.33333%;display:block}.el-col-xl-2.is-guttered{display:block}.el-col-xl-offset-2{margin-left:8.33333%}.el-col-xl-pull-2{position:relative;right:8.33333%}.el-col-xl-push-2{position:relative;left:8.33333%}.el-col-xl-3{flex:0 0 12.5%;max-width:12.5%;display:block}.el-col-xl-3.is-guttered{display:block}.el-col-xl-offset-3{margin-left:12.5%}.el-col-xl-pull-3{position:relative;right:12.5%}.el-col-xl-push-3{position:relative;left:12.5%}.el-col-xl-4{flex:0 0 16.6667%;max-width:16.6667%;display:block}.el-col-xl-4.is-guttered{display:block}.el-col-xl-offset-4{margin-left:16.6667%}.el-col-xl-pull-4{position:relative;right:16.6667%}.el-col-xl-push-4{position:relative;left:16.6667%}.el-col-xl-5{flex:0 0 20.8333%;max-width:20.8333%;display:block}.el-col-xl-5.is-guttered{display:block}.el-col-xl-offset-5{margin-left:20.8333%}.el-col-xl-pull-5{position:relative;right:20.8333%}.el-col-xl-push-5{position:relative;left:20.8333%}.el-col-xl-6{flex:0 0 25%;max-width:25%;display:block}.el-col-xl-6.is-guttered{display:block}.el-col-xl-offset-6{margin-left:25%}.el-col-xl-pull-6{position:relative;right:25%}.el-col-xl-push-6{position:relative;left:25%}.el-col-xl-7{flex:0 0 29.1667%;max-width:29.1667%;display:block}.el-col-xl-7.is-guttered{display:block}.el-col-xl-offset-7{margin-left:29.1667%}.el-col-xl-pull-7{position:relative;right:29.1667%}.el-col-xl-push-7{position:relative;left:29.1667%}.el-col-xl-8{flex:0 0 33.3333%;max-width:33.3333%;display:block}.el-col-xl-8.is-guttered{display:block}.el-col-xl-offset-8{margin-left:33.3333%}.el-col-xl-pull-8{position:relative;right:33.3333%}.el-col-xl-push-8{position:relative;left:33.3333%}.el-col-xl-9{flex:0 0 37.5%;max-width:37.5%;display:block}.el-col-xl-9.is-guttered{display:block}.el-col-xl-offset-9{margin-left:37.5%}.el-col-xl-pull-9{position:relative;right:37.5%}.el-col-xl-push-9{position:relative;left:37.5%}.el-col-xl-10{flex:0 0 41.6667%;max-width:41.6667%;display:block}.el-col-xl-10.is-guttered{display:block}.el-col-xl-offset-10{margin-left:41.6667%}.el-col-xl-pull-10{position:relative;right:41.6667%}.el-col-xl-push-10{position:relative;left:41.6667%}.el-col-xl-11{flex:0 0 45.8333%;max-width:45.8333%;display:block}.el-col-xl-11.is-guttered{display:block}.el-col-xl-offset-11{margin-left:45.8333%}.el-col-xl-pull-11{position:relative;right:45.8333%}.el-col-xl-push-11{position:relative;left:45.8333%}.el-col-xl-12{flex:0 0 50%;max-width:50%;display:block}.el-col-xl-12.is-guttered{display:block}.el-col-xl-offset-12{margin-left:50%}.el-col-xl-pull-12{position:relative;right:50%}.el-col-xl-push-12{position:relative;left:50%}.el-col-xl-13{flex:0 0 54.1667%;max-width:54.1667%;display:block}.el-col-xl-13.is-guttered{display:block}.el-col-xl-offset-13{margin-left:54.1667%}.el-col-xl-pull-13{position:relative;right:54.1667%}.el-col-xl-push-13{position:relative;left:54.1667%}.el-col-xl-14{flex:0 0 58.3333%;max-width:58.3333%;display:block}.el-col-xl-14.is-guttered{display:block}.el-col-xl-offset-14{margin-left:58.3333%}.el-col-xl-pull-14{position:relative;right:58.3333%}.el-col-xl-push-14{position:relative;left:58.3333%}.el-col-xl-15{flex:0 0 62.5%;max-width:62.5%;display:block}.el-col-xl-15.is-guttered{display:block}.el-col-xl-offset-15{margin-left:62.5%}.el-col-xl-pull-15{position:relative;right:62.5%}.el-col-xl-push-15{position:relative;left:62.5%}.el-col-xl-16{flex:0 0 66.6667%;max-width:66.6667%;display:block}.el-col-xl-16.is-guttered{display:block}.el-col-xl-offset-16{margin-left:66.6667%}.el-col-xl-pull-16{position:relative;right:66.6667%}.el-col-xl-push-16{position:relative;left:66.6667%}.el-col-xl-17{flex:0 0 70.8333%;max-width:70.8333%;display:block}.el-col-xl-17.is-guttered{display:block}.el-col-xl-offset-17{margin-left:70.8333%}.el-col-xl-pull-17{position:relative;right:70.8333%}.el-col-xl-push-17{position:relative;left:70.8333%}.el-col-xl-18{flex:0 0 75%;max-width:75%;display:block}.el-col-xl-18.is-guttered{display:block}.el-col-xl-offset-18{margin-left:75%}.el-col-xl-pull-18{position:relative;right:75%}.el-col-xl-push-18{position:relative;left:75%}.el-col-xl-19{flex:0 0 79.1667%;max-width:79.1667%;display:block}.el-col-xl-19.is-guttered{display:block}.el-col-xl-offset-19{margin-left:79.1667%}.el-col-xl-pull-19{position:relative;right:79.1667%}.el-col-xl-push-19{position:relative;left:79.1667%}.el-col-xl-20{flex:0 0 83.3333%;max-width:83.3333%;display:block}.el-col-xl-20.is-guttered{display:block}.el-col-xl-offset-20{margin-left:83.3333%}.el-col-xl-pull-20{position:relative;right:83.3333%}.el-col-xl-push-20{position:relative;left:83.3333%}.el-col-xl-21{flex:0 0 87.5%;max-width:87.5%;display:block}.el-col-xl-21.is-guttered{display:block}.el-col-xl-offset-21{margin-left:87.5%}.el-col-xl-pull-21{position:relative;right:87.5%}.el-col-xl-push-21{position:relative;left:87.5%}.el-col-xl-22{flex:0 0 91.6667%;max-width:91.6667%;display:block}.el-col-xl-22.is-guttered{display:block}.el-col-xl-offset-22{margin-left:91.6667%}.el-col-xl-pull-22{position:relative;right:91.6667%}.el-col-xl-push-22{position:relative;left:91.6667%}.el-col-xl-23{flex:0 0 95.8333%;max-width:95.8333%;display:block}.el-col-xl-23.is-guttered{display:block}.el-col-xl-offset-23{margin-left:95.8333%}.el-col-xl-pull-23{position:relative;right:95.8333%}.el-col-xl-push-23{position:relative;left:95.8333%}.el-col-xl-24{flex:0 0 100%;max-width:100%;display:block}.el-col-xl-24.is-guttered{display:block}.el-col-xl-offset-24{margin-left:100%}.el-col-xl-pull-24{position:relative;right:100%}.el-col-xl-push-24{position:relative;left:100%}}.el-collapse-item.is-disabled .el-collapse-item__header{color:var(--el-text-color-disabled);cursor:not-allowed}.el-collapse-item__header{width:100%;min-height:var(--el-collapse-header-height);line-height:var(--el-collapse-header-height);background-color:var(--el-collapse-header-bg-color);color:var(--el-collapse-header-text-color);cursor:pointer;border:none;border-bottom:1px solid var(--el-collapse-border-color);font-size:var(--el-collapse-header-font-size);transition:border-bottom-color var(--el-transition-duration);box-sizing:border-box;outline:none;align-items:center;padding:0;font-weight:500;display:flex}.el-collapse-item__arrow{transition:transform var(--el-transition-duration);font-weight:300}.el-collapse-item__arrow.is-active{transform:rotate(90deg)}.el-collapse-item__title{text-align:left;flex:auto}.el-collapse-item__header.focusing:focus:not(:hover){color:var(--el-color-primary)}.el-collapse-item__header.is-active{border-bottom-color:#0000}.el-collapse-item__wrap{will-change:height;background-color:var(--el-collapse-content-bg-color);box-sizing:border-box;border-bottom:1px solid var(--el-collapse-border-color);overflow:hidden}.el-collapse-item__content{font-size:var(--el-collapse-content-font-size);color:var(--el-collapse-content-text-color);padding-bottom:25px;line-height:1.76923}.el-collapse-item:last-child{margin-bottom:-1px}.el-collapse{--el-collapse-border-color:var(--el-border-color-lighter);--el-collapse-header-height:48px;--el-collapse-header-bg-color:var(--el-fill-color-blank);--el-collapse-header-text-color:var(--el-text-color-primary);--el-collapse-header-font-size:13px;--el-collapse-content-bg-color:var(--el-fill-color-blank);--el-collapse-content-font-size:13px;--el-collapse-content-text-color:var(--el-text-color-primary);border-top:1px solid var(--el-collapse-border-color);border-bottom:1px solid var(--el-collapse-border-color)}.el-collapse-icon-position-left .el-collapse-item__header{gap:8px}.el-collapse-icon-position-left .el-collapse-item__title{order:1}.el-collapse-icon-position-right .el-collapse-item__header{padding-right:8px}.el-color-picker-panel{--el-colorpicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-colorpicker-bg-color);box-sizing:content-box;background:var(--el-colorpicker-bg-color);width:300px;padding:12px}.el-color-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter);border-radius:4px}.el-color-picker-panel__wrapper{margin-bottom:6px}.el-color-picker-panel__footer{text-align:right;justify-content:space-between;margin-top:12px;display:flex}.el-color-picker-panel__footer .el-input{color:#000;width:160px;font-size:12px;line-height:26px}.el-color-picker-panel.is-disabled .el-color-svpanel,.el-color-picker-panel.is-disabled .el-color-hue-slider{cursor:not-allowed;opacity:.3}.el-color-picker-panel.is-disabled .el-color-hue-slider__thumb{cursor:not-allowed}.el-color-picker-panel.is-disabled .el-color-alpha-slider,.el-color-picker-panel.is-disabled .el-color-predefine .el-color-predefine__color-selector{cursor:not-allowed;opacity:.3}.el-color-predefine{width:280px;margin-top:8px;font-size:12px;display:flex}.el-color-predefine__colors{flex-wrap:wrap;flex:1;gap:8px;display:flex}.el-color-predefine__color-selector{border-radius:var(--el-border-radius-base);cursor:pointer;border:none;outline:none;width:20px;height:20px;padding:0;overflow:hidden}.el-color-predefine__color-selector.selected{box-shadow:0 0 3px 2px var(--el-color-primary)}.el-color-predefine__color-selector:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-predefine__color-selector>div{height:100%;display:flex}.el-color-predefine__color-selector.is-alpha{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAIAAADZF8uwAAAAGUlEQVQYV2M4gwH+YwCGIasIUwhT25BVBADtzYNYrHvv4gAAAABJRU5ErkJggg==)}.el-color-hue-slider{box-sizing:border-box;float:right;background-color:red;width:280px;height:12px;padding:0 2px;position:relative}.el-color-hue-slider__bar{background:linear-gradient(90deg,red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%);height:100%;position:relative}.el-color-hue-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-hue-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-hue-slider.is-vertical{width:12px;height:180px;padding:2px 0}.el-color-hue-slider.is-vertical .el-color-hue-slider__bar{background:linear-gradient(red 0%,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red 100%)}.el-color-hue-slider.is-vertical .el-color-hue-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-svpanel{background-image:linear-gradient(#0000,#000),linear-gradient(90deg,#fff,#fff0);width:280px;height:180px;position:relative}.el-color-svpanel__cursor{cursor:pointer;border-radius:50%;width:4px;height:4px;position:absolute;transform:translate(-2px,-2px);box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1px #0000004d,0 0 1px 2px #0006}.el-color-svpanel__cursor:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-color-alpha-slider{box-sizing:border-box;background-image:linear-gradient(45deg, var(--el-color-picker-alpha-bg-a) 25%, var(--el-color-picker-alpha-bg-b) 25%), linear-gradient(135deg, var(--el-color-picker-alpha-bg-a) 25%, var(--el-color-picker-alpha-bg-b) 25%), linear-gradient(45deg, var(--el-color-picker-alpha-bg-b) 75%, var(--el-color-picker-alpha-bg-a) 75%), linear-gradient(135deg, var(--el-color-picker-alpha-bg-b) 75%, var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px;width:280px;height:12px;position:relative}.el-color-alpha-slider.is-disabled .el-color-alpha-slider__thumb{cursor:not-allowed}.el-color-alpha-slider__bar{background:linear-gradient(to right, #fff0 0%, var(--el-bg-color) 100%);height:100%;position:relative}.el-color-alpha-slider__thumb{cursor:pointer;box-sizing:border-box;border:1px solid var(--el-border-color-lighter);z-index:1;background:#fff;border-radius:1px;width:4px;height:100%;position:absolute;top:0;left:0;box-shadow:0 0 2px #0009}.el-color-alpha-slider__thumb:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-alpha-slider.is-vertical{width:20px;height:180px}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__bar{background:linear-gradient(#fff0 0%,#fff 100%)}.el-color-alpha-slider.is-vertical .el-color-alpha-slider__thumb{width:100%;height:4px;top:0;left:0}.el-color-picker-panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker-panel{--el-color-picker-alpha-bg-a:#333}.el-color-picker{outline:none;width:32px;height:32px;line-height:normal;display:inline-block;position:relative}.el-color-picker:hover:not(:-webkit-any(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:hover:not(:is(.is-disabled,.is-focused)) .el-color-picker__trigger{border-color:var(--el-border-color-hover)}.el-color-picker:focus-visible:not(.is-disabled) .el-color-picker__trigger{outline:2px solid var(--el-color-primary);outline-offset:1px}.el-color-picker.is-focused .el-color-picker__trigger{border-color:var(--el-color-primary)}.el-color-picker.is-disabled .el-color-picker__trigger{cursor:not-allowed;background-color:var(--el-fill-color-light)}.el-color-picker.is-disabled .el-color-picker__color{opacity:.3}.el-color-picker--large{width:40px;height:40px}.el-color-picker--small{width:24px;height:24px}.el-color-picker--small .el-color-picker__icon,.el-color-picker--small .el-color-picker__empty{transform:scale(.8)}.el-color-picker__trigger{box-sizing:border-box;border:1px solid var(--el-border-color);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;width:100%;height:100%;padding:4px;font-size:0;display:inline-flex;position:relative}.el-color-picker__color{box-sizing:border-box;border:1px solid var(--el-text-color-secondary);border-radius:var(--el-border-radius-small);text-align:center;width:100%;height:100%;display:block;position:relative}.el-color-picker__color.is-alpha{background-image:linear-gradient(45deg, var(--el-color-picker-alpha-bg-a) 25%, var(--el-color-picker-alpha-bg-b) 25%), linear-gradient(135deg, var(--el-color-picker-alpha-bg-a) 25%, var(--el-color-picker-alpha-bg-b) 25%), linear-gradient(45deg, var(--el-color-picker-alpha-bg-b) 75%, var(--el-color-picker-alpha-bg-a) 75%), linear-gradient(135deg, var(--el-color-picker-alpha-bg-b) 75%, var(--el-color-picker-alpha-bg-a) 75%);background-position:0 0,6px 0,6px -6px,0 6px;background-size:12px 12px}.el-color-picker__color-inner{justify-content:center;align-items:center;width:100%;height:100%;display:inline-flex}.el-color-picker .el-color-picker__empty{color:var(--el-text-color-secondary);font-size:12px}.el-color-picker .el-color-picker__icon{color:#fff;justify-content:center;align-items:center;font-size:12px;display:inline-flex}.el-color-picker__panel{border-radius:var(--el-border-radius-base);box-shadow:var(--el-box-shadow-light);background-color:#fff}.el-color-picker__panel.el-popper{border:1px solid var(--el-border-color-lighter)}.el-color-picker,.el-color-picker__panel{--el-color-picker-alpha-bg-a:#ccc;--el-color-picker-alpha-bg-b:transparent}.dark .el-color-picker,.dark .el-color-picker__panel{--el-color-picker-alpha-bg-a:#333}.el-container{box-sizing:border-box;flex-direction:row;flex:auto;min-width:0;display:flex}.el-container.is-vertical{flex-direction:column}.el-date-table{-webkit-user-select:none;user-select:none;font-size:12px}.el-date-table.is-week-mode .el-date-table__row:hover .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table.is-week-mode .el-date-table__row:hover td.available:hover{color:var(--el-datepicker-text-color)}.el-date-table.is-week-mode .el-date-table__row:hover td:first-child .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table.is-week-mode .el-date-table__row:hover td:last-child .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table.is-week-mode .el-date-table__row.current .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td{box-sizing:border-box;text-align:center;cursor:pointer;width:32px;height:30px;padding:4px 0;position:relative}.el-date-table td .el-date-table-cell{box-sizing:border-box;height:30px;padding:3px 0}.el-date-table td .el-date-table-cell .el-date-table-cell__text{border-radius:50%;width:24px;height:24px;margin:0 auto;line-height:24px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-date-table td.next-month,.el-date-table td.prev-month{color:var(--el-datepicker-off-text-color)}.el-date-table td.today{position:relative}.el-date-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-date-table td.today.start-date .el-date-table-cell__text,.el-date-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-date-table td.available:hover{color:var(--el-datepicker-hover-text-color)}.el-date-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-date-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-date-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-date-table td.current:not(.disabled):focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-date-table td.start-date .el-date-table-cell,.el-date-table td.end-date .el-date-table-cell{color:#fff}.el-date-table td.start-date .el-date-table-cell__text,.el-date-table td.end-date .el-date-table-cell__text{background-color:var(--el-datepicker-active-color)}.el-date-table td.start-date .el-date-table-cell{border-top-left-radius:15px;border-bottom-left-radius:15px;margin-left:5px}.el-date-table td.end-date .el-date-table-cell{border-top-right-radius:15px;border-bottom-right-radius:15px;margin-right:5px}.el-date-table td.disabled .el-date-table-cell{background-color:var(--el-fill-color-light);opacity:1;cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-date-table td.selected .el-date-table-cell{border-radius:15px;margin-left:5px;margin-right:5px}.el-date-table td.selected .el-date-table-cell__text{background-color:var(--el-datepicker-active-color);color:#fff;border-radius:15px}.el-date-table td.week{color:var(--el-datepicker-off-text-color);cursor:default;font-size:80%}.el-date-table td:focus{outline:none}.el-date-table th{color:var(--el-datepicker-header-text-color);border-bottom:solid 1px var(--el-border-color-lighter);padding:5px;font-weight:400}.el-date-table th.el-date-table__week-header{width:24px;padding:0}.el-month-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-month-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-month-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-month-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-month-table td.today.start-date .el-date-table-cell__text,.el-month-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-month-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-month-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-month-table td .el-date-table-cell__text{width:54px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-month-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-month-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-month-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-month-table td.start-date .el-date-table-cell,.el-month-table td.end-date .el-date-table-cell{color:#fff}.el-month-table td.start-date .el-date-table-cell__text,.el-month-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px;margin-left:3px}.el-month-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell{border-radius:24px;margin-left:3px;margin-right:3px}.el-month-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-month-table td:focus-visible{outline:none}.el-month-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-year-table{border-collapse:collapse;margin:-1px;font-size:12px}.el-year-table .el-icon{color:var(--el-datepicker-icon-color)}.el-year-table td{text-align:center;cursor:pointer;width:68px;padding:8px 0;position:relative}.el-year-table td .el-date-table-cell{box-sizing:border-box;height:48px;padding:6px 0}.el-year-table td.today .el-date-table-cell__text{color:var(--el-color-primary);font-weight:700}.el-year-table td.today.start-date .el-date-table-cell__text,.el-year-table td.today.end-date .el-date-table-cell__text{color:#fff}.el-year-table td.disabled .el-date-table-cell__text{background-color:var(--el-fill-color-light);cursor:not-allowed;color:var(--el-text-color-placeholder)}.el-year-table td.disabled .el-date-table-cell__text:hover{color:var(--el-text-color-placeholder)}.el-year-table td .el-date-table-cell__text{width:60px;height:36px;color:var(--el-datepicker-text-color);border-radius:18px;margin:0 auto;line-height:36px;display:block;position:absolute;left:50%;transform:translate(-50%)}.el-year-table td .el-date-table-cell__text:hover{color:var(--el-datepicker-hover-text-color)}.el-year-table td.in-range .el-date-table-cell{background-color:var(--el-datepicker-inrange-bg-color)}.el-year-table td.in-range .el-date-table-cell:hover{background-color:var(--el-datepicker-inrange-hover-bg-color)}.el-year-table td.start-date .el-date-table-cell,.el-year-table td.end-date .el-date-table-cell{color:#fff}.el-year-table td.start-date .el-date-table-cell__text,.el-year-table td.end-date .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td.start-date .el-date-table-cell{border-top-left-radius:24px;border-bottom-left-radius:24px}.el-year-table td.end-date .el-date-table-cell{border-top-right-radius:24px;border-bottom-right-radius:24px}.el-year-table td.current:not(.disabled) .el-date-table-cell__text{color:#fff;background-color:var(--el-datepicker-active-color)}.el-year-table td:focus-visible{outline:none}.el-year-table td:focus-visible .el-date-table-cell__text{outline:2px solid var(--el-datepicker-active-color);outline-offset:1px}.el-time-spinner.has-seconds .el-time-spinner__wrapper{width:33.3%}.el-time-spinner__wrapper{vertical-align:top;width:50%;max-height:192px;display:inline-block;position:relative;overflow:auto}.el-time-spinner__wrapper.el-scrollbar__wrap:not(.el-scrollbar__wrap--hidden-default){padding-bottom:15px}.el-time-spinner__wrapper.is-arrow{box-sizing:border-box;text-align:center;overflow:hidden}.el-time-spinner__wrapper.is-arrow .el-time-spinner__list{transform:translateY(-32px)}.el-time-spinner__wrapper.is-arrow .el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:default}.el-time-spinner__arrow{color:var(--el-text-color-secondary);width:100%;z-index:var(--el-index-normal);text-align:center;cursor:pointer;height:30px;font-size:12px;line-height:30px;position:absolute;left:0}.el-time-spinner__arrow:hover{color:var(--el-color-primary)}.el-time-spinner__arrow.arrow-up{top:10px}.el-time-spinner__arrow.arrow-down{bottom:10px}.el-time-spinner__input.el-input{width:70%}.el-time-spinner__input.el-input .el-input__inner{text-align:center;padding:0}.el-time-spinner__list{text-align:center;margin:0;padding:0;list-style:none}.el-time-spinner__list:after,.el-time-spinner__list:before{content:"";width:100%;height:80px;display:block}.el-time-spinner__item{height:32px;color:var(--el-text-color-regular);font-size:12px;line-height:32px}.el-time-spinner__item:hover:not(.is-disabled):not(.is-active){background:var(--el-fill-color-light);cursor:pointer}.el-time-spinner__item.is-active:not(.is-disabled){color:var(--el-text-color-primary);font-weight:700}.el-time-spinner__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-picker__popper{--el-datepicker-border-color:var(--el-disabled-border-color)}.el-picker__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-datepicker-border-color);box-shadow:var(--el-box-shadow-light)}.el-picker__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-datepicker-border-color)}.el-picker__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-picker__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-date-editor{--el-date-editor-width:220px;--el-date-editor-monthrange-width:300px;--el-date-editor-daterange-width:350px;--el-date-editor-datetimerange-width:400px;--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;text-align:left;vertical-align:middle;position:relative}.el-date-editor.el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset}.el-date-editor.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-date-editor.is-focus .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-date-editor.el-input,.el-date-editor.el-input__wrapper{width:var(--el-date-editor-width);height:var(--el-input-height,var(--el-component-size))}.el-date-editor--monthrange{--el-date-editor-width:var(--el-date-editor-monthrange-width)}.el-date-editor--daterange,.el-date-editor--timerange{--el-date-editor-width:var(--el-date-editor-daterange-width)}.el-date-editor--datetimerange{--el-date-editor-width:var(--el-date-editor-datetimerange-width)}.el-date-editor--dates .el-input__wrapper{text-overflow:ellipsis;white-space:nowrap}.el-date-editor .close-icon,.el-date-editor .clear-icon{cursor:pointer}.el-date-editor .clear-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__icon{height:inherit;color:var(--el-text-color-placeholder);float:left;font-size:14px}.el-date-editor .el-range__icon svg{vertical-align:middle}.el-date-editor .el-range-input{appearance:none;text-align:center;width:39%;height:30px;line-height:30px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);background-color:#0000;border:none;outline:none;margin:0;padding:0;display:inline-block}.el-date-editor .el-range-input::placeholder{color:var(--el-text-color-placeholder)}.el-date-editor .el-range-separator{overflow-wrap:break-word;height:100%;color:var(--el-text-color-primary);flex:1;justify-content:center;align-items:center;margin:0;padding:0 5px;font-size:14px;display:inline-flex}.el-date-editor .el-range__close-icon{color:var(--el-text-color-placeholder);height:inherit;width:unset;cursor:pointer;font-size:14px}.el-date-editor .el-range__close-icon:hover{color:var(--el-input-clear-hover-color)}.el-date-editor .el-range__close-icon svg{vertical-align:middle}.el-date-editor .el-range__close-icon--hidden{opacity:0;visibility:hidden}.el-range-editor.el-input__wrapper{vertical-align:middle;align-items:center;padding:0 10px;display:inline-flex}.el-range-editor.is-active,.el-range-editor.is-active:hover{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-range-editor--large{line-height:var(--el-component-size-large)}.el-range-editor--large.el-input__wrapper{height:var(--el-component-size-large)}.el-range-editor--large .el-range-separator{font-size:14px;line-height:40px}.el-range-editor--large .el-range-input{height:38px;font-size:14px;line-height:38px}.el-range-editor--small{line-height:var(--el-component-size-small)}.el-range-editor--small.el-input__wrapper{height:var(--el-component-size-small)}.el-range-editor--small .el-range-separator{font-size:12px;line-height:24px}.el-range-editor--small .el-range-input{height:22px;font-size:12px;line-height:22px}.el-range-editor.is-disabled{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled:hover,.el-range-editor.is-disabled:focus{border-color:var(--el-disabled-border-color)}.el-range-editor.is-disabled input{background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-range-editor.is-disabled input::placeholder{color:var(--el-text-color-placeholder)}.el-range-editor.is-disabled .el-range-separator{color:var(--el-disabled-text-color)}.el-picker-panel{color:var(--el-text-color-regular);background:var(--el-datepicker-bg-color);border-radius:var(--el-popper-border-radius,var(--el-border-radius-base));line-height:30px}.el-picker-panel .el-time-panel{border:solid 1px var(--el-datepicker-border-color);background-color:var(--el-datepicker-bg-color);box-shadow:var(--el-box-shadow-light);margin:5px 0}.el-picker-panel__body:after,.el-picker-panel__body-wrapper:after{content:"";clear:both;display:table}.el-picker-panel__content{margin:15px;position:relative}.el-picker-panel__footer{border-top:1px solid var(--el-datepicker-inner-border-color);text-align:right;background-color:var(--el-datepicker-bg-color);padding:4px 12px;font-size:0;position:relative}.el-picker-panel__shortcut{width:100%;color:var(--el-datepicker-text-color);text-align:left;cursor:pointer;background-color:#0000;border:0;outline:none;padding-left:12px;font-size:14px;line-height:28px;display:block}.el-picker-panel__shortcut:hover{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__shortcut.active{color:var(--el-datepicker-active-color);background-color:#e6f1fe}.el-picker-panel__btn{border:1px solid var(--el-fill-color-darker);color:var(--el-text-color-primary);cursor:pointer;background-color:#0000;border-radius:2px;outline:none;padding:0 20px;font-size:12px;line-height:24px}.el-picker-panel__btn[disabled]{color:var(--el-text-color-disabled);cursor:not-allowed}.el-picker-panel__icon-btn{color:var(--el-datepicker-icon-color);cursor:pointer;background:0 0;border:0;outline:none;margin-top:8px;padding:1px 6px;font-size:12px;line-height:1}.el-picker-panel__icon-btn:hover,.el-picker-panel__icon-btn:focus-visible{color:var(--el-datepicker-hover-text-color)}.el-picker-panel__icon-btn.is-disabled{color:var(--el-text-color-disabled)}.el-picker-panel__icon-btn.is-disabled:hover{cursor:not-allowed}.el-picker-panel__icon-btn.is-disabled .el-icon{cursor:inherit}.el-picker-panel__icon-btn .el-icon{cursor:pointer;font-size:inherit}.el-picker-panel__link-btn{vertical-align:middle}.el-picker-panel.is-disabled .el-picker-panel__prev-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__prev-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__prev-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__next-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__next-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__next-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__icon-btn{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__icon-btn:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__icon-btn .el-icon{cursor:inherit}.el-picker-panel.is-disabled .el-picker-panel__shortcut{color:var(--el-text-color-disabled)}.el-picker-panel.is-disabled .el-picker-panel__shortcut:hover{cursor:not-allowed}.el-picker-panel.is-disabled .el-picker-panel__shortcut .el-icon{cursor:inherit}.el-picker-panel [slot=sidebar],.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;padding-top:6px;position:absolute;top:0;bottom:0;overflow:auto}.el-picker-panel [slot=sidebar]+.el-picker-panel__body,.el-picker-panel__sidebar+.el-picker-panel__body{margin-left:110px}.el-date-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);--el-fill-color-blank:var(--el-datepicker-bg-color);width:322px}.el-date-picker.has-sidebar.has-time{width:434px}.el-date-picker.has-sidebar{width:438px}.el-date-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-picker .el-picker-panel__content{width:292px}.el-date-picker table{table-layout:fixed;width:100%}.el-date-picker__editor-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-picker__header{text-align:center;padding:12px 12px 0}.el-date-picker__header--bordered{border-bottom:solid 1px var(--el-border-color-lighter);margin-bottom:0;padding-bottom:12px}.el-date-picker__header--bordered+.el-picker-panel__content{margin-top:0}.el-date-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-picker__prev-btn{float:left}.el-date-picker__next-btn{float:right}.el-date-picker__time-wrap{text-align:center;padding:10px}.el-date-picker__time-label{float:left;cursor:pointer;margin-left:10px;line-height:30px}.el-date-picker .el-time-panel{position:absolute}.el-date-picker.is-disabled .el-date-picker__header-label{color:var(--el-text-color-disabled)}.el-date-picker.is-disabled .el-date-picker__header-label:hover{cursor:not-allowed}.el-date-picker.is-disabled .el-date-picker__header-label .el-icon{cursor:inherit}.el-date-range-picker{--el-datepicker-text-color:var(--el-text-color-regular);--el-datepicker-off-text-color:var(--el-text-color-placeholder);--el-datepicker-header-text-color:var(--el-text-color-regular);--el-datepicker-icon-color:var(--el-text-color-primary);--el-datepicker-border-color:var(--el-disabled-border-color);--el-datepicker-inner-border-color:var(--el-border-color-light);--el-datepicker-inrange-bg-color:var(--el-border-color-extra-light);--el-datepicker-inrange-hover-bg-color:var(--el-border-color-extra-light);--el-datepicker-active-color:var(--el-color-primary);--el-datepicker-hover-text-color:var(--el-color-primary);--el-datepicker-bg-color:var(--el-bg-color-overlay);width:646px}.el-date-range-picker.has-sidebar{width:756px}.el-date-range-picker.has-time .el-picker-panel__body-wrapper{position:relative}.el-date-range-picker table{table-layout:fixed;width:100%}.el-date-range-picker .el-picker-panel__body{min-width:513px}.el-date-range-picker .el-picker-panel__content{margin:0}.el-date-range-picker.single-panel{width:322px}.el-date-range-picker.single-panel .el-picker-panel__body{min-width:322px}.el-date-range-picker.single-panel.has-sidebar.has-time{width:434px}.el-date-range-picker.single-panel.has-sidebar{width:438px}.el-date-range-picker.single-panel .el-picker-panel__content{width:292px;margin:15px;padding:0;display:block;position:relative}.el-date-range-picker__header{text-align:center;height:28px;position:relative}.el-date-range-picker__header [class*=arrow-left]{float:left}.el-date-range-picker__header [class*=arrow-right]{float:right}.el-date-range-picker__header div{margin-right:50px;font-size:16px;font-weight:500}.el-date-range-picker__header-label{text-align:center;cursor:pointer;color:var(--el-text-color-regular);padding:0 5px;font-size:16px;font-weight:500;line-height:22px}.el-date-range-picker__header-label:hover{color:var(--el-datepicker-hover-text-color)}.el-date-range-picker__header-label:focus-visible{color:var(--el-datepicker-hover-text-color);outline:none}.el-date-range-picker__header-label.active{color:var(--el-datepicker-active-color)}.el-date-range-picker__content{box-sizing:border-box;width:50%;margin:0;padding:16px;display:table-cell}.el-date-range-picker__content.is-left{border-right:1px solid var(--el-datepicker-inner-border-color)}.el-date-range-picker__content .el-date-range-picker__header div{margin-left:50px;margin-right:50px}.el-date-range-picker__editors-wrap{box-sizing:border-box;display:table-cell}.el-date-range-picker__editors-wrap.is-right{text-align:right}.el-date-range-picker__time-header{border-bottom:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:100%;padding:8px 5px 5px;font-size:12px;display:table;position:relative}.el-date-range-picker__time-header>.el-icon-arrow-right{vertical-align:middle;color:var(--el-datepicker-icon-color);font-size:20px;display:table-cell}.el-date-range-picker__time-picker-wrap{padding:0 5px;display:table-cell;position:relative}.el-date-range-picker__time-picker-wrap .el-picker-panel{z-index:1;background:#fff;position:absolute;top:13px;right:0}.el-date-range-picker__time-picker-wrap .el-time-panel{position:absolute}.el-date-range-picker.is-disabled .el-date-range-picker__header-label{color:var(--el-text-color-disabled)}.el-date-range-picker.is-disabled .el-date-range-picker__header-label:hover{cursor:not-allowed}.el-date-range-picker.is-disabled .el-date-range-picker__header-label .el-icon{cursor:inherit}.el-time-range-picker{width:354px;overflow:visible}.el-time-range-picker__content{text-align:center;z-index:1;padding:10px;position:relative}.el-time-range-picker__cell{box-sizing:border-box;width:50%;margin:0;padding:4px 7px 7px;display:inline-block}.el-time-range-picker__header{text-align:center;margin-bottom:5px;font-size:14px}.el-time-range-picker__body{border:1px solid var(--el-datepicker-border-color);border-radius:2px}.el-time-panel{width:180px;z-index:var(--el-index-top);-webkit-user-select:none;user-select:none;box-sizing:content-box;border-radius:2px;position:relative;left:0}.el-time-panel__content{font-size:0;position:relative;overflow:hidden}.el-time-panel__content:after,.el-time-panel__content:before{content:"";z-index:-1;box-sizing:border-box;text-align:left;height:32px;margin-top:-16px;padding-top:6px;position:absolute;top:50%;left:0;right:0}.el-time-panel__content:after{margin-left:12%;margin-right:12%;left:50%}.el-time-panel__content:before{border-top:1px solid var(--el-border-color-light);border-bottom:1px solid var(--el-border-color-light);margin-left:12%;margin-right:12%;padding-left:50%}.el-time-panel__content.has-seconds:after{left:66.6667%}.el-time-panel__content.has-seconds:before{padding-left:33.3333%}.el-time-panel__footer{border-top:1px solid var(--el-timepicker-inner-border-color,var(--el-border-color-light));text-align:right;box-sizing:border-box;height:36px;padding:4px;line-height:25px}.el-time-panel__btn{cursor:pointer;color:var(--el-text-color-primary);background-color:#0000;border:none;outline:none;margin:0 5px;padding:0 5px;font-size:12px;line-height:28px}.el-time-panel__btn.confirm{color:var(--el-timepicker-active-color,var(--el-color-primary));font-weight:800}.el-picker-panel.is-border{border:solid 1px var(--el-border-color-lighter)}.el-picker-panel.is-border .el-picker-panel__body-wrapper{position:relative}.el-picker-panel.is-border.el-picker-panel [slot=sidebar],.el-picker-panel.is-border.el-picker-panel__sidebar{border-right:1px solid var(--el-datepicker-inner-border-color);box-sizing:border-box;width:110px;height:100%;padding-top:6px;position:absolute;top:0;overflow:auto}.el-descriptions{--el-descriptions-table-border:1px solid var(--el-border-color-lighter);--el-descriptions-item-bordered-label-background:var(--el-fill-color-light);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary)}.el-descriptions__header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.el-descriptions__title{color:var(--el-text-color-primary);font-size:16px;font-weight:700}.el-descriptions__body{background-color:var(--el-fill-color-blank)}.el-descriptions__body .el-descriptions__table{border-collapse:collapse;width:100%}.el-descriptions__body .el-descriptions__table .el-descriptions__cell{box-sizing:border-box;text-align:left;font-size:14px;line-height:23px}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-left{text-align:left}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-center{text-align:center}.el-descriptions__body .el-descriptions__table .el-descriptions__cell.is-right{text-align:right}.el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{border:var(--el-descriptions-table-border);padding:8px 11px}.el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:12px}.el-descriptions--large{font-size:14px}.el-descriptions--large .el-descriptions__header{margin-bottom:20px}.el-descriptions--large .el-descriptions__header .el-descriptions__title{font-size:16px}.el-descriptions--large .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:14px}.el-descriptions--large .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:12px 15px}.el-descriptions--large .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:16px}.el-descriptions--small{font-size:12px}.el-descriptions--small .el-descriptions__header{margin-bottom:12px}.el-descriptions--small .el-descriptions__header .el-descriptions__title{font-size:14px}.el-descriptions--small .el-descriptions__body .el-descriptions__table .el-descriptions__cell{font-size:12px}.el-descriptions--small .el-descriptions__body .el-descriptions__table.is-bordered .el-descriptions__cell{padding:4px 7px}.el-descriptions--small .el-descriptions__body .el-descriptions__table:not(.is-bordered) .el-descriptions__cell{padding-bottom:8px}.el-descriptions__label.el-descriptions__cell.is-bordered-label{color:var(--el-text-color-regular);background:var(--el-descriptions-item-bordered-label-background);font-weight:700}.el-descriptions__label:not(.is-bordered-label){color:var(--el-text-color-primary);margin-right:16px}.el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:6px}.el-descriptions__content.el-descriptions__cell.is-bordered-content{color:var(--el-text-color-primary)}.el-descriptions__content:not(.is-bordered-label){color:var(--el-text-color-regular)}.el-descriptions--large .el-descriptions__label:not(.is-bordered-label){margin-right:16px}.el-descriptions--large .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:8px}.el-descriptions--small .el-descriptions__label:not(.is-bordered-label){margin-right:12px}.el-descriptions--small .el-descriptions__label.el-descriptions__cell:not(.is-bordered-label).is-vertical-label{padding-bottom:4px}:root{--el-popup-modal-bg-color:var(--el-color-black);--el-popup-modal-opacity:.5}.v-modal-enter{animation:v-modal-in var(--el-transition-duration-fast) ease}.v-modal-leave{animation:v-modal-out var(--el-transition-duration-fast) ease forwards}@keyframes v-modal-in{0%{opacity:0}}@keyframes v-modal-out{to{opacity:0}}.v-modal{width:100%;height:100%;opacity:var(--el-popup-modal-opacity);background:var(--el-popup-modal-bg-color);position:fixed;top:0;left:0}.el-popup-parent--hidden{overflow:hidden}.el-dialog{--el-dialog-width:50%;--el-dialog-margin-top:15vh;--el-dialog-bg-color:var(--el-bg-color);--el-dialog-box-shadow:var(--el-box-shadow);--el-dialog-title-font-size:var(--el-font-size-large);--el-dialog-content-font-size:14px;--el-dialog-font-line-height:var(--el-font-line-height-primary);--el-dialog-padding-primary:16px;--el-dialog-border-radius:var(--el-border-radius-base);margin:var(--el-dialog-margin-top,15vh) auto 50px;background:var(--el-dialog-bg-color);border-radius:var(--el-dialog-border-radius);box-shadow:var(--el-dialog-box-shadow);box-sizing:border-box;padding:var(--el-dialog-padding-primary);width:var(--el-dialog-width,50%);overflow-wrap:break-word;position:relative}.el-dialog:focus{outline:none!important}.el-dialog.is-align-center{margin:auto}.el-dialog.is-fullscreen{--el-dialog-width:100%;--el-dialog-margin-top:0;border-radius:0;height:100%;margin-bottom:0;overflow:auto}.el-dialog__wrapper{margin:0;position:fixed;inset:0;overflow:auto}.el-dialog.is-draggable .el-dialog__header{cursor:move;-webkit-user-select:none;user-select:none}.el-dialog__header{padding-bottom:var(--el-dialog-padding-primary)}.el-dialog__header.show-close{padding-right:calc(var(--el-dialog-padding-primary) + var(--el-message-close-size,16px))}.el-dialog__headerbtn{cursor:pointer;width:48px;height:48px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-dialog__headerbtn .el-dialog__close{color:var(--el-color-info);font-size:inherit}.el-dialog__headerbtn:focus .el-dialog__close,.el-dialog__headerbtn:hover .el-dialog__close{color:var(--el-color-primary)}.el-dialog__title{line-height:var(--el-dialog-font-line-height);font-size:var(--el-dialog-title-font-size);color:var(--el-text-color-primary)}.el-dialog__body{color:var(--el-text-color-regular);font-size:var(--el-dialog-content-font-size)}.el-dialog__footer{padding-top:var(--el-dialog-padding-primary);text-align:right;box-sizing:border-box}.el-dialog--center{text-align:center}.el-dialog--center .el-dialog__body{text-align:initial}.el-dialog--center .el-dialog__footer{text-align:inherit}.el-modal-dialog.is-penetrable{pointer-events:none}.el-modal-dialog.is-penetrable .el-dialog{pointer-events:auto}.el-overlay-dialog{position:fixed;inset:0;overflow:auto}.el-overlay-dialog.is-closing .el-dialog{pointer-events:none}.dialog-fade-enter-active{animation:modal-fade-in var(--el-transition-duration)}.dialog-fade-enter-active .el-overlay-dialog{animation:dialog-fade-in var(--el-transition-duration)}.dialog-fade-leave-active{animation:modal-fade-out var(--el-transition-duration)}.dialog-fade-leave-active .el-overlay-dialog{animation:dialog-fade-out var(--el-transition-duration)}@keyframes dialog-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes dialog-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}@keyframes modal-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-fade-out{0%{opacity:1}to{opacity:0}}.el-divider{position:relative}.el-divider--horizontal{border-top:1px var(--el-border-color) var(--el-border-style);width:100%;height:1px;margin:24px 0;display:block}.el-divider--vertical{vertical-align:middle;border-left:1px var(--el-border-color) var(--el-border-style);width:1px;height:1em;margin:0 8px;display:inline-block;position:relative}.el-divider__text{background-color:var(--el-bg-color);color:var(--el-text-color-primary);padding:0 20px;font-size:14px;font-weight:500;position:absolute}.el-divider__text.is-left{left:20px;transform:translateY(-50%)}.el-divider__text.is-center{left:50%;transform:translate(-50%)translateY(-50%)}.el-divider__text.is-right{right:20px;transform:translateY(-50%)}.el-overlay.is-drawer{overflow:hidden}.el-drawer{--el-drawer-bg-color:var(--el-dialog-bg-color,var(--el-bg-color));--el-drawer-padding-primary:var(--el-dialog-padding-primary,20px);--el-drawer-dragger-size:8px;box-sizing:border-box;background-color:var(--el-drawer-bg-color);box-shadow:var(--el-box-shadow-dark);transition:all var(--el-transition-duration);flex-direction:column;display:flex;position:absolute}.el-drawer .rtl,.el-drawer .ltr,.el-drawer .ttb,.el-drawer .btt{transform:translate(0)}.el-drawer__sr-focus:focus{outline:none!important}.el-drawer__header{color:var(--el-text-color-primary);padding:var(--el-drawer-padding-primary);align-items:center;margin-bottom:32px;padding-bottom:0;display:flex;overflow:hidden}.el-drawer__header>:first-child{flex:1}.el-drawer__title{line-height:inherit;flex:1;margin:0;font-size:16px}.el-drawer__footer{padding:var(--el-drawer-padding-primary);text-align:right;padding-top:10px;overflow:hidden}.el-drawer__close-btn{cursor:pointer;font-size:var(--el-font-size-extra-large);color:inherit;background-color:#0000;border:none;outline:none;display:inline-flex}.el-drawer__close-btn:focus i,.el-drawer__close-btn:hover i{color:var(--el-color-primary)}.el-drawer__body{padding:var(--el-drawer-padding-primary);flex:1;overflow:auto}.el-drawer__body>*{box-sizing:border-box}.el-drawer.is-dragging{transition:none}.el-drawer__dragger{-webkit-user-select:none;user-select:none;background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:before{content:"";background-color:#0000;transition:all .2s;position:absolute}.el-drawer__dragger:hover:before{background-color:var(--el-color-primary)}.el-drawer.ltr,.el-drawer.rtl{height:100%;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger,.el-drawer.rtl>.el-drawer__dragger{height:100%;width:var(--el-drawer-dragger-size);cursor:ew-resize;top:0;bottom:0}.el-drawer.ltr>.el-drawer__dragger:before,.el-drawer.rtl>.el-drawer__dragger:before{width:3px;top:0;bottom:0}.el-drawer.ttb,.el-drawer.btt{width:100%;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger,.el-drawer.btt>.el-drawer__dragger{width:100%;height:var(--el-drawer-dragger-size);cursor:ns-resize;left:0;right:0}.el-drawer.ttb>.el-drawer__dragger:before,.el-drawer.btt>.el-drawer__dragger:before{height:3px;left:0;right:0}.el-drawer.ltr{left:0}.el-drawer.ltr>.el-drawer__dragger{right:0}.el-drawer.ltr>.el-drawer__dragger:before{right:-2px}.el-drawer.rtl{right:0}.el-drawer.rtl>.el-drawer__dragger{left:0}.el-drawer.rtl>.el-drawer__dragger:before{left:-2px}.el-drawer.ttb{top:0}.el-drawer.ttb>.el-drawer__dragger{bottom:0}.el-drawer.ttb>.el-drawer__dragger:before{bottom:-2px}.el-drawer.btt{bottom:0}.el-drawer.btt>.el-drawer__dragger{top:0}.el-drawer.btt>.el-drawer__dragger:before{top:-2px}.el-modal-drawer.is-penetrable{pointer-events:none}.el-modal-drawer.is-penetrable .el-drawer{pointer-events:auto}.el-drawer-fade-enter-active,.el-drawer-fade-leave-active{transition:all var(--el-transition-duration)}.el-drawer-fade-enter-from,.el-drawer-fade-enter-active,.el-drawer-fade-enter-to,.el-drawer-fade-leave-from,.el-drawer-fade-leave-active,.el-drawer-fade-leave-to{overflow:hidden!important}.el-drawer-fade-enter-from,.el-drawer-fade-leave-to{background-color:#0000!important}.el-drawer-fade-enter-from .rtl,.el-drawer-fade-leave-to .rtl{transform:translate(100%)}.el-drawer-fade-enter-from .ltr,.el-drawer-fade-leave-to .ltr{transform:translate(-100%)}.el-drawer-fade-enter-from .ttb,.el-drawer-fade-leave-to .ttb{transform:translateY(-100%)}.el-drawer-fade-enter-from .btt,.el-drawer-fade-leave-to .btt{transform:translateY(100%)}.el-dropdown{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10;color:var(--el-text-color-regular);font-size:var(--el-font-size-base);vertical-align:top;line-height:1;display:inline-flex;position:relative}.el-dropdown.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-dropdown__popper{--el-dropdown-menu-box-shadow:var(--el-box-shadow-light);--el-dropdown-menuItem-hover-fill:var(--el-color-primary-light-9);--el-dropdown-menuItem-hover-color:var(--el-color-primary);--el-dropdown-menu-index:10}.el-dropdown__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-dropdown-menu-box-shadow)}.el-dropdown__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-dropdown__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-dropdown__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-dropdown__popper .el-dropdown-menu{border:none}.el-dropdown__popper .el-dropdown__popper-selfdefine{outline:none}.el-dropdown__popper .el-scrollbar__bar{z-index:calc(var(--el-dropdown-menu-index) + 1)}.el-dropdown__popper .el-dropdown__list{box-sizing:border-box;margin:0;padding:0;list-style:none}.el-dropdown .el-dropdown__caret-button{border-left:none;justify-content:center;align-items:center;width:32px;padding-left:0;padding-right:0;display:inline-flex}.el-dropdown .el-dropdown__caret-button>span{display:inline-flex}.el-dropdown .el-dropdown__caret-button:before{content:"";background:var(--el-overlay-color-lighter);width:1px;display:block;position:absolute;top:-1px;bottom:-1px;left:0}.el-dropdown .el-dropdown__caret-button.el-button:before{background:var(--el-border-color);opacity:.5}.el-dropdown .el-dropdown__caret-button .el-dropdown__icon{font-size:inherit;padding-left:0}.el-dropdown .el-dropdown-selfdefine{outline:none}.el-dropdown--large .el-dropdown__caret-button{width:40px}.el-dropdown--small .el-dropdown__caret-button{width:24px}.el-dropdown-menu{z-index:var(--el-dropdown-menu-index);background-color:var(--el-bg-color-overlay);border-radius:var(--el-border-radius-base);box-shadow:none;border:none;margin:0;padding:5px 0;list-style:none;position:relative;top:0;left:0}.el-dropdown-menu__item{white-space:nowrap;line-height:22px;font-size:var(--el-font-size-base);color:var(--el-text-color-regular);cursor:pointer;outline:none;align-items:center;margin:0;padding:5px 16px;list-style:none;display:flex}.el-dropdown-menu__item:not(.is-disabled):hover,.el-dropdown-menu__item:not(.is-disabled):focus{background-color:var(--el-dropdown-menuItem-hover-fill);color:var(--el-dropdown-menuItem-hover-color)}.el-dropdown-menu__item i{margin-right:5px}.el-dropdown-menu__item--divided{border-top:1px solid var(--el-border-color-lighter);margin:6px 0}.el-dropdown-menu__item.is-disabled{cursor:not-allowed;color:var(--el-text-color-disabled)}.el-dropdown-menu--large{padding:7px 0}.el-dropdown-menu--large .el-dropdown-menu__item{padding:7px 20px;font-size:14px;line-height:22px}.el-dropdown-menu--large .el-dropdown-menu__item--divided{margin:8px 0}.el-dropdown-menu--small{padding:3px 0}.el-dropdown-menu--small .el-dropdown-menu__item{padding:2px 12px;font-size:12px;line-height:20px}.el-dropdown-menu--small .el-dropdown-menu__item--divided{margin:4px 0}.el-empty{--el-empty-padding:40px 0;--el-empty-image-width:160px;--el-empty-description-margin-top:20px;--el-empty-bottom-margin-top:20px;--el-empty-fill-color-0:var(--el-color-white);--el-empty-fill-color-1:#fcfcfd;--el-empty-fill-color-2:#f8f9fb;--el-empty-fill-color-3:#f7f8fc;--el-empty-fill-color-4:#eeeff3;--el-empty-fill-color-5:#edeef2;--el-empty-fill-color-6:#e9ebef;--el-empty-fill-color-7:#e5e7e9;--el-empty-fill-color-8:#e0e3e9;--el-empty-fill-color-9:#d5d7de;text-align:center;box-sizing:border-box;padding:var(--el-empty-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-empty__image{width:var(--el-empty-image-width)}.el-empty__image img{-webkit-user-select:none;user-select:none;vertical-align:top;object-fit:contain;width:100%;height:100%}.el-empty__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;vertical-align:top;width:100%;height:100%}.el-empty__description{margin-top:var(--el-empty-description-margin-top)}.el-empty__description p{font-size:var(--el-font-size-base);color:var(--el-text-color-secondary);margin:0}.el-empty__bottom{margin-top:var(--el-empty-bottom-margin-top)}.el-footer{--el-footer-padding:0 20px;--el-footer-height:60px;padding:var(--el-footer-padding);box-sizing:border-box;height:var(--el-footer-height);flex-shrink:0}.el-form-item{--font-size:14px;margin-bottom:18px;display:flex}.el-form-item .el-form-item{margin-bottom:0}.el-form-item .el-input__validateIcon{display:none}.el-form-item--large{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:22px}.el-form-item--large .el-form-item__label{height:40px;line-height:40px}.el-form-item--large .el-form-item__content{line-height:40px}.el-form-item--large .el-form-item__error{padding-top:4px}.el-form-item--default{--font-size:14px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--default .el-form-item__label{height:32px;line-height:32px}.el-form-item--default .el-form-item__content{line-height:32px}.el-form-item--default .el-form-item__error{padding-top:2px}.el-form-item--small{--font-size:12px;--el-form-label-font-size:var(--font-size);margin-bottom:18px}.el-form-item--small .el-form-item__label{height:24px;line-height:24px}.el-form-item--small .el-form-item__content{line-height:24px}.el-form-item--small .el-form-item__error{padding-top:2px}.el-form-item--label-left .el-form-item__label{text-align:left;justify-content:flex-start}.el-form-item--label-right .el-form-item__label{text-align:right;justify-content:flex-end}.el-form-item--label-top{display:block}.el-form-item--label-top .el-form-item__label{text-align:left;width:fit-content;height:auto;margin-bottom:8px;padding-right:0;line-height:22px;display:block}.el-form-item__label-wrap{display:flex}.el-form-item__label{font-size:var(--el-form-label-font-size);color:var(--el-text-color-regular);box-sizing:border-box;flex:none;align-items:flex-start;height:32px;padding:0 12px 0 0;line-height:32px;display:inline-flex}.el-form-item__content{line-height:32px;font-size:var(--font-size);flex-wrap:wrap;flex:1;align-items:center;min-width:0;display:flex;position:relative}.el-form-item__content .el-input-group{vertical-align:top}.el-form-item__error{color:var(--el-color-danger);padding-top:2px;font-size:12px;line-height:1;position:absolute;top:100%;left:0}.el-form-item__error--inline{margin-left:10px;display:inline-block;position:relative;top:auto;left:auto}.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label:before,.el-form-item.is-required:not(.is-no-asterisk).asterisk-left>.el-form-item__label-wrap>.el-form-item__label:before{content:"*";color:var(--el-color-danger);margin-right:4px}.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label:after,.el-form-item.is-required:not(.is-no-asterisk).asterisk-right>.el-form-item__label-wrap>.el-form-item__label:after{content:"*";color:var(--el-color-danger);margin-left:4px}.el-form-item.is-error .el-form-item__content .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner,.el-form-item.is-error .el-form-item__content .el-textarea__inner:hover,.el-form-item.is-error .el-form-item__content .el-textarea__inner:focus,.el-form-item.is-error .el-form-item__content .el-textarea__inner.is-focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper,.el-form-item.is-error .el-form-item__content .el-select__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-select__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-select__wrapper.is-focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:hover,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper:focus,.el-form-item.is-error .el-form-item__content .el-input-tag__wrapper.is-focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:hover,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field:focus,.el-form-item.is-error .el-form-item__content :not(.el-input-otp--underlined) .el-input-otp__input-field.is-focus,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:hover:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field:focus:after,.el-form-item.is-error .el-form-item__content .el-input-otp--underlined .el-input-otp__input-field.is-focus:after{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__wrapper,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__wrapper{box-shadow:inset 0 0 0 1px #0000}.el-form-item.is-error .el-form-item__content .el-input-group__append .el-input__validateIcon,.el-form-item.is-error .el-form-item__content .el-input-group__prepend .el-input__validateIcon{display:none}.el-form-item.is-error .el-form-item__content .el-input__validateIcon{color:var(--el-color-danger)}.el-form-item--feedback .el-input__validateIcon{display:inline-flex}.el-form{--el-form-label-font-size:var(--el-font-size-base);--el-form-inline-content-width:220px}.el-form--inline .el-form-item{vertical-align:middle;margin-right:32px;display:inline-flex}.el-form--inline .el-form-item:last-child{margin-right:0}.el-form--inline.el-form--label-top{flex-wrap:wrap;display:flex}.el-form--inline.el-form--label-top .el-form-item{display:block}.el-header{--el-header-padding:0 20px;--el-header-height:60px;padding:var(--el-header-padding);box-sizing:border-box;height:var(--el-header-height);flex-shrink:0}.el-image-viewer__wrapper{position:fixed;inset:0}.el-image-viewer__wrapper:focus{outline:none!important}.el-image-viewer__btn{z-index:1;opacity:.8;cursor:pointer;box-sizing:border-box;-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-image-viewer__btn .el-icon{cursor:pointer}.el-image-viewer__close{width:40px;height:40px;font-size:40px;top:40px;right:40px}.el-image-viewer__canvas{-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:static}.el-image-viewer__actions{background-color:var(--el-text-color-regular);border-color:#fff;border-radius:22px;height:44px;padding:0 23px;bottom:30px;left:50%;transform:translate(-50%)}.el-image-viewer__actions__inner{cursor:default;color:#fff;justify-content:space-around;align-items:center;gap:22px;width:100%;height:100%;padding:0 6px;font-size:23px;display:flex}.el-image-viewer__actions__divider{margin:0 -6px}.el-image-viewer__progress{cursor:default;color:#fff;bottom:90px;left:50%;transform:translate(-50%)}.el-image-viewer__prev{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;left:40px;transform:translateY(-50%)}.el-image-viewer__next{text-indent:2px;color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px;top:50%;right:40px;transform:translateY(-50%)}.el-image-viewer__close{color:#fff;background-color:var(--el-text-color-regular);border-color:#fff;width:44px;height:44px;font-size:24px}.el-image-viewer__mask{opacity:.5;background:#000;width:100%;height:100%;position:absolute;top:0;left:0}.el-image-viewer-parent--hidden{overflow:hidden}.viewer-fade-enter-active{animation:viewer-fade-in var(--el-transition-duration)}.viewer-fade-leave-active{animation:viewer-fade-out var(--el-transition-duration)}@keyframes viewer-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}@keyframes viewer-fade-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translateY(-20px)}}.el-image__error,.el-image__placeholder,.el-image__wrapper,.el-image__inner{width:100%;height:100%}.el-image{display:inline-block;position:relative;overflow:hidden}.el-image__inner{vertical-align:top;opacity:1}.el-image__inner.is-loading{opacity:0}.el-image__wrapper{position:absolute;top:0;left:0}.el-image__placeholder{background:var(--el-fill-color-light)}.el-image__error{background:var(--el-fill-color-light);color:var(--el-text-color-placeholder);vertical-align:middle;justify-content:center;align-items:center;font-size:14px;display:flex}.el-image__preview{cursor:pointer}.el-textarea{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;vertical-align:bottom;width:100%;font-size:var(--el-font-size-base);display:inline-block;position:relative}.el-textarea__inner{resize:vertical;box-sizing:border-box;width:100%;line-height:1.5;font-size:inherit;color:var(--el-input-text-color,var(--el-text-color-regular));background-color:var(--el-input-bg-color,var(--el-fill-color-blank));-webkit-appearance:none;box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;border-radius:var(--el-input-border-radius,var(--el-border-radius-base));transition:var(--el-transition-box-shadow);background-image:none;border:none;padding:5px 11px;font-family:inherit;display:block;position:relative}.el-textarea__inner.is-clearable{padding:5px 26px 5px 11px}.el-textarea__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-textarea__inner:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-textarea__inner:focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset;outline:none}.el-textarea__clear{color:var(--el-input-icon-color);cursor:pointer;font-size:14px;position:absolute;top:15px;right:11px;transform:translateY(-50%)}.el-textarea__clear:hover{color:var(--el-input-clear-hover-color)}.el-textarea .el-input__count{color:var(--el-color-info);background:var(--el-fill-color-blank);font-size:12px;line-height:14px;position:absolute;bottom:5px;right:10px}.el-textarea .el-input__count.is-outside{top:100%;right:0;bottom:unset;background:0 0;padding-top:2px;line-height:1;position:absolute}.el-textarea.is-disabled .el-textarea__inner{box-shadow:0 0 0 1px var(--el-disabled-border-color) inset;background-color:var(--el-disabled-bg-color);color:var(--el-disabled-text-color);cursor:not-allowed}.el-textarea.is-disabled .el-textarea__inner::placeholder{color:var(--el-text-color-placeholder)}.el-textarea.is-exceed .el-textarea__inner{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-textarea.is-exceed .el-input__count{color:var(--el-color-danger)}.el-input{--el-input-text-color:var(--el-text-color-regular);--el-input-border:var(--el-border);--el-input-hover-border:var(--el-border-color-hover);--el-input-focus-border:var(--el-color-primary);--el-input-transparent-border:0 0 0 1px transparent inset;--el-input-border-color:var(--el-border-color);--el-input-border-radius:var(--el-border-radius-base);--el-input-bg-color:var(--el-fill-color-blank);--el-input-icon-color:var(--el-text-color-placeholder);--el-input-placeholder-color:var(--el-text-color-placeholder);--el-input-hover-border-color:var(--el-border-color-hover);--el-input-clear-hover-color:var(--el-text-color-secondary);--el-input-focus-border-color:var(--el-color-primary);--el-input-width:100%;--el-input-height:var(--el-component-size);font-size:var(--el-font-size-base);width:var(--el-input-width);line-height:var(--el-input-height);box-sizing:border-box;vertical-align:middle;display:inline-flex;position:relative}.el-input::-webkit-scrollbar{z-index:11;width:6px}.el-input::-webkit-scrollbar:horizontal{height:6px}.el-input::-webkit-scrollbar-thumb{background:var(--el-text-color-disabled);border-radius:5px;width:6px}.el-input::-webkit-scrollbar-corner{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track{background:var(--el-fill-color-blank)}.el-input::-webkit-scrollbar-track-piece{background:var(--el-fill-color-blank);width:6px}.el-input .el-input__clear,.el-input .el-input__password{color:var(--el-input-icon-color);cursor:pointer;font-size:14px}.el-input .el-input__clear:hover,.el-input .el-input__password:hover{color:var(--el-input-clear-hover-color)}.el-input .el-input__count{height:100%;color:var(--el-color-info);align-items:center;font-size:12px;display:inline-flex}.el-input .el-input__count .el-input__count-inner{background:var(--el-fill-color-blank);line-height:initial;padding-left:8px;display:inline-block}.el-input .el-input__count.is-outside{height:unset;padding-top:2px;position:absolute;top:100%;right:0}.el-input .el-input__count.is-outside .el-input__count-inner{background:0 0;padding-left:0;line-height:1}.el-input__wrapper{background-color:var(--el-input-bg-color,var(--el-fill-color-blank));border-radius:var(--el-input-border-radius,var(--el-border-radius-base));cursor:text;transition:var(--el-transition-box-shadow);box-shadow:0 0 0 1px var(--el-input-border-color,var(--el-border-color)) inset;background-image:none;flex-grow:1;justify-content:center;align-items:center;padding:1px 11px;display:inline-flex;transform:translate(0)}.el-input__wrapper:hover{box-shadow:0 0 0 1px var(--el-input-hover-border-color) inset}.el-input__wrapper.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input{--el-input-inner-height:calc(var(--el-input-height,32px) - 2px)}.el-input__inner{-webkit-appearance:none;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));font-size:inherit;height:var(--el-input-inner-height);line-height:var(--el-input-inner-height);box-sizing:border-box;background:0 0;border:none;outline:none;flex-grow:1;padding:0}.el-input__inner:focus{outline:none}.el-input__inner::placeholder{color:var(--el-input-placeholder-color,var(--el-text-color-placeholder))}.el-input__inner[type=password]::-ms-reveal{display:none}.el-input__inner[type=number]{line-height:1}.el-input__prefix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__prefix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__prefix-inner>:last-child{margin-right:8px}.el-input__prefix-inner>:first-child,.el-input__prefix-inner>:first-child.el-input__icon{margin-left:0}.el-input__suffix{white-space:nowrap;height:100%;line-height:var(--el-input-inner-height);text-align:center;color:var(--el-input-icon-color,var(--el-text-color-placeholder));transition:all var(--el-transition-duration);pointer-events:none;flex-wrap:nowrap;flex-shrink:0;display:inline-flex}.el-input__suffix-inner{pointer-events:all;justify-content:center;align-items:center;display:inline-flex}.el-input__suffix-inner>:first-child{margin-left:8px}.el-input .el-input__icon{height:inherit;line-height:inherit;transition:all var(--el-transition-duration);justify-content:center;align-items:center;margin-left:8px;display:flex}.el-input .el-input__clear{transition:color var(--el-transition-duration)}.el-input__validateIcon{pointer-events:none}.el-input.is-active .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-color, ) inset}.el-input.is-disabled{cursor:not-allowed}.el-input.is-disabled .el-input__wrapper{background-color:var(--el-disabled-bg-color);cursor:not-allowed;box-shadow:0 0 0 1px var(--el-disabled-border-color) inset}.el-input.is-disabled .el-input__inner{color:var(--el-disabled-text-color);-webkit-text-fill-color:var(--el-disabled-text-color);cursor:not-allowed}.el-input.is-disabled .el-input__inner::placeholder{color:var(--el-text-color-placeholder)}.el-input.is-disabled .el-input__icon{cursor:not-allowed}.el-input.is-disabled .el-input__prefix-inner,.el-input.is-disabled .el-input__suffix-inner{pointer-events:none}.el-input.is-exceed .el-input__wrapper{box-shadow:0 0 0 1px var(--el-color-danger) inset}.el-input.is-exceed .el-input__suffix .el-input__count{color:var(--el-color-danger)}.el-input--large{--el-input-height:var(--el-component-size-large);font-size:14px}.el-input--large .el-input__wrapper{padding:1px 15px}.el-input--large{--el-input-inner-height:calc(var(--el-input-height,40px) - 2px)}.el-input--small{--el-input-height:var(--el-component-size-small);font-size:12px}.el-input--small .el-input__wrapper{padding:1px 7px}.el-input--small{--el-input-inner-height:calc(var(--el-input-height,24px) - 2px)}.el-input-group{align-items:stretch;width:100%;display:inline-flex}.el-input-group__append,.el-input-group__prepend{background-color:var(--el-fill-color-light);color:var(--el-color-info);border-radius:var(--el-input-border-radius);white-space:nowrap;justify-content:center;align-items:center;min-height:100%;padding:0 20px;display:inline-flex;position:relative}.el-input-group__append:focus,.el-input-group__prepend:focus{outline:none}.el-input-group__append .el-select,.el-input-group__append .el-button,.el-input-group__prepend .el-select,.el-input-group__prepend .el-button{flex:1;margin:0 -20px;display:inline-block}.el-input-group__append button.el-button,.el-input-group__append button.el-button:hover,.el-input-group__append div.el-select .el-select__wrapper,.el-input-group__append div.el-select:hover .el-select__wrapper,.el-input-group__prepend button.el-button,.el-input-group__prepend button.el-button:hover,.el-input-group__prepend div.el-select .el-select__wrapper,.el-input-group__prepend div.el-select:hover .el-select__wrapper{color:inherit;background-color:#0000;border-color:#0000}.el-input-group__append .el-button,.el-input-group__append .el-input,.el-input-group__prepend .el-button,.el-input-group__prepend .el-input{font-size:inherit}.el-input-group__prepend{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-right:0;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group__append{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-left:0;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend>.el-input__wrapper{border-top-left-radius:0;border-bottom-left-radius:0}.el-input-group--prepend .el-input-group__prepend .el-select .el-select__wrapper{box-shadow:1px 0 0 0 var(--el-input-border-color) inset, 0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset;border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append>.el-input__wrapper{border-top-right-radius:0;border-bottom-right-radius:0}.el-input-group--append .el-input-group__append .el-select .el-select__wrapper{box-shadow:0 1px 0 0 var(--el-input-border-color) inset, 0 -1px 0 0 var(--el-input-border-color) inset, -1px 0 0 0 var(--el-input-border-color) inset;border-top-left-radius:0;border-bottom-left-radius:0}.el-input-hidden{display:none!important}.el-input-number{vertical-align:middle;width:150px;line-height:30px;display:inline-flex;position:relative}.el-input-number .el-input__wrapper{padding-left:42px;padding-right:42px}.el-input-number .el-input__inner{-webkit-appearance:none;-moz-appearance:textfield;text-align:center;line-height:1}.el-input-number .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-input-number .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-input-number.is-left .el-input__inner{text-align:left}.el-input-number.is-right .el-input__inner{text-align:right}.el-input-number.is-center .el-input__inner{text-align:center}.el-input-number__increase,.el-input-number__decrease{z-index:1;background:var(--el-fill-color-light);width:32px;height:auto;color:var(--el-text-color-regular);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;font-size:13px;display:flex;position:absolute;top:1px;bottom:1px}.el-input-number__increase:hover,.el-input-number__decrease:hover{color:var(--el-color-primary)}.el-input-number__increase:hover~.el-input:not(.is-disabled) .el-input__wrapper,.el-input-number__decrease:hover~.el-input:not(.is-disabled) .el-input__wrapper{box-shadow:0 0 0 1px var(--el-input-focus-border-color,var(--el-color-primary)) inset}.el-input-number__increase.is-disabled,.el-input-number__decrease.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-input-number__increase{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0;border-left:var(--el-border);right:1px}.el-input-number__decrease{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);border-right:var(--el-border);left:1px}.el-input-number.is-disabled .el-input-number__increase,.el-input-number.is-disabled .el-input-number__decrease{border-color:var(--el-disabled-border-color);color:var(--el-disabled-border-color)}.el-input-number.is-disabled .el-input-number__increase:hover,.el-input-number.is-disabled .el-input-number__decrease:hover{color:var(--el-disabled-border-color);cursor:not-allowed}.el-input-number--large{width:180px;line-height:38px}.el-input-number--large .el-input-number__increase,.el-input-number--large .el-input-number__decrease{width:40px;font-size:14px}.el-input-number--large.is-controls-right .el-input--large .el-input__wrapper{padding-right:47px}.el-input-number--large .el-input--large .el-input__wrapper{padding-left:47px;padding-right:47px}.el-input-number--small{width:120px;line-height:22px}.el-input-number--small .el-input-number__increase,.el-input-number--small .el-input-number__decrease{width:24px;font-size:12px}.el-input-number--small.is-controls-right .el-input--small .el-input__wrapper{padding-right:31px}.el-input-number--small .el-input--small .el-input__wrapper{padding-left:31px;padding-right:31px}.el-input-number--small .el-input-number__increase [class*=el-icon],.el-input-number--small .el-input-number__decrease [class*=el-icon]{transform:scale(.9)}.el-input-number.is-without-controls .el-input__wrapper{padding-left:15px;padding-right:15px}.el-input-number.is-controls-right .el-input__wrapper{padding-left:15px;padding-right:42px}.el-input-number.is-controls-right .el-input-number__increase,.el-input-number.is-controls-right .el-input-number__decrease{--el-input-number-controls-height:15px;height:var(--el-input-number-controls-height);line-height:var(--el-input-number-controls-height)}.el-input-number.is-controls-right .el-input-number__increase [class*=el-icon],.el-input-number.is-controls-right .el-input-number__decrease [class*=el-icon]{transform:scale(.8)}.el-input-number.is-controls-right .el-input-number__increase{border-radius:0 var(--el-border-radius-base) 0 0;border-bottom:var(--el-border);bottom:auto;left:auto}.el-input-number.is-controls-right .el-input-number__decrease{border-right:none;border-left:var(--el-border);border-radius:0 0 var(--el-border-radius-base) 0;top:auto;left:auto;right:1px}.el-input-number.is-controls-right[class*=large] [class*=increase],.el-input-number.is-controls-right[class*=large] [class*=decrease]{--el-input-number-controls-height:19px}.el-input-number.is-controls-right[class*=small] [class*=increase],.el-input-number.is-controls-right[class*=small] [class*=decrease]{--el-input-number-controls-height:11px}.el-input-tag{--el-input-tag-border-color-hover:var(--el-border-color-hover);--el-input-tag-placeholder-color:var(--el-text-color-placeholder);--el-input-tag-disabled-color:var(--el-disabled-text-color);--el-input-tag-disabled-border:var(--el-disabled-border-color);--el-input-tag-font-size:var(--el-font-size-base);--el-input-tag-close-hover-color:var(--el-text-color-secondary);--el-input-tag-text-color:var(--el-text-color-regular);--el-input-tag-input-focus-border-color:var(--el-color-primary);--el-input-tag-width:100%;--el-input-tag-mini-height:var(--el-component-size);--el-input-tag-gap:6px;--el-input-tag-padding:4px;--el-input-tag-inner-padding:8px;--el-input-tag-line-height:24px;box-sizing:border-box;cursor:pointer;font-size:var(--el-input-tag-font-size);padding:var(--el-input-tag-padding);width:var(--el-input-tag-width);min-height:var(--el-input-tag-mini-height);line-height:var(--el-input-tag-line-height);border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;display:flex;transform:translate(0)}.el-input-tag.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-tag.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-input-tag.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled:hover{box-shadow:0 0 0 1px var(--el-input-tag-disabled-border) inset}.el-input-tag.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-input-tag.is-disabled .el-input-tag__inner .el-input-tag__input,.el-input-tag.is-disabled .el-input-tag__inner .el-tag{cursor:not-allowed}.el-input-tag__prefix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;display:flex}.el-input-tag__suffix{padding:0 var(--el-input-tag-inner-padding);color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:8px;display:flex}.el-input-tag__collapse-tag{line-height:1}.el-input-tag__input-tag-list{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-input-tag__input-tag-list.is-near{margin-left:-8px}.el-input-tag__input-tag-list .el-tag{cursor:pointer;border-color:#0000}.el-input-tag__input-tag-list .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__input-tag-list .el-tag .el-tag__content{min-width:0}.el-input-tag__inner{align-items:center;gap:var(--el-input-tag-gap);flex-wrap:wrap;flex:1;min-width:0;max-width:100%;display:flex;position:relative}.el-input-tag__inner.is-left-space{margin-left:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-right-space{margin-right:var(--el-input-tag-inner-padding)}.el-input-tag__inner.is-draggable .el-tag{cursor:move;-webkit-user-select:none;user-select:none}.el-input-tag__drop-indicator{width:1px;height:var(--el-input-tag-line-height);background-color:var(--el-color-primary);position:absolute;top:0}.el-input-tag__inner .el-tag{cursor:pointer;border-color:#0000;max-width:100%}.el-input-tag__inner .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-input-tag__inner .el-tag .el-tag__content{text-overflow:ellipsis;white-space:nowrap;min-width:0;line-height:normal;overflow:hidden}.el-input-tag__input-wrapper{flex:1}.el-input-tag__input{color:var(--el-input-tag-text-color);font-size:inherit;font-family:inherit;line-height:inherit;appearance:none;background-color:#0000;border:none;outline:none;width:100%;padding:0}.el-input-tag__input::placeholder{color:var(--el-input-tag-placeholder-color)}.el-input-tag__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-input-tag--large{--el-input-tag-gap:6px;--el-input-tag-padding:8px;--el-input-tag-padding-left:8px;--el-input-tag-font-size:14px}.el-input-tag--small{--el-input-tag-gap:4px;--el-input-tag-padding:2px;--el-input-tag-padding-left:6px;--el-input-tag-font-size:12px;--el-input-tag-line-height:20px;--el-input-tag-mini-height:var(--el-component-size-small)}.el-input-otp{--el-input-otp-text-color:var(--el-text-color-regular);--el-input-otp-field-width:calc(var(--el-input-otp-size) - 4px);--el-input-otp-gap:8px;--el-input-otp-font-size:14px;--el-input-otp-size:32px}.el-input-otp--large{--el-input-otp-gap:12px;--el-input-otp-font-size:14px;--el-input-otp-size:40px}.el-input-otp--small{--el-input-otp-gap:6px;--el-input-otp-font-size:12px;--el-input-otp-size:24px}.el-input-otp{align-items:center;column-gap:var(--el-input-otp-gap);font-size:var(--el-input-otp-font-size);height:var(--el-input-otp-size);flex-wrap:nowrap;display:inline-flex}.el-input-otp.is-disabled,.el-input-otp.is-disabled .el-input-otp__input{cursor:not-allowed}.el-input-otp__input-field{width:var(--el-input-otp-field-width,calc(var(--el-input-otp-size) - 4px));border-radius:var(--el-border-radius-base);height:100%;position:relative}.el-input-otp__input{text-align:center;width:100%;height:100%;line-height:1;font-size:inherit;color:var(--el-input-otp-text-color,var(--el-text-color-regular));background-color:#0000;border:none;outline:none;padding:0}.el-input-otp.is-disabled .el-input-otp__input{color:var(--el-text-color-disabled)}.el-input-otp--outlined .el-input-otp__input-field{box-shadow:0 0 0 1px var(--el-border-color) inset}@media (hover:hover){.el-input-otp--outlined .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-color-primary-light-5) inset}}.el-input-otp--outlined .el-input-otp__input-field:focus-within{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--outlined.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media (hover:hover){.el-input-otp--outlined.is-disabled .el-input-otp__input-field:hover{box-shadow:0 0 0 1px var(--el-border-color) inset}}.el-input-otp--filled .el-input-otp__input-field{background-color:var(--el-fill-color)}@media (hover:hover){.el-input-otp--filled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-dark)}}.el-input-otp--filled .el-input-otp__input-field:focus-within{background-color:var(--el-fill-color-blank);box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-input-otp--filled.is-disabled .el-input-otp__input-field{background-color:var(--el-fill-color-light)}@media (hover:hover){.el-input-otp--filled.is-disabled .el-input-otp__input-field:hover{background-color:var(--el-fill-color-light)}}.el-input-otp--underlined .el-input-otp__input-field:after{content:"";background-color:var(--el-border-color);width:100%;height:1px;display:block;position:absolute;bottom:0;left:0}@media (hover:hover){.el-input-otp--underlined .el-input-otp__input-field:hover:after{background-color:var(--el-color-primary-light-5)}}.el-input-otp--underlined .el-input-otp__input-field:focus-within:after{background-color:var(--el-color-primary)}@media (hover:hover){.el-input-otp--underlined.is-disabled .el-input-otp__input-field:hover:after{background-color:var(--el-border-color)}}.el-link{--el-link-font-size:var(--el-font-size-base);--el-link-font-weight:var(--el-font-weight-primary);--el-link-text-color:var(--el-text-color-regular);--el-link-hover-text-color:var(--el-color-primary);--el-link-disabled-text-color:var(--el-text-color-placeholder);vertical-align:middle;cursor:pointer;font-size:var(--el-link-font-size);font-weight:var(--el-link-font-weight);color:var(--el-link-text-color);outline:none;flex-direction:row;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex;position:relative}.el-link.is-hover-underline:hover:after{content:"";border-bottom:1px solid var(--el-link-hover-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link.is-underline:after{content:"";border-bottom:1px solid var(--el-link-text-color);height:0;position:absolute;bottom:0;left:0;right:0}.el-link:hover{color:var(--el-link-hover-text-color)}.el-link:hover:after{border-color:var(--el-link-hover-text-color)}.el-link [class*=el-icon-]+span{margin-left:5px}.el-link__inner{justify-content:center;align-items:center;display:inline-flex}.el-link.el-link--primary{--el-link-text-color:var(--el-color-primary);--el-link-hover-text-color:var(--el-color-primary-light-3);--el-link-disabled-text-color:var(--el-color-primary-light-5)}.el-link.el-link--success{--el-link-text-color:var(--el-color-success);--el-link-hover-text-color:var(--el-color-success-light-3);--el-link-disabled-text-color:var(--el-color-success-light-5)}.el-link.el-link--warning{--el-link-text-color:var(--el-color-warning);--el-link-hover-text-color:var(--el-color-warning-light-3);--el-link-disabled-text-color:var(--el-color-warning-light-5)}.el-link.el-link--danger{--el-link-text-color:var(--el-color-danger);--el-link-hover-text-color:var(--el-color-danger-light-3);--el-link-disabled-text-color:var(--el-color-danger-light-5)}.el-link.el-link--error{--el-link-text-color:var(--el-color-error);--el-link-hover-text-color:var(--el-color-error-light-3);--el-link-disabled-text-color:var(--el-color-error-light-5)}.el-link.el-link--info{--el-link-text-color:var(--el-color-info);--el-link-hover-text-color:var(--el-color-info-light-3);--el-link-disabled-text-color:var(--el-color-info-light-5)}.el-link.is-disabled{color:var(--el-link-disabled-text-color);cursor:not-allowed}.el-link.is-disabled:after{border-color:var(--el-link-disabled-text-color)}:root{--el-loading-spinner-size:42px;--el-loading-fullscreen-spinner-size:50px}.el-loading-parent--relative{position:relative!important}.el-loading-parent--hidden{overflow:hidden!important}.el-loading-mask{z-index:2000;background-color:var(--el-mask-color);transition:opacity var(--el-transition-duration);margin:0;position:absolute;inset:0}.el-loading-mask.is-fullscreen{position:fixed}.el-loading-mask.is-fullscreen .el-loading-spinner{margin-top:calc((0px - var(--el-loading-fullscreen-spinner-size)) / 2)}.el-loading-mask.is-fullscreen .el-loading-spinner .circular{height:var(--el-loading-fullscreen-spinner-size);width:var(--el-loading-fullscreen-spinner-size)}.el-loading-spinner{margin-top:calc((0px - var(--el-loading-spinner-size)) / 2);text-align:center;width:100%;position:absolute;top:50%}.el-loading-spinner .el-loading-text{color:var(--el-color-primary);margin:3px 0;font-size:14px}.el-loading-spinner .circular{height:var(--el-loading-spinner-size);width:var(--el-loading-spinner-size);animation:2s linear infinite loading-rotate;display:inline}.el-loading-spinner .path{stroke-dasharray:90 150;stroke-dashoffset:0;stroke-width:2px;stroke:var(--el-color-primary);stroke-linecap:round;animation:1.5s ease-in-out infinite loading-dash}.el-loading-spinner i{color:var(--el-color-primary)}.el-loading-fade-enter-from,.el-loading-fade-leave-to{opacity:0}@keyframes loading-rotate{to{transform:rotate(360deg)}}@keyframes loading-dash{0%{stroke-dasharray:1 200;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-40px}to{stroke-dasharray:90 150;stroke-dashoffset:-120px}}.el-main{--el-main-padding:20px;box-sizing:border-box;padding:var(--el-main-padding);flex:auto;display:block;overflow:auto}:root{--el-menu-active-color:var(--el-color-primary);--el-menu-text-color:var(--el-text-color-primary);--el-menu-hover-text-color:var(--el-color-primary);--el-menu-bg-color:var(--el-fill-color-blank);--el-menu-hover-bg-color:var(--el-color-primary-light-9);--el-menu-item-height:56px;--el-menu-sub-item-height:calc(var(--el-menu-item-height) - 6px);--el-menu-horizontal-height:60px;--el-menu-horizontal-sub-item-height:36px;--el-menu-item-font-size:var(--el-font-size-base);--el-menu-item-hover-fill:var(--el-color-primary-light-9);--el-menu-border-color:var(--el-border-color);--el-menu-base-level-padding:20px;--el-menu-level-padding:20px;--el-menu-icon-width:24px}.el-menu{border-right:solid 1px var(--el-menu-border-color);background-color:var(--el-menu-bg-color);box-sizing:border-box;margin:0;padding-left:0;list-style:none;position:relative}.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-sub-menu__title,.el-menu--vertical:not(.el-menu--collapse):not(.el-menu--popup-container) .el-menu-item-group__title{white-space:nowrap;padding-left:calc(var(--el-menu-base-level-padding) + var(--el-menu-level) * var(--el-menu-level-padding))}.el-menu:not(.el-menu--collapse) .el-sub-menu__title{padding-right:calc(var(--el-menu-base-level-padding) + var(--el-menu-icon-width))}.el-menu--horizontal{height:var(--el-menu-horizontal-height);border-right:none;flex-wrap:nowrap;display:flex}.el-menu--horizontal.el-menu--popup-container{height:unset}.el-menu--horizontal.el-menu{border-bottom:solid 1px var(--el-menu-border-color)}.el-menu--horizontal>.el-menu-item{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000;justify-content:center;align-items:center;margin:0;display:inline-flex}.el-menu--horizontal>.el-menu-item a,.el-menu--horizontal>.el-menu-item a:hover{color:inherit}.el-menu--horizontal>.el-sub-menu:focus,.el-menu--horizontal>.el-sub-menu:hover{outline:none}.el-menu--horizontal>.el-sub-menu:hover .el-sub-menu__title{color:var(--el-menu-hover-text-color)}.el-menu--horizontal>.el-sub-menu.is-active .el-sub-menu__title{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title{height:100%;color:var(--el-menu-text-color);border-bottom:2px solid #0000}.el-menu--horizontal>.el-sub-menu .el-sub-menu__title:hover{background-color:var(--el-menu-bg-color)}.el-menu--horizontal .el-menu .el-menu-item,.el-menu--horizontal .el-menu .el-sub-menu__title{background-color:var(--el-menu-bg-color);height:var(--el-menu-horizontal-sub-item-height);line-height:var(--el-menu-horizontal-sub-item-height);color:var(--el-menu-text-color);align-items:center;padding:0 10px;display:flex}.el-menu--horizontal .el-menu .el-sub-menu__title{padding-right:40px}.el-menu--horizontal .el-menu .el-menu-item.is-active,.el-menu--horizontal .el-menu .el-menu-item.is-active:hover,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title,.el-menu--horizontal .el-menu .el-sub-menu.is-active>.el-sub-menu__title:hover{color:var(--el-menu-active-color)}.el-menu--horizontal .el-menu-item:not(.is-disabled):hover,.el-menu--horizontal .el-menu-item:not(.is-disabled):focus{color:var(--el-menu-active-color,var(--el-menu-hover-text-color));background-color:var(--el-menu-hover-bg-color);outline:none}.el-menu--horizontal>.el-menu-item.is-active{border-bottom:2px solid var(--el-menu-active-color);color:var(--el-menu-active-color)!important}.el-menu--collapse{width:calc(var(--el-menu-icon-width) + var(--el-menu-base-level-padding) * 2)}.el-menu--collapse>.el-menu-item [class^=el-icon],.el-menu--collapse>.el-sub-menu>.el-sub-menu__title [class^=el-icon],.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title [class^=el-icon]{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin:0}.el-menu--collapse>.el-menu-item .el-sub-menu__icon-arrow,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title .el-sub-menu__icon-arrow{display:none}.el-menu--collapse>.el-menu-item>span,.el-menu--collapse>.el-sub-menu>.el-sub-menu__title>span,.el-menu--collapse>.el-menu-item-group>ul>.el-sub-menu>.el-sub-menu__title>span{visibility:hidden;width:0;height:0;display:inline-block;overflow:hidden}.el-menu--collapse>.el-menu-item.is-active i{color:inherit}.el-menu--collapse .el-menu .el-sub-menu{min-width:200px}.el-menu--collapse .el-sub-menu.is-active .el-sub-menu__title{color:var(--el-menu-active-color)}.el-menu--popup{z-index:100;border-radius:var(--el-border-radius-small);min-width:200px;box-shadow:var(--el-box-shadow-light);border:none;padding:5px 0}.el-menu .el-icon{flex-shrink:0}.el-menu-item{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration), background-color var(--el-transition-duration), color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-menu-item *{vertical-align:bottom}.el-menu-item i{color:inherit}.el-menu-item:hover,.el-menu-item:focus{outline:none}.el-menu-item:hover{background-color:var(--el-menu-hover-bg-color)}.el-menu-item.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-menu-item [class^=el-icon]{width:var(--el-menu-icon-width);text-align:center;vertical-align:middle;margin-right:5px;font-size:18px}.el-menu-item.is-active{color:var(--el-menu-active-color)}.el-menu-item.is-active i{color:inherit}.el-menu-item .el-menu-tooltip__trigger{box-sizing:border-box;width:100%;height:100%;padding:0 var(--el-menu-base-level-padding);align-items:center;display:inline-flex;position:absolute;top:0;left:0}.el-sub-menu{margin:0;padding-left:0;list-style:none}.el-sub-menu__title{height:var(--el-menu-item-height);line-height:var(--el-menu-item-height);font-size:var(--el-menu-item-font-size);color:var(--el-menu-text-color);padding:0 var(--el-menu-base-level-padding);cursor:pointer;transition:border-color var(--el-transition-duration), background-color var(--el-transition-duration), color var(--el-transition-duration);box-sizing:border-box;white-space:nowrap;align-items:center;list-style:none;display:flex;position:relative}.el-sub-menu__title *{vertical-align:bottom}.el-sub-menu__title i{color:inherit}.el-sub-menu__title:hover,.el-sub-menu__title:focus{outline:none}.el-sub-menu__title.is-disabled{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu__title:hover{background-color:var(--el-menu-hover-bg-color)}.el-sub-menu .el-menu{border:none}.el-sub-menu .el-menu-item{height:var(--el-menu-sub-item-height);line-height:var(--el-menu-sub-item-height)}.el-sub-menu.el-sub-menu__hide-arrow .el-sub-menu__title{padding-right:var(--el-menu-base-level-padding)}.el-sub-menu__hide-arrow .el-sub-menu__icon-arrow{display:none!important}.el-sub-menu.is-active .el-sub-menu__title{border-bottom-color:var(--el-menu-active-color)}.el-sub-menu.is-disabled .el-sub-menu__title,.el-sub-menu.is-disabled .el-menu-item{opacity:.25;cursor:not-allowed;background:0 0!important}.el-sub-menu .el-icon{vertical-align:middle;width:var(--el-menu-icon-width);text-align:center;margin-right:5px;font-size:18px}.el-sub-menu .el-icon.el-sub-menu__icon-more{margin-right:0!important}.el-sub-menu .el-sub-menu__icon-arrow{top:50%;right:var(--el-menu-base-level-padding);transition:transform var(--el-transition-duration);width:inherit;margin-top:-6px;margin-right:0;font-size:12px;position:absolute}.el-menu-item-group>ul{padding:0}.el-menu-item-group__title{padding:7px 0 7px var(--el-menu-base-level-padding);color:var(--el-text-color-secondary);font-size:12px;line-height:normal}.horizontal-collapse-transition .el-sub-menu__title .el-sub-menu__icon-arrow{transition:var(--el-transition-duration-fast);opacity:0}.el-popper,.el-menu--popup-container,.el-menu{outline:none}.el-message-box{--el-messagebox-title-color:var(--el-text-color-primary);--el-messagebox-width:420px;--el-messagebox-border-radius:4px;--el-messagebox-box-shadow:var(--el-box-shadow);--el-messagebox-font-size:var(--el-font-size-large);--el-messagebox-content-font-size:var(--el-font-size-base);--el-messagebox-content-color:var(--el-text-color-regular);--el-messagebox-error-font-size:12px;--el-messagebox-padding-primary:12px;--el-messagebox-font-line-height:var(--el-font-line-height-primary);max-width:var(--el-messagebox-width);width:100%;padding:var(--el-messagebox-padding-primary);vertical-align:middle;background-color:var(--el-bg-color);border-radius:var(--el-messagebox-border-radius);font-size:var(--el-messagebox-font-size);box-shadow:var(--el-messagebox-box-shadow);text-align:left;backface-visibility:hidden;box-sizing:border-box;overflow-wrap:break-word;display:inline-block;position:relative;overflow:hidden}.el-message-box:focus{outline:none!important}.is-message-box .el-overlay-message-box{text-align:center;padding:16px;position:fixed;inset:0;overflow:auto}.is-message-box .el-overlay-message-box:after{content:"";vertical-align:middle;width:0;height:100%;display:inline-block}.el-message-box.is-draggable .el-message-box__header{cursor:move;-webkit-user-select:none;user-select:none}.el-message-box__header{padding-bottom:var(--el-messagebox-padding-primary)}.el-message-box__header.show-close{padding-right:calc(var(--el-messagebox-padding-primary) + var(--el-message-close-size,16px))}.el-message-box__title{font-size:var(--el-messagebox-font-size);line-height:var(--el-messagebox-font-line-height);color:var(--el-messagebox-title-color)}.el-message-box__headerbtn{width:40px;height:40px;font-size:var(--el-message-close-size,16px);cursor:pointer;background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-message-box__headerbtn .el-message-box__close{color:var(--el-color-info);font-size:inherit}.el-message-box__headerbtn:focus .el-message-box__close,.el-message-box__headerbtn:hover .el-message-box__close{color:var(--el-color-primary)}.el-message-box__content{color:var(--el-messagebox-content-color);font-size:var(--el-messagebox-content-font-size)}.el-message-box__container{align-items:center;gap:12px;display:flex}.el-message-box__input{padding-top:12px}.el-message-box__input div.invalid>input,.el-message-box__input div.invalid>input:focus{border-color:var(--el-color-error)}.el-message-box__status{font-size:24px}.el-message-box__status.el-message-box-icon--primary{--el-messagebox-color:var(--el-color-primary);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--success{--el-messagebox-color:var(--el-color-success);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--info{--el-messagebox-color:var(--el-color-info);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--warning{--el-messagebox-color:var(--el-color-warning);color:var(--el-messagebox-color)}.el-message-box__status.el-message-box-icon--error{--el-messagebox-color:var(--el-color-error);color:var(--el-messagebox-color)}.el-message-box__message{min-width:0;margin:0}.el-message-box__message p{line-height:var(--el-messagebox-font-line-height);margin:0}.el-message-box__errormsg{color:var(--el-color-error);font-size:var(--el-messagebox-error-font-size);line-height:var(--el-messagebox-font-line-height)}.el-message-box__btns{padding-top:var(--el-messagebox-padding-primary);flex-wrap:wrap;justify-content:flex-end;align-items:center;display:flex}.el-message-box--center .el-message-box__title{justify-content:center;align-items:center;gap:6px;display:flex}.el-message-box--center .el-message-box__status{font-size:inherit}.el-message-box--center .el-message-box__btns,.el-message-box--center .el-message-box__container{justify-content:center}.el-message-box-parent--hidden{overflow:hidden}.fade-in-linear-enter-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration)}.fade-in-linear-leave-active .el-overlay-message-box{animation:msgbox-fade-in var(--el-transition-duration) reverse}@keyframes msgbox-fade-in{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translate(0)}}.el-message{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-border-color-lighter);--el-message-padding:11px 15px;--el-message-close-size:16px;--el-message-close-icon-color:var(--el-text-color-placeholder);--el-message-close-hover-color:var(--el-text-color-secondary);box-sizing:border-box;border-radius:var(--el-border-radius-base);border-width:var(--el-border-width);border-style:var(--el-border-style);border-color:var(--el-message-border-color);background-color:var(--el-message-bg-color);width:max-content;max-width:calc(100% - 32px);transition:opacity var(--el-transition-duration), transform .4s, top .4s, bottom .4s;padding:var(--el-message-padding);align-items:center;gap:8px;display:flex;position:fixed}.el-message.is-left{left:16px}.el-message.is-right{right:16px}.el-message.is-center{left:50%;transform:translate(-50%)}.el-message.is-plain{background-color:var(--el-bg-color-overlay);border-color:var(--el-bg-color-overlay);box-shadow:var(--el-box-shadow-light)}.el-message p{margin:0}.el-message--primary{--el-message-bg-color:var(--el-color-primary-light-9);--el-message-border-color:var(--el-color-primary-light-8);--el-message-text-color:var(--el-color-primary)}.el-message--primary .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--primary{color:var(--el-message-text-color)}.el-message--success{--el-message-bg-color:var(--el-color-success-light-9);--el-message-border-color:var(--el-color-success-light-8);--el-message-text-color:var(--el-color-success)}.el-message--success .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--success{color:var(--el-message-text-color)}.el-message--info{--el-message-bg-color:var(--el-color-info-light-9);--el-message-border-color:var(--el-color-info-light-8);--el-message-text-color:var(--el-color-info)}.el-message--info .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--info{color:var(--el-message-text-color)}.el-message--warning{--el-message-bg-color:var(--el-color-warning-light-9);--el-message-border-color:var(--el-color-warning-light-8);--el-message-text-color:var(--el-color-warning)}.el-message--warning .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--warning{color:var(--el-message-text-color)}.el-message--error{--el-message-bg-color:var(--el-color-error-light-9);--el-message-border-color:var(--el-color-error-light-8);--el-message-text-color:var(--el-color-error)}.el-message--error .el-message__content{color:var(--el-message-text-color);overflow-wrap:break-word}.el-message .el-message-icon--error{color:var(--el-message-text-color)}.el-message .el-message__badge{position:absolute;top:-8px;right:-8px}.el-message__content{padding:0;font-size:14px;line-height:1}.el-message__content:focus{outline-width:0}.el-message .el-message__closeBtn{cursor:pointer;color:var(--el-message-close-icon-color);font-size:var(--el-message-close-size)}.el-message .el-message__closeBtn:focus{outline-width:0}.el-message .el-message__closeBtn:hover{color:var(--el-message-close-hover-color)}.el-message-fade-enter-from,.el-message-fade-leave-to{opacity:0}.el-message-fade-enter-from.is-left,.el-message-fade-enter-from.is-right,.el-message-fade-leave-to.is-left,.el-message-fade-leave-to.is-right{transform:translateY(-100%)}.el-message-fade-enter-from.is-left.is-bottom,.el-message-fade-enter-from.is-right.is-bottom,.el-message-fade-leave-to.is-left.is-bottom,.el-message-fade-leave-to.is-right.is-bottom{transform:translateY(100%)}.el-message-fade-enter-from.is-center,.el-message-fade-leave-to.is-center{transform:translate(-50%,-100%)}.el-message-fade-enter-from.is-center.is-bottom,.el-message-fade-leave-to.is-center.is-bottom{transform:translate(-50%,100%)}.el-notification{--el-notification-width:330px;--el-notification-padding:14px 26px 14px 13px;--el-notification-radius:8px;--el-notification-shadow:var(--el-box-shadow-light);--el-notification-border-color:var(--el-border-color-lighter);--el-notification-icon-size:24px;--el-notification-close-font-size:var(--el-message-close-size,16px);--el-notification-group-margin-left:13px;--el-notification-group-margin-right:8px;--el-notification-content-font-size:var(--el-font-size-base);--el-notification-content-color:var(--el-text-color-regular);--el-notification-title-font-size:16px;--el-notification-title-color:var(--el-text-color-primary);--el-notification-close-color:var(--el-text-color-secondary);--el-notification-close-hover-color:var(--el-text-color-regular);width:var(--el-notification-width);padding:var(--el-notification-padding);border-radius:var(--el-notification-radius);box-sizing:border-box;border:1px solid var(--el-notification-border-color);background-color:var(--el-bg-color-overlay);box-shadow:var(--el-notification-shadow);transition:opacity var(--el-transition-duration), transform var(--el-transition-duration), left var(--el-transition-duration), right var(--el-transition-duration), top .4s, bottom var(--el-transition-duration);overflow-wrap:break-word;z-index:9999;display:flex;position:fixed;overflow:hidden}.el-notification.right{right:16px}.el-notification.left{left:16px}.el-notification__group{min-width:0;margin-left:var(--el-notification-group-margin-left);margin-right:var(--el-notification-group-margin-right);flex:1}.el-notification__title{font-weight:700;font-size:var(--el-notification-title-font-size);line-height:var(--el-notification-icon-size);color:var(--el-notification-title-color);margin:0}.el-notification__content{font-size:var(--el-notification-content-font-size);color:var(--el-notification-content-color);margin:6px 0 0;line-height:24px}.el-notification__content p{margin:0}.el-notification .el-notification__icon{height:var(--el-notification-icon-size);width:var(--el-notification-icon-size);font-size:var(--el-notification-icon-size);flex-shrink:0}.el-notification .el-notification__closeBtn{cursor:pointer;color:var(--el-notification-close-color);font-size:var(--el-notification-close-font-size);position:absolute;top:18px;right:15px}.el-notification .el-notification__closeBtn:hover{color:var(--el-notification-close-hover-color)}.el-notification .el-notification--primary{--el-notification-icon-color:var(--el-color-primary);color:var(--el-notification-icon-color)}.el-notification .el-notification--success{--el-notification-icon-color:var(--el-color-success);color:var(--el-notification-icon-color)}.el-notification .el-notification--info{--el-notification-icon-color:var(--el-color-info);color:var(--el-notification-icon-color)}.el-notification .el-notification--warning{--el-notification-icon-color:var(--el-color-warning);color:var(--el-notification-icon-color)}.el-notification .el-notification--error{--el-notification-icon-color:var(--el-color-error);color:var(--el-notification-icon-color)}.el-notification-fade-enter-from.right{right:0;transform:translate(100%)}.el-notification-fade-enter-from.left{left:0;transform:translate(-100%)}.el-notification-fade-leave-to{opacity:0}.el-overlay{z-index:2000;background-color:var(--el-overlay-color-lighter);height:100%;position:fixed;inset:0;overflow:auto}.el-overlay .el-overlay-root{height:0}.el-page-header.is-contentful .el-page-header__main{border-top:1px solid var(--el-border-color-light);margin-top:16px}.el-page-header__header{justify-content:space-between;align-items:center;line-height:24px;display:flex}.el-page-header__left{align-items:center;margin-right:40px;display:flex;position:relative}.el-page-header__back{cursor:pointer;align-items:center;display:flex}.el-page-header__left .el-divider--vertical{margin:0 16px}.el-page-header__icon{align-items:center;margin-right:10px;font-size:16px;display:flex}.el-page-header__icon .el-icon{font-size:inherit}.el-page-header__title{font-size:14px;font-weight:500}.el-page-header__content{color:var(--el-text-color-primary);font-size:18px}.el-page-header__breadcrumb{margin-bottom:16px}.el-pagination{--el-pagination-font-size:14px;--el-pagination-bg-color:var(--el-fill-color-blank);--el-pagination-text-color:var(--el-text-color-primary);--el-pagination-border-radius:2px;--el-pagination-button-color:var(--el-text-color-primary);--el-pagination-button-width:32px;--el-pagination-button-height:32px;--el-pagination-button-disabled-color:var(--el-text-color-placeholder);--el-pagination-button-disabled-bg-color:var(--el-fill-color-blank);--el-pagination-button-bg-color:var(--el-fill-color);--el-pagination-hover-color:var(--el-color-primary);--el-pagination-font-size-small:12px;--el-pagination-button-width-small:24px;--el-pagination-button-height-small:24px;--el-pagination-button-width-large:40px;--el-pagination-button-height-large:40px;--el-pagination-item-gap:16px;white-space:nowrap;color:var(--el-pagination-text-color);font-size:var(--el-pagination-font-size);align-items:center;font-weight:400;display:flex}.el-pagination .el-input__inner{text-align:center;-moz-appearance:textfield}.el-pagination .el-select{width:128px}.el-pagination .btn-prev,.el-pagination .btn-next{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pagination .btn-prev *,.el-pagination .btn-next *{pointer-events:none}.el-pagination .btn-prev:focus,.el-pagination .btn-next:focus{outline:none}.el-pagination .btn-prev:hover,.el-pagination .btn-next:hover{color:var(--el-pagination-hover-color)}.el-pagination .btn-prev.is-active,.el-pagination .btn-next.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pagination .btn-prev.is-active.is-disabled,.el-pagination .btn-next.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pagination .btn-prev:disabled,.el-pagination .btn-prev.is-disabled,.el-pagination .btn-next:disabled,.el-pagination .btn-next.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pagination .btn-prev:focus-visible,.el-pagination .btn-next:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-pagination .btn-prev .el-icon,.el-pagination .btn-next .el-icon{width:inherit;font-size:12px;font-weight:700;display:block}.el-pagination>.is-first{margin-left:0!important}.el-pagination>.is-last{margin-right:0!important}.el-pagination .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination__sizes,.el-pagination__total{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);font-weight:400}.el-pagination__total[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__jump{margin-left:var(--el-pagination-item-gap);color:var(--el-text-color-regular);align-items:center;font-weight:400;display:flex}.el-pagination__jump[disabled=true]{color:var(--el-text-color-placeholder)}.el-pagination__goto{margin-right:8px}.el-pagination__editor{text-align:center;box-sizing:border-box}.el-pagination__editor.el-input{width:56px}.el-pagination__editor .el-input__inner::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.el-pagination__editor .el-input__inner::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.el-pagination__classifier{margin-left:8px}.el-pagination__rightwrapper{flex:1;justify-content:flex-end;align-items:center;display:flex}.el-pagination.is-background .btn-prev,.el-pagination.is-background .btn-next,.el-pagination.is-background .el-pager li{background-color:var(--el-pagination-button-bg-color);margin:0 4px}.el-pagination.is-background .btn-prev.is-active,.el-pagination.is-background .btn-next.is-active,.el-pagination.is-background .el-pager li.is-active{background-color:var(--el-color-primary);color:var(--el-color-white)}.el-pagination.is-background .btn-prev:disabled,.el-pagination.is-background .btn-prev.is-disabled,.el-pagination.is-background .btn-next:disabled,.el-pagination.is-background .btn-next.is-disabled,.el-pagination.is-background .el-pager li:disabled,.el-pagination.is-background .el-pager li.is-disabled{color:var(--el-text-color-placeholder);background-color:var(--el-disabled-bg-color)}.el-pagination.is-background .btn-prev:disabled.is-active,.el-pagination.is-background .btn-prev.is-disabled.is-active,.el-pagination.is-background .btn-next:disabled.is-active,.el-pagination.is-background .btn-next.is-disabled.is-active,.el-pagination.is-background .el-pager li:disabled.is-active,.el-pagination.is-background .el-pager li.is-disabled.is-active{color:var(--el-text-color-secondary);background-color:var(--el-fill-color-dark)}.el-pagination.is-background .btn-prev{margin-left:var(--el-pagination-item-gap)}.el-pagination--small .btn-prev,.el-pagination--small .btn-next,.el-pagination--small .el-pager li{height:var(--el-pagination-button-height-small);line-height:var(--el-pagination-button-height-small);font-size:var(--el-pagination-font-size-small);min-width:var(--el-pagination-button-width-small)}.el-pagination--small span:not([class*=suffix]),.el-pagination--small button{font-size:var(--el-pagination-font-size-small)}.el-pagination--small .el-select{width:100px}.el-pagination--large .btn-prev,.el-pagination--large .btn-next,.el-pagination--large .el-pager li{height:var(--el-pagination-button-height-large);line-height:var(--el-pagination-button-height-large);min-width:var(--el-pagination-button-width-large)}.el-pagination--large .el-select .el-input{width:160px}.el-pager{-webkit-user-select:none;user-select:none;align-items:center;margin:0;padding:0;font-size:0;list-style:none;display:flex}.el-pager li{font-size:var(--el-pagination-font-size);min-width:var(--el-pagination-button-width);height:var(--el-pagination-button-height);line-height:var(--el-pagination-button-height);color:var(--el-pagination-button-color);background:var(--el-pagination-bg-color);border-radius:var(--el-pagination-border-radius);cursor:pointer;text-align:center;box-sizing:border-box;border:none;justify-content:center;align-items:center;padding:0 4px;display:flex}.el-pager li *{pointer-events:none}.el-pager li:focus{outline:none}.el-pager li:hover{color:var(--el-pagination-hover-color)}.el-pager li.is-active{color:var(--el-pagination-hover-color);cursor:default;font-weight:700}.el-pager li.is-active.is-disabled{color:var(--el-text-color-secondary);font-weight:700}.el-pager li:disabled,.el-pager li.is-disabled{color:var(--el-pagination-button-disabled-color);background-color:var(--el-pagination-button-disabled-bg-color);cursor:not-allowed}.el-pager li:focus-visible{outline:1px solid var(--el-pagination-hover-color);outline-offset:-1px}.el-popconfirm{outline:none}.el-popconfirm__main{align-items:center;display:flex}.el-popconfirm__icon{margin-right:5px}.el-popconfirm__action{text-align:right;margin-top:8px}.el-popover{--el-popover-bg-color:var(--el-bg-color-overlay);--el-popover-font-size:var(--el-font-size-base);--el-popover-border-color:var(--el-border-color-lighter);--el-popover-padding:12px;--el-popover-padding-large:18px 20px;--el-popover-title-font-size:16px;--el-popover-title-text-color:var(--el-text-color-primary);--el-popover-border-radius:4px}.el-popover.el-popper{background:var(--el-popover-bg-color);border-radius:var(--el-popover-border-radius);border:1px solid var(--el-popover-border-color);min-width:150px;padding:var(--el-popover-padding);z-index:var(--el-index-popper);color:var(--el-text-color-regular);line-height:1.4;font-size:var(--el-popover-font-size);box-shadow:var(--el-box-shadow-light);overflow-wrap:break-word;box-sizing:border-box}.el-popover.el-popper--plain{padding:var(--el-popover-padding-large)}.el-popover__title{color:var(--el-popover-title-text-color);font-size:var(--el-popover-title-font-size);margin-bottom:12px;line-height:1}.el-popover__reference:focus:not(.focusing),.el-popover__reference:focus:hover{outline-width:0}.el-popover.el-popper.is-dark{--el-popover-bg-color:var(--el-text-color-primary);--el-popover-border-color:var(--el-text-color-primary);--el-popover-title-text-color:var(--el-bg-color);color:var(--el-bg-color)}.el-popover.el-popper:focus:active,.el-popover.el-popper:focus{outline-width:0}.el-progress{align-items:center;line-height:1;display:flex;position:relative}.el-progress__text{color:var(--el-text-color-regular);min-width:50px;margin-left:5px;font-size:14px;line-height:1}.el-progress__text i{vertical-align:middle;display:block}.el-progress--circle,.el-progress--dashboard{display:inline-block}.el-progress--circle .el-progress__text,.el-progress--dashboard .el-progress__text{text-align:center;width:100%;margin:0;position:absolute;top:50%;left:0;transform:translateY(-50%)}.el-progress--circle .el-progress__text i,.el-progress--dashboard .el-progress__text i{vertical-align:middle;display:inline-block}.el-progress--without-text .el-progress__text{display:none}.el-progress--without-text .el-progress-bar{margin-right:0;padding-right:0;display:block}.el-progress--text-inside .el-progress-bar{margin-right:0;padding-right:0}.el-progress.is-success .el-progress-bar__inner{background-color:var(--el-color-success)}.el-progress.is-success .el-progress__text{color:var(--el-color-success)}.el-progress.is-warning .el-progress-bar__inner{background-color:var(--el-color-warning)}.el-progress.is-warning .el-progress__text{color:var(--el-color-warning)}.el-progress.is-exception .el-progress-bar__inner{background-color:var(--el-color-danger)}.el-progress.is-exception .el-progress__text{color:var(--el-color-danger)}.el-progress-bar{box-sizing:border-box;flex-grow:1}.el-progress-bar__outer{background-color:var(--el-border-color-lighter);vertical-align:middle;border-radius:100px;height:6px;position:relative;overflow:hidden}.el-progress-bar__inner{background-color:var(--el-color-primary);text-align:right;white-space:nowrap;border-radius:100px;height:100%;line-height:1;transition:width .6s;position:absolute;top:0;left:0}.el-progress-bar__inner:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-progress-bar__inner--indeterminate{animation:3s infinite indeterminate;transform:translateZ(0)}.el-progress-bar__inner--striped{background-image:linear-gradient(45deg,#0000001a 25%,#0000 25% 50%,#0000001a 50% 75%,#0000 75%,#0000);background-size:1.25em 1.25em}.el-progress-bar__inner--striped.el-progress-bar__inner--striped-flow{animation:3s linear infinite striped-flow}.el-progress-bar__innerText{vertical-align:middle;color:#fff;margin:0 5px;font-size:12px;display:inline-block}@keyframes progress{0%{background-position:0 0}to{background-position:32px 0}}@keyframes indeterminate{0%{left:-100%}to{left:100%}}@keyframes striped-flow{0%{background-position:-100%}to{background-position:100%}}.el-radio-button{--el-radio-button-checked-bg-color:var(--el-color-primary);--el-radio-button-checked-text-color:var(--el-color-white);--el-radio-button-checked-border-color:var(--el-color-primary);--el-radio-button-disabled-checked-fill:var(--el-border-color-extra-light);outline:none;display:inline-block;position:relative}.el-radio-button__inner{white-space:nowrap;vertical-align:middle;background:var(--el-button-bg-color,var(--el-fill-color-blank));outline:var(--el-border);line-height:1;font-weight:var(--el-button-font-weight,var(--el-font-weight-primary));color:var(--el-button-text-color,var(--el-text-color-regular));-webkit-appearance:none;text-align:center;box-sizing:border-box;cursor:pointer;transition:var(--el-transition-all);-webkit-user-select:none;user-select:none;font-size:var(--el-font-size-base);border-radius:0;margin:0;padding:8px 15px;display:inline-block;position:relative}.el-radio-button__inner.is-round{padding:8px 15px}.el-radio-button__inner:hover{color:var(--el-color-primary)}.el-radio-button__inner [class*=el-icon-]{line-height:.9}.el-radio-button__inner [class*=el-icon-]+span{margin-left:5px}.el-radio-button:first-child .el-radio-button__inner{border-radius:var(--el-border-radius-base) 0 0 var(--el-border-radius-base);box-shadow:none!important}.el-radio-button.is-active .el-radio-button__original-radio:not(:disabled)+.el-radio-button__inner{color:var(--el-radio-button-checked-text-color,var(--el-color-white));background-color:var(--el-radio-button-checked-bg-color,var(--el-color-primary));border-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));box-shadow:-1px 0 0 0 var(--el-radio-button-checked-border-color,var(--el-color-primary))}.el-radio-button__original-radio{opacity:0;z-index:-1;outline:none;position:absolute}.el-radio-button__original-radio:focus-visible+.el-radio-button__inner{border-left:var(--el-border);border-left-color:var(--el-radio-button-checked-border-color,var(--el-color-primary));outline:2px solid var(--el-radio-button-checked-border-color);outline-offset:1px;z-index:2;border-radius:var(--el-border-radius-base);box-shadow:none}.el-radio-button__original-radio:disabled+.el-radio-button__inner{color:var(--el-disabled-text-color);cursor:not-allowed;background-image:none;background-color:var(--el-button-disabled-bg-color,var(--el-fill-color-blank));border-color:var(--el-button-disabled-border-color,var(--el-border-color-light));box-shadow:none}.el-radio-button__original-radio:disabled:checked+.el-radio-button__inner{background-color:var(--el-radio-button-disabled-checked-fill)}.el-radio-button:last-child .el-radio-button__inner{border-radius:0 var(--el-border-radius-base) var(--el-border-radius-base) 0}.el-radio-button:first-child:last-child .el-radio-button__inner{border-radius:var(--el-border-radius-base)}.el-radio-button--large .el-radio-button__inner{font-size:var(--el-font-size-base);border-radius:0;padding:12px 19px}.el-radio-button--large .el-radio-button__inner.is-round{padding:12px 19px}.el-radio-button--small .el-radio-button__inner{border-radius:0;padding:5px 11px;font-size:12px}.el-radio-button--small .el-radio-button__inner.is-round{padding:5px 11px}.el-radio-group{flex-wrap:wrap;align-items:center;font-size:0;display:inline-flex}.el-radio{--el-radio-font-size:var(--el-font-size-base);--el-radio-text-color:var(--el-text-color-regular);--el-radio-font-weight:var(--el-font-weight-primary);--el-radio-input-height:14px;--el-radio-input-width:14px;--el-radio-input-border-radius:var(--el-border-radius-circle);--el-radio-input-bg-color:var(--el-fill-color-blank);--el-radio-input-border:var(--el-border);--el-radio-input-border-color:var(--el-border-color);--el-radio-input-border-color-hover:var(--el-color-primary);color:var(--el-radio-text-color);font-weight:var(--el-radio-font-weight);cursor:pointer;white-space:nowrap;font-size:var(--el-font-size-base);-webkit-user-select:none;user-select:none;outline:none;align-items:center;height:32px;margin-right:30px;display:inline-flex;position:relative}.el-radio.el-radio--large{height:40px}.el-radio.el-radio--small{height:24px}.el-radio.is-bordered{border-radius:var(--el-border-radius-base);border:var(--el-border);box-sizing:border-box;padding:0 15px 0 9px}.el-radio.is-bordered.is-checked{border-color:var(--el-color-primary)}.el-radio.is-bordered.is-disabled{cursor:not-allowed;border-color:var(--el-border-color-lighter)}.el-radio.is-bordered.el-radio--large{border-radius:var(--el-border-radius-base);padding:0 19px 0 11px}.el-radio.is-bordered.el-radio--large .el-radio__label{font-size:var(--el-font-size-base)}.el-radio.is-bordered.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.is-bordered.el-radio--small{border-radius:var(--el-border-radius-base);padding:0 11px 0 7px}.el-radio.is-bordered.el-radio--small .el-radio__label{font-size:12px}.el-radio.is-bordered.el-radio--small .el-radio__inner{width:12px;height:12px}.el-radio:last-child{margin-right:0}.el-radio__input{white-space:nowrap;cursor:pointer;vertical-align:middle;outline:none;display:inline-flex;position:relative}.el-radio__input.is-disabled .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color);cursor:not-allowed}.el-radio__input.is-disabled .el-radio__inner:after{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-radio__input.is-disabled .el-radio__inner+.el-radio__label{cursor:not-allowed}.el-radio__input.is-disabled.is-checked .el-radio__inner{background-color:var(--el-disabled-bg-color);border-color:var(--el-disabled-border-color)}.el-radio__input.is-disabled.is-checked .el-radio__inner:after{background-color:var(--el-text-color-placeholder)}.el-radio__input.is-disabled+span.el-radio__label{color:var(--el-text-color-placeholder);cursor:not-allowed}.el-radio__input.is-checked .el-radio__inner{border-color:var(--el-color-primary);background:var(--el-color-primary)}.el-radio__input.is-checked .el-radio__inner:after{background-color:var(--el-color-white);transform:translate(-50%,-50%)scale(1)}.el-radio__input.is-checked+.el-radio__label{color:var(--el-color-primary)}.el-radio__input.is-focus .el-radio__inner{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner{border:var(--el-radio-input-border);border-radius:var(--el-radio-input-border-radius);width:var(--el-radio-input-width);height:var(--el-radio-input-height);background-color:var(--el-radio-input-bg-color);cursor:pointer;box-sizing:border-box;transition:all .3s;display:inline-block;position:relative}.el-radio__inner:hover{border-color:var(--el-radio-input-border-color-hover)}.el-radio__inner:after{border-radius:var(--el-radio-input-border-radius);content:"";width:4px;height:4px;transition:transform .15s ease-in;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0)}.el-radio__original{opacity:0;z-index:-1;outline:none;margin:0;position:absolute;inset:0}.el-radio__original:focus-visible+.el-radio__inner{outline:2px solid var(--el-radio-input-border-color-hover);outline-offset:1px;border-radius:var(--el-radio-input-border-radius)}.el-radio:focus:not(:focus-visible):not(.is-focus):not(:active):not(.is-disabled) .el-radio__inner{box-shadow:0 0 2px 2px var(--el-radio-input-border-color-hover)}.el-radio__label{font-size:var(--el-radio-font-size);padding-left:8px}.el-radio.el-radio--large .el-radio__label{font-size:14px}.el-radio.el-radio--large .el-radio__inner{width:14px;height:14px}.el-radio.el-radio--small .el-radio__label{font-size:12px}.el-radio.el-radio--small .el-radio__inner{width:12px;height:12px}.el-rate{--el-rate-height:20px;--el-rate-font-size:var(--el-font-size-base);--el-rate-icon-size:18px;--el-rate-icon-margin:6px;--el-rate-void-color:var(--el-border-color-darker);--el-rate-fill-color:#f7ba2a;--el-rate-disabled-void-color:var(--el-fill-color);--el-rate-text-color:var(--el-text-color-primary);--el-rate-outline-color:var(--el-color-primary-light-5);align-items:center;height:32px;display:inline-flex}.el-rate:focus,.el-rate:active{outline:none}.el-rate:focus-visible .el-rate__item .el-rate__icon.is-focus-visible{outline:2px solid var(--el-rate-outline-color);transition:outline-offset,outline}.el-rate__item{cursor:pointer;vertical-align:middle;color:var(--el-rate-void-color);font-size:0;line-height:normal;display:inline-block;position:relative}.el-rate .el-rate__icon{font-size:var(--el-rate-icon-size);margin-right:var(--el-rate-icon-margin);transition:var(--el-transition-duration);display:inline-block;position:relative}.el-rate .el-rate__icon.hover{transform:scale(1.15)}.el-rate .el-rate__icon .path2{position:absolute;top:0;left:0}.el-rate .el-rate__icon.is-active{color:var(--el-rate-fill-color)}.el-rate__decimal{color:var(--el-rate-fill-color);display:inline-block;position:absolute;top:0;left:0;overflow:hidden}.el-rate__decimal--box{position:absolute;top:0;left:0}.el-rate__text{font-size:var(--el-rate-font-size);vertical-align:middle;color:var(--el-rate-text-color)}.el-rate--large{height:40px}.el-rate--small{height:24px}.el-rate--small .el-rate__icon{font-size:14px}.el-rate.is-disabled .el-rate__item{cursor:not-allowed;color:var(--el-rate-disabled-void-color)}.el-result{--el-result-padding:40px 30px;--el-result-icon-font-size:64px;--el-result-title-font-size:20px;--el-result-title-margin-top:20px;--el-result-subtitle-margin-top:10px;--el-result-extra-margin-top:30px;text-align:center;box-sizing:border-box;padding:var(--el-result-padding);flex-direction:column;justify-content:center;align-items:center;display:flex}.el-result__icon svg{width:var(--el-result-icon-font-size);height:var(--el-result-icon-font-size)}.el-result__title{margin-top:var(--el-result-title-margin-top)}.el-result__title p{font-size:var(--el-result-title-font-size);color:var(--el-text-color-primary);margin:0;line-height:1.3}.el-result__subtitle{margin-top:var(--el-result-subtitle-margin-top)}.el-result__subtitle p{font-size:var(--el-font-size-base);color:var(--el-text-color-regular);margin:0;line-height:1.3}.el-result__extra{margin-top:var(--el-result-extra-margin-top)}.el-result .icon-primary{--el-result-color:var(--el-color-primary);color:var(--el-result-color)}.el-result .icon-success{--el-result-color:var(--el-color-success);color:var(--el-result-color)}.el-result .icon-warning{--el-result-color:var(--el-color-warning);color:var(--el-result-color)}.el-result .icon-danger{--el-result-color:var(--el-color-danger);color:var(--el-result-color)}.el-result .icon-error{--el-result-color:var(--el-color-error);color:var(--el-result-color)}.el-result .icon-info{--el-result-color:var(--el-color-info);color:var(--el-result-color)}.el-row{box-sizing:border-box;flex-wrap:wrap;display:flex;position:relative}.el-row.is-justify-center{justify-content:center}.el-row.is-justify-end{justify-content:flex-end}.el-row.is-justify-space-between{justify-content:space-between}.el-row.is-justify-space-around{justify-content:space-around}.el-row.is-justify-space-evenly{justify-content:space-evenly}.el-row.is-align-top{align-items:flex-start}.el-row.is-align-middle{align-items:center}.el-row.is-align-bottom{align-items:flex-end}.el-scrollbar{--el-scrollbar-opacity:.3;--el-scrollbar-bg-color:var(--el-text-color-secondary);--el-scrollbar-hover-opacity:.5;--el-scrollbar-hover-bg-color:var(--el-text-color-secondary);height:100%;position:relative;overflow:hidden}.el-scrollbar__wrap{height:100%;overflow:auto}.el-scrollbar__wrap--hidden-default{scrollbar-width:none}.el-scrollbar__wrap--hidden-default::-webkit-scrollbar{display:none}.el-scrollbar__thumb{cursor:pointer;border-radius:inherit;background-color:var(--el-scrollbar-bg-color,var(--el-text-color-secondary));width:0;height:0;transition:var(--el-transition-duration) background-color;opacity:var(--el-scrollbar-opacity,.3);display:block;position:relative}.el-scrollbar__thumb:hover{background-color:var(--el-scrollbar-hover-bg-color,var(--el-text-color-secondary));opacity:var(--el-scrollbar-hover-opacity,.5)}.el-scrollbar__bar{z-index:1;border-radius:4px;position:absolute;bottom:2px;right:2px}.el-scrollbar__bar.is-vertical{width:6px;top:2px}.el-scrollbar__bar.is-vertical>div{width:100%}.el-scrollbar__bar.is-horizontal{height:6px;left:2px}.el-scrollbar__bar.is-horizontal>div{height:100%}.el-scrollbar-fade-enter-active{transition:opacity .34s ease-out}.el-scrollbar-fade-leave-active{transition:opacity .12s ease-out}.el-scrollbar-fade-enter-from,.el-scrollbar-fade-leave-active{opacity:0}.el-select-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-select-dropdown .el-scrollbar.is-empty .el-select-dropdown__list{padding:0}.el-select-dropdown__loading,.el-select-dropdown__empty{text-align:center;color:var(--el-text-color-secondary);font-size:var(--el-select-font-size);margin:0;padding:10px 0}.el-select-dropdown__wrap{max-height:274px}.el-select-dropdown__list{box-sizing:border-box;margin:0;padding:6px 0;list-style:none}.el-select-dropdown__list.el-vl__window{margin:6px 0;padding:0}.el-select-dropdown__header{border-bottom:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__footer{border-top:1px solid var(--el-border-color-light);padding:10px}.el-select-dropdown__item{font-size:var(--el-font-size-base);white-space:nowrap;text-overflow:ellipsis;color:var(--el-text-color-regular);box-sizing:border-box;cursor:pointer;height:34px;padding:0 32px 0 20px;line-height:34px;position:relative;overflow:hidden}.el-select-dropdown__item.is-hovering{background-color:var(--el-fill-color-light)}.el-select-dropdown__item.is-selected{color:var(--el-color-primary);font-weight:700}.el-select-dropdown__item.is-disabled{color:var(--el-text-color-placeholder);cursor:not-allowed;background-color:unset}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-selected:after{content:"";background-position:50%;background-repeat:no-repeat;background-color:var(--el-color-primary);border-top:none;border-right:none;width:12px;height:12px;position:absolute;top:50%;right:20px;transform:translateY(-50%);-webkit-mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat;mask:url("data:image/svg+xml;utf8,%3Csvg class='icon' width='200' height='200' viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='currentColor' d='M406.656 706.944L195.84 496.256a32 32 0 10-45.248 45.248l256 256 512-512a32 32 0 00-45.248-45.248L406.592 706.944z'%3E%3C/path%3E%3C/svg%3E") 0 0/100% 100% no-repeat}.el-select-dropdown.is-multiple .el-select-dropdown__item.is-disabled:after{background-color:var(--el-text-color-placeholder)}.el-select-group{margin:0;padding:0}.el-select-group__wrap{margin:0;padding:0;list-style:none;position:relative}.el-select-group__title{box-sizing:border-box;color:var(--el-color-info);text-overflow:ellipsis;white-space:nowrap;padding:0 20px;font-size:12px;line-height:34px;overflow:hidden}.el-select-group .el-select-dropdown__item{padding-left:20px}.el-select{--el-select-border-color-hover:var(--el-border-color-hover);--el-select-disabled-color:var(--el-disabled-text-color);--el-select-disabled-border:var(--el-disabled-border-color);--el-select-font-size:var(--el-font-size-base);--el-select-close-hover-color:var(--el-text-color-secondary);--el-select-input-color:var(--el-text-color-placeholder);--el-select-multiple-input-color:var(--el-text-color-regular);--el-select-input-focus-border-color:var(--el-color-primary);--el-select-input-font-size:14px;--el-select-width:100%;vertical-align:middle;width:var(--el-select-width);display:inline-block;position:relative}.el-select__wrapper{box-sizing:border-box;cursor:pointer;text-align:left;border-radius:var(--el-border-radius-base);background-color:var(--el-fill-color-blank);min-height:32px;transition:var(--el-transition-duration);box-shadow:0 0 0 1px var(--el-border-color) inset;align-items:center;gap:6px;padding:4px 12px;font-size:14px;line-height:24px;display:flex;position:relative;transform:translate(0)}.el-select__wrapper.is-filterable{cursor:text}.el-select__wrapper.is-focused{box-shadow:0 0 0 1px var(--el-color-primary) inset}.el-select__wrapper.is-hovering:not(.is-focused){box-shadow:0 0 0 1px var(--el-border-color-hover) inset}.el-select__wrapper.is-disabled{cursor:not-allowed;background-color:var(--el-fill-color-light);color:var(--el-text-color-placeholder);box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled:hover{box-shadow:0 0 0 1px var(--el-select-disabled-border) inset}.el-select__wrapper.is-disabled.is-focus{box-shadow:0 0 0 1px var(--el-input-focus-border-color) inset}.el-select__wrapper.is-disabled .el-select__selected-item{color:var(--el-select-disabled-color)}.el-select__wrapper.is-disabled .el-select__caret,.el-select__wrapper.is-disabled .el-tag,.el-select__wrapper.is-disabled input{cursor:not-allowed}.el-select__wrapper.is-disabled .el-select__prefix,.el-select__wrapper.is-disabled .el-select__suffix{pointer-events:none}.el-select__prefix,.el-select__suffix{color:var(--el-input-icon-color,var(--el-text-color-placeholder));flex-shrink:0;align-items:center;gap:6px;display:flex}.el-select__caret{color:var(--el-select-input-color);font-size:var(--el-select-input-font-size);transition:var(--el-transition-duration);cursor:pointer;transform:rotate(0)}.el-select__caret.is-reverse{transform:rotate(180deg)}.el-select__clear{cursor:pointer}.el-select__clear:hover{color:var(--el-select-close-hover-color)}.el-select__selection{flex-wrap:wrap;flex:1;align-items:center;gap:6px;min-width:0;display:flex;position:relative}.el-select__selection.is-near{margin-left:-8px}.el-select__selection .el-tag{cursor:pointer;border-color:#0000}.el-select__selection .el-tag.el-tag--plain{border-color:var(--el-tag-border-color)}.el-select__selection .el-tag .el-tag__content{min-width:0}.el-select__selected-item{-webkit-user-select:none;user-select:none;flex-wrap:wrap;display:flex}.el-select__tags-text{text-overflow:ellipsis;white-space:nowrap;line-height:normal;display:block;overflow:hidden}.el-select__placeholder{z-index:-1;text-overflow:ellipsis;white-space:nowrap;width:100%;color:var(--el-input-text-color,var(--el-text-color-regular));display:block;position:absolute;top:50%;overflow:hidden;transform:translateY(-50%)}.el-select__placeholder.is-transparent{-webkit-user-select:none;user-select:none;color:var(--el-text-color-placeholder)}.el-select__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-select__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-select__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-select__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-select__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-select__input-wrapper{flex:1}.el-select__input-wrapper.is-hidden{opacity:0;z-index:-1;position:absolute}.el-select__input{color:var(--el-select-multiple-input-color);font-size:inherit;appearance:none;background-color:#0000;border:none;outline:none;width:100%;height:24px;padding:0;font-family:inherit}.el-select__input-calculator{visibility:hidden;white-space:pre;max-width:100%;position:absolute;top:0;left:0;overflow:hidden}.el-select--large .el-select__wrapper{gap:6px;min-height:40px;padding:8px 16px;font-size:14px;line-height:24px}.el-select--large .el-select__selection{gap:6px}.el-select--large .el-select__selection.is-near{margin-left:-8px}.el-select--large .el-select__prefix,.el-select--large .el-select__suffix{gap:6px}.el-select--large .el-select__input{height:24px}.el-select--small .el-select__wrapper{gap:4px;min-height:24px;padding:2px 8px;font-size:12px;line-height:20px}.el-select--small .el-select__selection{gap:4px}.el-select--small .el-select__selection.is-near{margin-left:-6px}.el-select--small .el-select__prefix,.el-select--small .el-select__suffix{gap:4px}.el-select--small .el-select__input{height:20px}.el-skeleton{--el-skeleton-circle-size:var(--el-avatar-size)}.el-skeleton__item{background:var(--el-skeleton-color);border-radius:var(--el-border-radius-base);width:100%;height:16px;display:inline-block}.el-skeleton__circle{width:var(--el-skeleton-circle-size);height:var(--el-skeleton-circle-size);line-height:var(--el-skeleton-circle-size);border-radius:50%}.el-skeleton__button{border-radius:4px;width:64px;height:40px}.el-skeleton__p{width:100%}.el-skeleton__p.is-last{width:61%}.el-skeleton__p.is-first{width:33%}.el-skeleton__text{width:100%;height:var(--el-font-size-small)}.el-skeleton__caption{height:var(--el-font-size-extra-small)}.el-skeleton__h1{height:var(--el-font-size-extra-large)}.el-skeleton__h3{height:var(--el-font-size-large)}.el-skeleton__h5{height:var(--el-font-size-medium)}.el-skeleton__image{width:unset;border-radius:0;justify-content:center;align-items:center;display:flex}.el-skeleton__image svg{color:var(--el-svg-monochrome-grey);fill:currentColor;width:22%;height:22%}.el-skeleton{--el-skeleton-color:var(--el-fill-color);--el-skeleton-to-color:var(--el-fill-color-darker)}@keyframes el-skeleton-loading{0%{background-position:100%}to{background-position:0}}.el-skeleton{width:100%}.el-skeleton__first-line,.el-skeleton__paragraph{background:var(--el-skeleton-color);height:16px;margin-top:16px}.el-skeleton.is-animated .el-skeleton__item{background:linear-gradient(90deg, var(--el-skeleton-color) 25%, var(--el-skeleton-to-color) 37%, var(--el-skeleton-color) 63%);background-size:400% 100%;animation:1.4s infinite el-skeleton-loading}.el-slider{--el-slider-main-bg-color:var(--el-color-primary);--el-slider-runway-bg-color:var(--el-border-color-light);--el-slider-stop-bg-color:var(--el-color-white);--el-slider-disabled-color:var(--el-text-color-placeholder);--el-slider-border-radius:3px;--el-slider-height:6px;--el-slider-button-size:20px;--el-slider-button-wrapper-size:36px;--el-slider-button-wrapper-offset:-15px;align-items:center;width:100%;height:32px;display:flex}.el-slider__runway{height:var(--el-slider-height);background-color:var(--el-slider-runway-bg-color);border-radius:var(--el-slider-border-radius);cursor:pointer;flex:1;position:relative}.el-slider__runway.show-input{width:auto;margin-right:30px}.el-slider__runway.is-disabled{cursor:default}.el-slider__runway.is-disabled .el-slider__bar{background-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button{border-color:var(--el-slider-disabled-color)}.el-slider__runway.is-disabled .el-slider__button-wrapper:hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.hover,.el-slider__runway.is-disabled .el-slider__button-wrapper.dragging{cursor:not-allowed}.el-slider__runway.is-disabled .el-slider__button:hover,.el-slider__runway.is-disabled .el-slider__button.hover,.el-slider__runway.is-disabled .el-slider__button.dragging{cursor:not-allowed;transform:scale(1)}.el-slider__input{flex-shrink:0;width:130px}.el-slider__bar{height:var(--el-slider-height);background-color:var(--el-slider-main-bg-color);border-top-left-radius:var(--el-slider-border-radius);border-bottom-left-radius:var(--el-slider-border-radius);position:absolute}.el-slider__button-wrapper{height:var(--el-slider-button-wrapper-size);width:var(--el-slider-button-wrapper-size);z-index:1;top:var(--el-slider-button-wrapper-offset);text-align:center;-webkit-user-select:none;user-select:none;background-color:#0000;outline:none;line-height:normal;position:absolute;transform:translate(-50%)}.el-slider__button-wrapper:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-slider__button-wrapper:hover,.el-slider__button-wrapper.hover{cursor:grab}.el-slider__button-wrapper.dragging{cursor:grabbing}.el-slider__button{width:var(--el-slider-button-size);height:var(--el-slider-button-size);vertical-align:middle;border:solid 2px var(--el-slider-main-bg-color);background-color:var(--el-color-white);box-sizing:border-box;transition:var(--el-transition-duration-fast);-webkit-user-select:none;user-select:none;border-radius:50%;display:inline-block}.el-slider__button:hover,.el-slider__button.hover,.el-slider__button.dragging{transform:scale(1.2)}.el-slider__button:hover,.el-slider__button.hover{cursor:grab}.el-slider__button.dragging{cursor:grabbing}.el-slider__stop{height:var(--el-slider-height);width:var(--el-slider-height);border-radius:var(--el-border-radius-circle);background-color:var(--el-slider-stop-bg-color);position:absolute;transform:translate(-50%)}.el-slider__marks{width:18px;height:100%;top:0;left:12px}.el-slider__marks-text{color:var(--el-color-info);white-space:pre;margin-top:15px;font-size:14px;position:absolute;transform:translate(-50%)}.el-slider.is-vertical{flex:0;width:auto;height:100%;display:inline-flex;position:relative}.el-slider.is-vertical .el-slider__runway{width:var(--el-slider-height);height:100%;margin:0 16px}.el-slider.is-vertical .el-slider__bar{width:var(--el-slider-height);border-radius:0 0 3px 3px;height:auto}.el-slider.is-vertical .el-slider__button-wrapper{top:auto;left:var(--el-slider-button-wrapper-offset);transform:translateY(50%)}.el-slider.is-vertical .el-slider__stop{transform:translateY(50%)}.el-slider.is-vertical .el-slider__marks-text{margin-top:0;left:15px;transform:translateY(50%)}.el-slider--large{height:40px}.el-slider--small{height:24px}.el-space{vertical-align:top;display:inline-flex}.el-space__item{flex-wrap:wrap;display:flex}.el-space__item>*{flex:1}.el-space--vertical{flex-direction:column}.el-time-spinner{white-space:nowrap;width:100%}.el-spinner{vertical-align:middle;display:inline-block}.el-spinner-inner{width:50px;height:50px;animation:2s linear infinite rotate}.el-spinner-inner .path{stroke:var(--el-border-color-lighter);stroke-linecap:round;animation:1.5s ease-in-out infinite dash}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes dash{0%{stroke-dasharray:1 150;stroke-dashoffset:0}50%{stroke-dasharray:90 150;stroke-dashoffset:-35px}to{stroke-dasharray:90 150;stroke-dashoffset:-124px}}.el-step{flex-shrink:1;position:relative}.el-step:last-of-type .el-step__line{display:none}.el-step:last-of-type.is-flex{flex-grow:0;flex-shrink:0;flex-basis:auto!important}.el-step:last-of-type .el-step__main,.el-step:last-of-type .el-step__description{padding-right:0}.el-step__head{width:100%;position:relative}.el-step__head.is-process{color:var(--el-text-color-primary);border-color:var(--el-text-color-primary)}.el-step__head.is-wait{color:var(--el-text-color-placeholder);border-color:var(--el-text-color-placeholder)}.el-step__head.is-success{color:var(--el-color-success);border-color:var(--el-color-success)}.el-step__head.is-error{color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-step__head.is-finish{color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-step__icon{z-index:1;box-sizing:border-box;background:var(--el-bg-color);justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:all .15s ease-out;display:inline-flex;position:relative}.el-step__icon.is-text{border:2px solid;border-radius:50%}.el-step__icon.is-icon{width:40px}.el-step__icon-inner{-webkit-user-select:none;user-select:none;text-align:center;color:inherit;font-weight:700;line-height:1;display:inline-block}.el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:25px;font-weight:400}.el-step__icon-inner.is-status{transform:translateY(1px)}.el-step__line{background-color:var(--el-text-color-placeholder);border-color:currentColor;position:absolute}.el-step__line-inner{box-sizing:border-box;border:1px solid;width:0;height:0;transition:all .15s ease-out;display:block}.el-step__main{white-space:normal;text-align:left}.el-step__title{font-size:16px;line-height:38px}.el-step__title.is-process{color:var(--el-text-color-primary);font-weight:700}.el-step__title.is-wait{color:var(--el-text-color-placeholder)}.el-step__title.is-success{color:var(--el-color-success)}.el-step__title.is-error{color:var(--el-color-danger)}.el-step__title.is-finish{color:var(--el-color-primary)}.el-step__description{margin-top:-5px;padding-right:10%;font-size:12px;font-weight:400;line-height:20px}.el-step__description.is-process{color:var(--el-text-color-primary)}.el-step__description.is-wait{color:var(--el-text-color-placeholder)}.el-step__description.is-success{color:var(--el-color-success)}.el-step__description.is-error{color:var(--el-color-danger)}.el-step__description.is-finish{color:var(--el-color-primary)}.el-step.is-horizontal{display:inline-block}.el-step.is-horizontal .el-step__line{height:2px;top:11px;left:0;right:0}.el-step.is-vertical{display:flex}.el-step.is-vertical .el-step__head{flex-grow:0;width:24px}.el-step.is-vertical .el-step__main{flex-grow:1;padding-left:10px}.el-step.is-vertical .el-step__title{padding-bottom:8px;line-height:24px}.el-step.is-vertical .el-step__line{width:2px;top:0;bottom:0;left:11px}.el-step.is-vertical .el-step__icon.is-icon{width:24px}.el-step.is-vertical .el-step__description{padding-right:0}.el-step.is-center .el-step__head,.el-step.is-center .el-step__main{text-align:center}.el-step.is-center .el-step__description{padding-left:20%;padding-right:20%}.el-step.is-center .el-step__line{left:50%;right:-50%}.el-step.is-simple{align-items:center;display:flex}.el-step.is-simple .el-step__head{width:auto;padding-right:10px;font-size:0}.el-step.is-simple .el-step__icon{background:0 0;width:16px;height:16px;font-size:12px}.el-step.is-simple .el-step__icon-inner[class*=el-icon]:not(.is-status){font-size:18px}.el-step.is-simple .el-step__icon-inner.is-status{transform:scale(.8)translateY(1px)}.el-step.is-simple .el-step__main{flex-grow:1;align-items:stretch;display:flex;position:relative}.el-step.is-simple .el-step__title{font-size:16px;line-height:20px}.el-step.is-simple:not(:last-of-type) .el-step__title{overflow-wrap:break-word;max-width:50%}.el-step.is-simple .el-step__arrow{flex-grow:1;justify-content:center;align-items:center;display:flex}.el-step.is-simple .el-step__arrow:before,.el-step.is-simple .el-step__arrow:after{content:"";background:var(--el-text-color-placeholder);width:1px;height:15px;display:inline-block;position:absolute}.el-step.is-simple .el-step__arrow:before{transform-origin:0 0;transform:rotate(-45deg)translateY(-4px)}.el-step.is-simple .el-step__arrow:after{transform-origin:100% 100%;transform:rotate(45deg)translateY(4px)}.el-step.is-simple:last-of-type .el-step__arrow{display:none}.el-steps{line-height:normal;display:flex}.el-steps--simple{background:var(--el-fill-color-light);border-radius:4px;padding:13px 8%}.el-steps--horizontal{white-space:nowrap}.el-steps--vertical{flex-flow:column;height:100%}.el-switch{--el-switch-on-color:var(--el-color-primary);--el-switch-off-color:var(--el-border-color);vertical-align:middle;align-items:center;height:32px;font-size:14px;line-height:20px;display:inline-flex;position:relative}.el-switch.is-disabled .el-switch__core,.el-switch.is-disabled .el-switch__label{cursor:not-allowed}.el-switch__label{transition:var(--el-transition-duration-fast);cursor:pointer;vertical-align:middle;height:20px;color:var(--el-text-color-primary);font-size:14px;font-weight:500;display:inline-block}.el-switch__label.is-active{color:var(--el-color-primary)}.el-switch__label--left{margin-right:10px}.el-switch__label--right{margin-left:10px}.el-switch__label *{font-size:14px;line-height:1;display:inline-block}.el-switch__label .el-icon{height:inherit}.el-switch__label .el-icon svg{vertical-align:middle}.el-switch__input{opacity:0;width:0;height:0;margin:0;position:absolute}.el-switch__input:focus-visible~.el-switch__core{outline:2px solid var(--el-switch-on-color);outline-offset:1px}.el-switch__core{border:1px solid var(--el-switch-border-color,var(--el-switch-off-color));box-sizing:border-box;background:var(--el-switch-off-color);cursor:pointer;min-width:40px;height:20px;transition:border-color var(--el-transition-duration), background-color var(--el-transition-duration);border-radius:10px;outline:none;align-items:center;display:inline-flex;position:relative}.el-switch__core .el-switch__inner{width:100%;transition:all var(--el-transition-duration);justify-content:center;align-items:center;height:16px;padding:0 4px 0 18px;display:flex;overflow:hidden}.el-switch__core .el-switch__inner-wrapper{color:var(--el-color-white);-webkit-user-select:none;user-select:none;text-overflow:ellipsis;white-space:nowrap;align-items:center;font-size:12px;display:flex;overflow:hidden}.el-switch__core .el-switch__action{border-radius:var(--el-border-radius-circle);transition:all var(--el-transition-duration);background-color:var(--el-color-white);width:16px;height:16px;color:var(--el-switch-off-color);justify-content:center;align-items:center;display:flex;position:absolute;left:1px}.el-switch.is-checked .el-switch__core{border-color:var(--el-switch-border-color,var(--el-switch-on-color));background-color:var(--el-switch-on-color)}.el-switch.is-checked .el-switch__core .el-switch__action{color:var(--el-switch-on-color);left:calc(100% - 17px)}.el-switch.is-checked .el-switch__core .el-switch__inner{padding:0 18px 0 4px}.el-switch.is-disabled{opacity:.6}.el-switch--wide .el-switch__label.el-switch__label--left span{left:10px}.el-switch--wide .el-switch__label.el-switch__label--right span{right:10px}.el-switch .label-fade-enter-from,.el-switch .label-fade-leave-active{opacity:0}.el-switch--large{height:40px;font-size:14px;line-height:24px}.el-switch--large .el-switch__label{height:24px;font-size:14px}.el-switch--large .el-switch__label *{font-size:14px}.el-switch--large .el-switch__core{border-radius:12px;min-width:50px;height:24px}.el-switch--large .el-switch__core .el-switch__inner{height:20px;padding:0 6px 0 22px}.el-switch--large .el-switch__core .el-switch__action{width:20px;height:20px}.el-switch--large.is-checked .el-switch__core .el-switch__action{left:calc(100% - 21px)}.el-switch--large.is-checked .el-switch__core .el-switch__inner{padding:0 22px 0 6px}.el-switch--small{height:24px;font-size:12px;line-height:16px}.el-switch--small .el-switch__label{height:16px;font-size:12px}.el-switch--small .el-switch__label *{font-size:12px}.el-switch--small .el-switch__core{border-radius:8px;min-width:30px;height:16px}.el-switch--small .el-switch__core .el-switch__inner{height:12px;padding:0 2px 0 14px}.el-switch--small .el-switch__core .el-switch__action{width:12px;height:12px}.el-switch--small.is-checked .el-switch__core .el-switch__action{left:calc(100% - 13px)}.el-switch--small.is-checked .el-switch__core .el-switch__inner{padding:0 14px 0 2px}.el-table-column--selection .cell{padding-left:14px;padding-right:14px}.el-table-filter{border:solid 1px var(--el-border-color-lighter);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;background-color:#fff;border-radius:2px}.el-table-filter__list{outline:none;min-width:100px;margin:0;padding:5px 0;list-style:none}.el-table-filter__list-item{cursor:pointer;line-height:36px;font-size:var(--el-font-size-base);outline:none;padding:0 10px}.el-table-filter__list-item:hover,.el-table-filter__list-item:focus{background-color:var(--el-color-primary-light-9);color:var(--el-color-primary)}.el-table-filter__list-item.is-active{background-color:var(--el-color-primary);color:#fff}.el-table-filter__multiple{outline:none}.el-table-filter__content{min-width:100px}.el-table-filter__bottom{border-top:1px solid var(--el-border-color-lighter);padding:8px}.el-table-filter__bottom button{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-filter__bottom button:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-filter__bottom button{color:var(--el-text-color-regular);font-size:var(--el-font-size-small);padding:0 3px}.el-table-filter__bottom button:hover{color:var(--el-color-primary)}.el-table-filter__bottom button.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table-filter__wrap{max-height:280px}.el-table-filter__checkbox-group{padding:10px}.el-table-filter__checkbox-group label.el-checkbox{height:unset;align-items:center;margin-bottom:12px;margin-left:5px;margin-right:5px;display:flex}.el-table-filter__checkbox-group .el-checkbox:last-child{margin-bottom:0}.el-table{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);box-sizing:border-box;background-color:var(--el-table-bg-color);width:100%;max-width:100%;height:fit-content;font-size:var(--el-font-size-base);color:var(--el-table-text-color);position:relative;overflow:hidden}.el-table__inner-wrapper{flex-direction:column;height:100%;display:flex;position:relative}.el-table__inner-wrapper:before{height:1px;bottom:0;left:0}.el-table tbody:focus-visible{outline:none}.el-table.has-footer.el-table--scrollable-y tr:last-child td.el-table__cell,.el-table.has-footer.el-table--fluid-height tr:last-child td.el-table__cell{border-bottom-color:#0000}.el-table__empty-block{text-align:center;justify-content:center;align-items:center;width:100%;min-height:60px;display:flex;position:sticky;left:0}.el-table__empty-text{width:50%;color:var(--el-text-color-secondary);line-height:60px}.el-table__expand-column .cell{text-align:center;-webkit-user-select:none;user-select:none;padding:0}.el-table__expand-icon{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:-2px}.el-table__expand-icon{color:var(--el-text-color-regular);width:min(23px,100%);height:23px;font-size:12px;line-height:12px}.el-table__expand-icon.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-table__expand-icon--expanded{transform:rotate(90deg)}.el-table__expand-icon>.el-icon{font-size:12px}.el-table__expanded-cell{background-color:var(--el-table-expanded-cell-bg-color)}.el-table__expanded-cell[class*=cell]{padding:20px 50px}.el-table__expanded-cell:hover{background-color:#0000!important}.el-table__placeholder{width:20px;display:inline-block}.el-table__append-wrapper{overflow:hidden}.el-table--fit{border-bottom:0;border-right:0}.el-table--fit .el-table__cell.gutter{border-right-width:1px}.el-table--fit .el-table__inner-wrapper:before{width:100%}.el-table thead{color:var(--el-table-header-text-color)}.el-table thead th{font-weight:600}.el-table thead.is-group th.el-table__cell{background:var(--el-fill-color-light)}.el-table .el-table__cell{box-sizing:border-box;text-overflow:ellipsis;vertical-align:middle;text-align:left;min-width:0;z-index:var(--el-table-index);padding:8px 0;position:relative}.el-table .el-table__cell.is-center{text-align:center}.el-table .el-table__cell.is-right{text-align:right}.el-table .el-table__cell.gutter{border-bottom-width:0;border-right-width:0;width:15px;padding:0}.el-table .el-table__cell.is-hidden>*{visibility:hidden}.el-table .cell{box-sizing:border-box;text-overflow:ellipsis;white-space:normal;overflow-wrap:break-word;padding:0 12px;line-height:23px;overflow:hidden}.el-table .cell.el-tooltip{white-space:nowrap;min-width:50px}.el-table--large{font-size:var(--el-font-size-base)}.el-table--large .el-table__cell{padding:12px 0}.el-table--large .cell{padding:0 16px}.el-table--default{font-size:var(--el-font-size-base)}.el-table--default .el-table__cell{padding:8px 0}.el-table--default .cell{padding:0 12px}.el-table--small{font-size:var(--el-font-size-extra-small)}.el-table--small .el-table__cell{padding:4px 0}.el-table--small .cell{padding:0 8px}.el-table tr{background-color:var(--el-table-tr-bg-color)}.el-table tr input[type=checkbox]{margin:0}.el-table th.el-table__cell.is-leaf,.el-table td.el-table__cell{border-bottom:var(--el-table-border)}.el-table th.el-table__cell.is-sortable{cursor:pointer}.el-table th.el-table__cell{background-color:var(--el-table-header-bg-color)}.el-table th.el-table__cell>.cell.highlight{color:var(--el-color-primary)}.el-table th.el-table__cell.required>div:before{content:"";vertical-align:middle;background:#ff4d51;border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.el-table td.el-table__cell div{box-sizing:border-box}.el-table td.el-table__cell.gutter{width:0}.el-table--border:after,.el-table--border:before,.el-table--border .el-table__inner-wrapper:after,.el-table__inner-wrapper:before{content:"";background-color:var(--el-table-border-color);z-index:calc(var(--el-table-index) + 2);position:absolute}.el-table--border .el-table__inner-wrapper:after{width:100%;height:1px;z-index:calc(var(--el-table-index) + 2);top:0;left:0}.el-table--border:before{width:1px;height:100%;top:-1px;left:0}.el-table--border:after{width:1px;height:100%;top:-1px;right:0}.el-table--border .el-table__inner-wrapper{border-bottom:none;border-right:none}.el-table--border .el-table__footer-wrapper{flex-shrink:0;position:relative}.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table--border th.el-table__cell.gutter:last-of-type{border-bottom:var(--el-table-border);border-bottom-width:1px}.el-table--border th.el-table__cell{border-bottom:var(--el-table-border)}.el-table--hidden{visibility:hidden}.el-table__header-wrapper,.el-table__body-wrapper,.el-table__footer-wrapper{width:100%}.el-table__header-wrapper tr td.el-table-fixed-column--left,.el-table__header-wrapper tr td.el-table-fixed-column--right,.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right,.el-table__body-wrapper tr td.el-table-fixed-column--left,.el-table__body-wrapper tr td.el-table-fixed-column--right,.el-table__body-wrapper tr th.el-table-fixed-column--left,.el-table__body-wrapper tr th.el-table-fixed-column--right,.el-table__footer-wrapper tr td.el-table-fixed-column--left,.el-table__footer-wrapper tr td.el-table-fixed-column--right,.el-table__footer-wrapper tr th.el-table-fixed-column--left,.el-table__footer-wrapper tr th.el-table-fixed-column--right{background:inherit;z-index:calc(var(--el-table-index) + 1);position:sticky!important}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{content:"";width:10px;box-shadow:none;touch-action:none;pointer-events:none;position:absolute;top:0;bottom:0;overflow:hidden}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-first-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-first-column:before{left:-10px}.el-table__header-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__header-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__body-wrapper tr th.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr td.el-table-fixed-column--right.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--left.is-last-column:before,.el-table__footer-wrapper tr th.el-table-fixed-column--right.is-last-column:before{right:-10px}.el-table__header-wrapper tr td.el-table__fixed-right-patch,.el-table__header-wrapper tr th.el-table__fixed-right-patch,.el-table__body-wrapper tr td.el-table__fixed-right-patch,.el-table__body-wrapper tr th.el-table__fixed-right-patch,.el-table__footer-wrapper tr td.el-table__fixed-right-patch,.el-table__footer-wrapper tr th.el-table__fixed-right-patch{z-index:calc(var(--el-table-index) + 1);background:#fff;right:0;position:sticky!important}.el-table__header-wrapper{flex-shrink:0}.el-table__header-wrapper tr th.el-table-fixed-column--left,.el-table__header-wrapper tr th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__header,.el-table__body,.el-table__footer{table-layout:fixed;border-collapse:separate}.el-table__header-wrapper{overflow:hidden}.el-table__header-wrapper tbody td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__footer-wrapper{flex-shrink:0;overflow:hidden}.el-table__footer-wrapper tfoot td.el-table__cell{background-color:var(--el-table-row-hover-bg-color);color:var(--el-table-text-color)}.el-table__header-wrapper .el-table-column--selection>.cell,.el-table__body-wrapper .el-table-column--selection>.cell{align-items:center;height:23px;display:inline-flex}.el-table__header-wrapper .el-table-column--selection .el-checkbox,.el-table__body-wrapper .el-table-column--selection .el-checkbox{height:unset}.el-table.is-scrolling-left .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-left.el-table--border .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:var(--el-table-border)}.el-table.is-scrolling-left th.el-table-fixed-column--left{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-right .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-right th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column.el-table__cell{border-right:none}.el-table.is-scrolling-middle .el-table-fixed-column--right.is-first-column:before{box-shadow:var(--el-table-fixed-right-column)}.el-table.is-scrolling-middle .el-table-fixed-column--left.is-last-column:before{box-shadow:var(--el-table-fixed-left-column)}.el-table.is-scrolling-none .el-table-fixed-column--left.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--left.is-last-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-first-column:before,.el-table.is-scrolling-none .el-table-fixed-column--right.is-last-column:before{box-shadow:none}.el-table.is-scrolling-none th.el-table-fixed-column--left,.el-table.is-scrolling-none th.el-table-fixed-column--right{background-color:var(--el-table-header-bg-color)}.el-table__body-wrapper{flex:1;position:relative;overflow:hidden}.el-table__body-wrapper .el-scrollbar__bar{z-index:calc(var(--el-table-index) + 2)}.el-table .caret-wrapper{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table .caret-wrapper:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table .caret-wrapper{vertical-align:middle;width:24px;height:14px;overflow:initial;flex-direction:column;align-items:center;display:inline-flex;position:relative}.el-table .sort-caret{border:5px solid #0000;width:0;height:0;position:absolute;left:7px}.el-table .sort-caret.ascending{border-bottom-color:var(--el-text-color-placeholder);top:-5px}.el-table .sort-caret.descending{border-top-color:var(--el-text-color-placeholder);bottom:-3px}.el-table .ascending .sort-caret.ascending{border-bottom-color:var(--el-color-primary)}.el-table .descending .sort-caret.descending{border-top-color:var(--el-color-primary)}.el-table .hidden-columns{visibility:hidden;z-index:-1;position:absolute}.el-table--striped .el-table__body tr.el-table__row--striped td.el-table__cell{background:var(--el-fill-color-lighter)}.el-table--striped .el-table__body tr.el-table__row--striped.current-row td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table__body tr.hover-row>td.el-table__cell,.el-table__body tr.hover-row.current-row>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped>td.el-table__cell,.el-table__body tr.hover-row.el-table__row--striped.current-row>td.el-table__cell,.el-table__body tr>td.hover-cell{background-color:var(--el-table-row-hover-bg-color)}.el-table__body tr.current-row>td.el-table__cell{background-color:var(--el-table-current-row-bg-color)}.el-table.el-table--scrollable-y .el-table__body-header{z-index:calc(var(--el-table-index) + 2);position:sticky;top:0}.el-table.el-table--scrollable-y .el-table__body-footer{z-index:calc(var(--el-table-index) + 2);position:sticky;bottom:0}.el-table__column-resize-proxy{border-left:var(--el-table-border);width:0;z-index:calc(var(--el-table-index) + 9);position:absolute;top:0;bottom:0;left:200px}.el-table__column-filter-trigger{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table__column-filter-trigger:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table__column-filter-trigger{display:inline-block}.el-table__column-filter-trigger i{color:var(--el-color-info);vertical-align:middle;font-size:14px}.el-table__border-left-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0;left:0}.el-table__border-bottom-patch{height:1px;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;left:0}.el-table__border-right-patch{width:1px;height:100%;z-index:calc(var(--el-table-index) + 2);background-color:var(--el-table-border-color);position:absolute;top:0}.el-table--enable-row-transition .el-table__body td.el-table__cell{transition:background-color .25s 1ms}.el-table--enable-row-hover .el-table__body tr:hover>td.el-table__cell{background-color:var(--el-table-row-hover-bg-color)}.el-table [class*=el-table__row--level] .el-table__expand-icon{text-align:center;width:20px;display:inline-block}.el-table .el-table.el-table--border .el-table__cell{border-right:var(--el-table-border)}.el-table:not(.el-table--border) .el-table__cell{border-right:none}.el-table:not(.el-table--border)>.el-table__inner-wrapper:after{content:none}.el-table-v2{--el-table-border-color:var(--el-border-color-lighter);--el-table-border:1px solid var(--el-table-border-color);--el-table-text-color:var(--el-text-color-regular);--el-table-header-text-color:var(--el-text-color-secondary);--el-table-row-hover-bg-color:var(--el-fill-color-light);--el-table-current-row-bg-color:var(--el-color-primary-light-9);--el-table-header-bg-color:var(--el-fill-color-blank);--el-table-fixed-box-shadow:var(--el-box-shadow-light);--el-table-bg-color:var(--el-fill-color-blank);--el-table-tr-bg-color:var(--el-fill-color-blank);--el-table-expanded-cell-bg-color:var(--el-fill-color-blank);--el-table-fixed-left-column:inset 10px 0 10px -10px #00000026;--el-table-fixed-right-column:inset -10px 0 10px -10px #00000026;--el-table-index:var(--el-index-normal);font-size:var(--el-font-size-base)}.el-table-v2 *{box-sizing:border-box}.el-table-v2__root{position:relative}.el-table-v2__root:hover .el-table-v2__main .el-virtual-scrollbar{opacity:1}.el-table-v2__main{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden}.el-table-v2__main .el-vl__horizontal,.el-table-v2__main .el-vl__vertical{z-index:2}.el-table-v2__left{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;left:0;overflow:hidden;box-shadow:2px 0 4px #0000000f}.el-table-v2__left .el-virtual-scrollbar{opacity:0}.el-table-v2__left .el-vl__vertical,.el-table-v2__left .el-vl__horizontal{z-index:-1}.el-table-v2__right{background-color:var(--el-bg-color);flex-direction:column-reverse;display:flex;position:absolute;top:0;right:0;overflow:hidden;box-shadow:-2px 0 4px #0000000f}.el-table-v2__right .el-virtual-scrollbar{opacity:0}.el-table-v2__right .el-vl__vertical,.el-table-v2__right .el-vl__horizontal{z-index:-1}.el-table-v2__header-row,.el-table-v2__row{padding-inline-end:var(--el-table-scrollbar-size)}.el-table-v2__header-wrapper{overflow:hidden}.el-table-v2__header{position:relative;overflow:hidden}.el-table-v2__header .el-checkbox{z-index:0}.el-table-v2__footer{position:absolute;bottom:0;left:0;right:0;overflow:hidden}.el-table-v2__empty{position:absolute;left:0}.el-table-v2__overlay{z-index:9999;position:absolute;inset:0}.el-table-v2__header-row{border-bottom:var(--el-table-border);display:flex}.el-table-v2__header-cell{-webkit-user-select:none;user-select:none;background-color:var(--el-table-header-bg-color);height:100%;color:var(--el-table-header-text-color);align-items:center;padding:0 8px;font-weight:700;display:flex;overflow:hidden}.el-table-v2__header-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__header-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__header-cell.is-sortable{cursor:pointer}.el-table-v2__header-cell:hover .el-icon{display:block}.el-table-v2__sort-icon{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__sort-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__sort-icon{transition:opacity, display var(--el-transition-duration);opacity:.6;display:none}.el-table-v2__sort-icon.is-sorting{opacity:1;display:flex}.el-table-v2__row{border-bottom:var(--el-table-border);transition:background-color var(--el-transition-duration);align-items:center;display:flex}.el-table-v2__row.is-hovered,.el-table-v2__row:hover{background-color:var(--el-table-row-hover-bg-color)}.el-table-v2__row-cell{align-items:center;height:100%;padding:0 8px;display:flex;overflow:hidden}.el-table-v2__row-cell.is-align-center{text-align:center;justify-content:center}.el-table-v2__row-cell.is-align-right{text-align:right;justify-content:flex-end}.el-table-v2__expand-icon{cursor:pointer;appearance:none;border-radius:var(--el-border-radius-base);transition:transform var(--el-transition-duration-fast) ease-in-out;background-color:#0000;border:none;outline:none;margin:0;padding:0}.el-table-v2__expand-icon:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-table-v2__expand-icon{-webkit-user-select:none;user-select:none;margin:0 4px}.el-table-v2__expand-icon svg{transition:transform var(--el-transition-duration)}.el-table-v2__expand-icon.is-expanded svg{transform:rotate(90deg)}.el-table-v2:not(.is-dynamic) .el-table-v2__cell-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row{align-items:stretch;overflow:hidden}.el-table-v2.is-dynamic .el-table-v2__row .el-table-v2__row-cell{overflow-wrap:break-word}.el-tabs{--el-tabs-header-height:40px;display:flex}.el-tabs__header{justify-content:space-between;align-items:center;margin:0 0 15px;padding:0;display:flex;position:relative}.el-tabs__header-vertical{flex-direction:column}.el-tabs__active-bar{background-color:var(--el-color-primary);z-index:1;height:2px;transition:width var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier), transform var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);list-style:none;position:absolute;bottom:0;left:0}.el-tabs__active-bar.is-bottom{bottom:auto}.el-tabs__new-tab{border:1px solid var(--el-border-color);text-align:center;width:20px;height:20px;color:var(--el-text-color-primary);cursor:pointer;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;margin:10px 0 10px 10px;font-size:12px;line-height:20px;transition:all .15s;display:flex}.el-tabs__new-tab .is-icon-plus{height:inherit;width:inherit;transform:scale(.8)}.el-tabs__new-tab .is-icon-plus svg{vertical-align:middle}.el-tabs__new-tab:hover{color:var(--el-color-primary)}.el-tabs__new-tab-vertical{margin-left:0}.el-tabs__nav-wrap{flex:auto;margin-bottom:-1px;position:relative;overflow:hidden}.el-tabs__nav-wrap:after{content:"";background-color:var(--el-border-color-light);width:100%;height:2px;z-index:var(--el-index-normal);position:absolute;bottom:0;left:0}.el-tabs__nav-wrap.is-bottom:after{top:0;bottom:auto}.el-tabs__nav-wrap.is-scrollable{box-sizing:border-box;padding:0 20px}.el-tabs__nav-scroll{overflow:hidden}.el-tabs__nav-next,.el-tabs__nav-prev{cursor:pointer;color:var(--el-text-color-secondary);text-align:center;width:20px;font-size:12px;line-height:44px;position:absolute}.el-tabs__nav-next.is-disabled,.el-tabs__nav-prev.is-disabled{color:var(--el-text-color-disabled);cursor:not-allowed}.el-tabs__nav-next{right:0}.el-tabs__nav-prev{left:0}.el-tabs__nav{white-space:nowrap;transition:transform var(--el-transition-duration);float:left;z-index:calc(var(--el-index-normal) + 1);display:flex;position:relative}.el-tabs__nav.is-stretch{min-width:100%;display:flex}.el-tabs__nav.is-stretch>*{text-align:center;flex:1}.el-tabs__item{height:var(--el-tabs-header-height);box-sizing:border-box;font-size:var(--el-font-size-base);color:var(--el-text-color-primary);justify-content:center;align-items:center;padding:0 20px;font-weight:500;list-style:none;display:flex;position:relative}.el-tabs__item:focus,.el-tabs__item:focus:active{outline:none}.el-tabs__item:focus-visible{box-shadow:0 0 2px 2px var(--el-color-primary) inset;border-radius:3px}.el-tabs__item .is-icon-close{text-align:center;transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);border-radius:50%;margin-left:5px}.el-tabs__item .is-icon-close:before{display:inline-block;transform:scale(.9)}.el-tabs__item .is-icon-close:hover{background-color:var(--el-text-color-placeholder);color:#fff}.el-tabs__item.is-active{color:var(--el-color-primary)}.el-tabs__item:hover{color:var(--el-color-primary);cursor:pointer}.el-tabs__item.is-disabled{color:var(--el-disabled-text-color);cursor:not-allowed}.el-tabs__content{flex-grow:1;position:relative;overflow:hidden}.el-tabs--top>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:0}.el-tabs--top>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom>.el-tabs__header .el-tabs__item:last-child{padding-right:0}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:nth-child(2),.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:nth-child(2){padding-left:20px}.el-tabs--top.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--top.el-tabs--card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--border-card>.el-tabs__header .el-tabs__item:last-child,.el-tabs--bottom.el-tabs--card>.el-tabs__header .el-tabs__item:last-child{padding-right:20px}.el-tabs--card>.el-tabs__header{border-bottom:1px solid var(--el-border-color-light);height:var(--el-tabs-header-height);box-sizing:border-box}.el-tabs--card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--card>.el-tabs__header .el-tabs__nav{border:1px solid var(--el-border-color-light);box-sizing:border-box;border-bottom:none;border-radius:4px 4px 0 0}.el-tabs--card>.el-tabs__header .el-tabs__active-bar{display:none}.el-tabs--card>.el-tabs__header .el-tabs__item .is-icon-close{transform-origin:100%;width:0;height:14px;font-size:12px;position:relative;right:-2px;overflow:hidden}.el-tabs--card>.el-tabs__header .el-tabs__item{border-bottom:1px solid #0000;border-left:1px solid var(--el-border-color-light);transition:color var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier), padding var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);margin-top:-1px}.el-tabs--card>.el-tabs__header .el-tabs__item:first-child{border-left:none}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover{padding-left:13px;padding-right:13px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-closable:hover .is-icon-close{width:14px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active{border-bottom-color:var(--el-bg-color)}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable{padding-left:20px;padding-right:20px}.el-tabs--card>.el-tabs__header .el-tabs__item.is-active.is-closable .is-icon-close{width:14px}.el-tabs--border-card{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color)}.el-tabs--border-card>.el-tabs__content{padding:15px}.el-tabs--border-card>.el-tabs__header{background-color:var(--el-fill-color-light);border-bottom:1px solid var(--el-border-color-light);margin:0}.el-tabs--border-card>.el-tabs__header .el-tabs__nav-wrap:after{content:none}.el-tabs--border-card>.el-tabs__header .el-tabs__item{transition:all var(--el-transition-duration) var(--el-transition-function-ease-in-out-bezier);color:var(--el-text-color-secondary);border:1px solid #0000;margin-top:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item:first-child,.el-tabs--border-card>.el-tabs__header .el-tabs__item+.el-tabs__item{margin-left:-1px}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-active{color:var(--el-color-primary);background-color:var(--el-bg-color-overlay);border-right-color:var(--el-border-color);border-left-color:var(--el-border-color)}.el-tabs--border-card>.el-tabs__header .el-tabs__item:not(.is-disabled):hover{color:var(--el-color-primary)}.el-tabs--border-card>.el-tabs__header .el-tabs__item.is-disabled{color:var(--el-disabled-text-color)}.el-tabs--border-card>.el-tabs__header .is-scrollable .el-tabs__item:first-child{margin-left:0}.el-tabs--bottom{flex-direction:column}.el-tabs--bottom .el-tabs__header.is-bottom{margin-top:10px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__header.is-bottom{border-bottom:0;border-top:1px solid var(--el-border-color)}.el-tabs--bottom.el-tabs--border-card .el-tabs__nav-wrap.is-bottom{margin-top:-1px;margin-bottom:0}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom:not(.is-active){border:1px solid #0000}.el-tabs--bottom.el-tabs--border-card .el-tabs__item.is-bottom{margin:0 -1px -1px}.el-tabs--card>.el-tabs__header.is-left,.el-tabs--card>.el-tabs__header.is-right,.el-tabs--border-card>.el-tabs__header.is-left,.el-tabs--border-card>.el-tabs__header.is-right{border-bottom:none}.el-tabs--left,.el-tabs--right{overflow:hidden}.el-tabs--left .el-tabs__header.is-left,.el-tabs--left .el-tabs__header.is-right,.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--left .el-tabs__nav-scroll,.el-tabs--right .el-tabs__header.is-left,.el-tabs--right .el-tabs__header.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-scroll{height:100%}.el-tabs--left .el-tabs__active-bar.is-left,.el-tabs--left .el-tabs__active-bar.is-right,.el-tabs--right .el-tabs__active-bar.is-left,.el-tabs--right .el-tabs__active-bar.is-right{width:2px;height:auto;top:0;bottom:auto}.el-tabs--left .el-tabs__nav-wrap.is-left,.el-tabs--left .el-tabs__nav-wrap.is-right,.el-tabs--right .el-tabs__nav-wrap.is-left,.el-tabs--right .el-tabs__nav-wrap.is-right{margin-bottom:0}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{text-align:center;cursor:pointer;width:100%;height:30px;line-height:30px}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev i,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next i{transform:rotate(90deg)}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev.is-disabled,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next.is-disabled{cursor:not-allowed}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-prev,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-prev{top:0;left:auto}.el-tabs--left .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--left .el-tabs__nav-wrap.is-right>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-left>.el-tabs__nav-next,.el-tabs--right .el-tabs__nav-wrap.is-right>.el-tabs__nav-next{bottom:0;right:auto}.el-tabs--left .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--left .el-tabs__nav-wrap.is-right.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-left.is-scrollable,.el-tabs--right .el-tabs__nav-wrap.is-right.is-scrollable{padding:30px 0}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__nav-wrap.is-right:after,.el-tabs--right .el-tabs__nav-wrap.is-left:after,.el-tabs--right .el-tabs__nav-wrap.is-right:after{width:2px;height:100%;top:0;bottom:auto}.el-tabs--left .el-tabs__nav.is-left,.el-tabs--left .el-tabs__nav.is-right,.el-tabs--right .el-tabs__nav.is-left,.el-tabs--right .el-tabs__nav.is-right{flex-direction:column}.el-tabs--left .el-tabs__item.is-left,.el-tabs--right .el-tabs__item.is-left{justify-content:flex-end}.el-tabs--left .el-tabs__item.is-right,.el-tabs--right .el-tabs__item.is-right{justify-content:flex-start}.el-tabs--left{flex-direction:row}.el-tabs--left .el-tabs__header.is-left{margin-bottom:0;margin-right:10px}.el-tabs--left .el-tabs__nav-wrap.is-left{margin-right:-1px}.el-tabs--left .el-tabs__nav-wrap.is-left:after,.el-tabs--left .el-tabs__active-bar.is-left{left:auto;right:0}.el-tabs--left .el-tabs__item.is-left{text-align:right}.el-tabs--left.el-tabs--card .el-tabs__active-bar.is-left{display:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left{border-left:none;border-right:1px solid var(--el-border-color-light);border-bottom:none;border-top:1px solid var(--el-border-color-light);text-align:left}.el-tabs--left.el-tabs--card .el-tabs__item.is-left:first-child{border-right:1px solid var(--el-border-color-light);border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left:none;border-right-color:#fff}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:first-child{border-top:none}.el-tabs--left.el-tabs--card .el-tabs__item.is-left.is-active:last-child{border-bottom:none}.el-tabs--left.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-right:none;border-radius:4px 0 0 4px}.el-tabs--left.el-tabs--card .el-tabs__new-tab{float:none}.el-tabs--left.el-tabs--border-card .el-tabs__header.is-left{border-right:1px solid var(--el-border-color)}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left{border:1px solid #0000;margin:-1px 0 -1px -1px}.el-tabs--left.el-tabs--border-card .el-tabs__item.is-left.is-active{border-color:#d1dbe5 #0000}.el-tabs--left>.el-tabs__content+.el-tabs__header{order:-1}.el-tabs--right .el-tabs__header.is-right{margin-bottom:0;margin-left:10px}.el-tabs--right .el-tabs__nav-wrap.is-right{margin-left:-1px}.el-tabs--right .el-tabs__nav-wrap.is-right:after{left:0;right:auto}.el-tabs--right .el-tabs__active-bar.is-right{left:0}.el-tabs--right.el-tabs--card .el-tabs__active-bar.is-right{display:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right{border-bottom:none;border-top:1px solid var(--el-border-color-light)}.el-tabs--right.el-tabs--card .el-tabs__item.is-right:first-child{border-left:1px solid var(--el-border-color-light);border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active{border:1px solid var(--el-border-color-light);border-bottom:none;border-left-color:#fff;border-right:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:first-child{border-top:none}.el-tabs--right.el-tabs--card .el-tabs__item.is-right.is-active:last-child{border-bottom:none}.el-tabs--right.el-tabs--card .el-tabs__nav{border-bottom:1px solid var(--el-border-color-light);border-left:none;border-radius:0 4px 4px 0}.el-tabs--right.el-tabs--border-card .el-tabs__header.is-right{border-left:1px solid var(--el-border-color)}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right{border:1px solid #0000;margin:-1px -1px -1px 0}.el-tabs--right.el-tabs--border-card .el-tabs__item.is-right.is-active{border-color:#d1dbe5 #0000}.el-tabs--top{flex-direction:column}.el-tabs--top>.el-tabs__content+.el-tabs__header{order:-1}.slideInRight-transition,.slideInLeft-transition{display:inline-block}.slideInRight-enter{animation:slideInRight-enter var(--el-transition-duration)}.slideInRight-leave{animation:slideInRight-leave var(--el-transition-duration);position:absolute;left:0;right:0}.slideInLeft-enter{animation:slideInLeft-enter var(--el-transition-duration)}.slideInLeft-leave{animation:slideInLeft-leave var(--el-transition-duration);position:absolute;left:0;right:0}@keyframes slideInRight-enter{0%{opacity:0;transform-origin:0 0;transform:translate(100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInRight-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(100%)}}@keyframes slideInLeft-enter{0%{opacity:0;transform-origin:0 0;transform:translate(-100%)}to{opacity:1;transform-origin:0 0;transform:translate(0)}}@keyframes slideInLeft-leave{0%{transform-origin:0 0;opacity:1;transform:translate(0)}to{transform-origin:0 0;opacity:0;transform:translate(-100%)}}.el-tag{--el-tag-font-size:12px;--el-tag-border-radius:4px;--el-tag-border-radius-rounded:9999px;background-color:var(--el-tag-bg-color);border-color:var(--el-tag-border-color);color:var(--el-tag-text-color);vertical-align:middle;height:24px;font-size:var(--el-tag-font-size);border-radius:var(--el-tag-border-radius);box-sizing:border-box;white-space:nowrap;--el-icon-size:14px;--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary);border-style:solid;border-width:1px;justify-content:center;align-items:center;padding:0 9px;line-height:1;display:inline-flex}.el-tag.el-tag--primary{--el-tag-bg-color:var(--el-color-primary-light-9);--el-tag-border-color:var(--el-color-primary-light-8);--el-tag-hover-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-bg-color:var(--el-color-success-light-9);--el-tag-border-color:var(--el-color-success-light-8);--el-tag-hover-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-bg-color:var(--el-color-warning-light-9);--el-tag-border-color:var(--el-color-warning-light-8);--el-tag-hover-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-bg-color:var(--el-color-danger-light-9);--el-tag-border-color:var(--el-color-danger-light-8);--el-tag-hover-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-bg-color:var(--el-color-error-light-9);--el-tag-border-color:var(--el-color-error-light-8);--el-tag-hover-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-bg-color:var(--el-color-info-light-9);--el-tag-border-color:var(--el-color-info-light-8);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-hit{border-color:var(--el-color-primary)}.el-tag.is-round{border-radius:var(--el-tag-border-radius-rounded)}.el-tag .el-tag__close{color:var(--el-tag-text-color);flex-shrink:0}.el-tag .el-tag__close:hover{color:var(--el-color-white);background-color:var(--el-tag-hover-color)}.el-tag.el-tag--primary{--el-tag-text-color:var(--el-color-primary)}.el-tag.el-tag--success{--el-tag-text-color:var(--el-color-success)}.el-tag.el-tag--warning{--el-tag-text-color:var(--el-color-warning)}.el-tag.el-tag--danger{--el-tag-text-color:var(--el-color-danger)}.el-tag.el-tag--error{--el-tag-text-color:var(--el-color-error)}.el-tag.el-tag--info{--el-tag-text-color:var(--el-color-info)}.el-tag .el-icon{cursor:pointer;font-size:calc(var(--el-icon-size) - 2px);height:var(--el-icon-size);width:var(--el-icon-size);border-radius:50%}.el-tag .el-tag__close{background-color:#0000;border:none;border-radius:50%;outline:none;margin-left:6px;padding:0;overflow:hidden}.el-tag .el-tag__close:focus-visible{outline:2px solid var(--el-color-primary);outline-offset:2px}.el-tag .el-tag__close .el-icon{display:flex}.el-tag--dark{--el-tag-text-color:var(--el-color-white);--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--primary{--el-tag-bg-color:var(--el-color-primary);--el-tag-border-color:var(--el-color-primary);--el-tag-hover-color:var(--el-color-primary-light-3)}.el-tag--dark.el-tag--success{--el-tag-bg-color:var(--el-color-success);--el-tag-border-color:var(--el-color-success);--el-tag-hover-color:var(--el-color-success-light-3)}.el-tag--dark.el-tag--warning{--el-tag-bg-color:var(--el-color-warning);--el-tag-border-color:var(--el-color-warning);--el-tag-hover-color:var(--el-color-warning-light-3)}.el-tag--dark.el-tag--danger{--el-tag-bg-color:var(--el-color-danger);--el-tag-border-color:var(--el-color-danger);--el-tag-hover-color:var(--el-color-danger-light-3)}.el-tag--dark.el-tag--error{--el-tag-bg-color:var(--el-color-error);--el-tag-border-color:var(--el-color-error);--el-tag-hover-color:var(--el-color-error-light-3)}.el-tag--dark.el-tag--info{--el-tag-bg-color:var(--el-color-info);--el-tag-border-color:var(--el-color-info);--el-tag-hover-color:var(--el-color-info-light-3)}.el-tag--dark.el-tag--primary,.el-tag--dark.el-tag--success,.el-tag--dark.el-tag--warning,.el-tag--dark.el-tag--danger,.el-tag--dark.el-tag--error,.el-tag--dark.el-tag--info{--el-tag-text-color:var(--el-color-white)}.el-tag--plain,.el-tag--plain.el-tag--primary{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-primary-light-5);--el-tag-hover-color:var(--el-color-primary)}.el-tag--plain.el-tag--success{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-success-light-5);--el-tag-hover-color:var(--el-color-success)}.el-tag--plain.el-tag--warning{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-warning-light-5);--el-tag-hover-color:var(--el-color-warning)}.el-tag--plain.el-tag--danger{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-danger-light-5);--el-tag-hover-color:var(--el-color-danger)}.el-tag--plain.el-tag--error{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-error-light-5);--el-tag-hover-color:var(--el-color-error)}.el-tag--plain.el-tag--info{--el-tag-bg-color:var(--el-fill-color-blank);--el-tag-border-color:var(--el-color-info-light-5);--el-tag-hover-color:var(--el-color-info)}.el-tag.is-closable{padding-right:5px}.el-tag--large{--el-icon-size:16px;height:32px;padding:0 11px}.el-tag--large .el-tag__close{margin-left:8px}.el-tag--large.is-closable{padding-right:7px}.el-tag--small{--el-icon-size:12px;height:20px;padding:0 7px}.el-tag--small .el-tag__close{margin-left:4px}.el-tag--small.is-closable{padding-right:3px}.el-tag--small .el-icon-close{transform:scale(.8)}.el-tag.el-tag--primary.is-hit{border-color:var(--el-color-primary)}.el-tag.el-tag--success.is-hit{border-color:var(--el-color-success)}.el-tag.el-tag--warning.is-hit{border-color:var(--el-color-warning)}.el-tag.el-tag--danger.is-hit{border-color:var(--el-color-danger)}.el-tag.el-tag--error.is-hit{border-color:var(--el-color-error)}.el-tag.el-tag--info.is-hit{border-color:var(--el-color-info)}.el-text{--el-text-font-size:var(--el-font-size-base);--el-text-color:var(--el-text-color-regular);font-size:var(--el-text-font-size);color:var(--el-text-color);overflow-wrap:break-word;align-self:center;margin:0;padding:0}.el-text.is-truncated{text-overflow:ellipsis;white-space:nowrap;max-width:100%;display:inline-block;overflow:hidden}.el-text.is-line-clamp{-webkit-box-orient:vertical;display:-webkit-inline-box;overflow:hidden}.el-text--large{--el-text-font-size:var(--el-font-size-medium)}.el-text--default{--el-text-font-size:var(--el-font-size-base)}.el-text--small{--el-text-font-size:var(--el-font-size-extra-small)}.el-text.el-text--primary{--el-text-color:var(--el-color-primary)}.el-text.el-text--success{--el-text-color:var(--el-color-success)}.el-text.el-text--warning{--el-text-color:var(--el-color-warning)}.el-text.el-text--danger{--el-text-color:var(--el-color-danger)}.el-text.el-text--error{--el-text-color:var(--el-color-error)}.el-text.el-text--info{--el-text-color:var(--el-color-info)}.el-text>.el-icon{vertical-align:-2px}.time-select{min-width:0;margin:5px 0}.time-select .el-picker-panel__content{max-height:200px;margin:0}.time-select-item{padding:8px 10px;font-size:14px;line-height:20px}.time-select-item.disabled{color:var(--el-datepicker-border-color);cursor:not-allowed}.time-select-item:hover{background-color:var(--el-fill-color-light);cursor:pointer;font-weight:700}.time-select .time-select-item.selected:not(.disabled){color:var(--el-color-primary);font-weight:700}.el-timeline-item{padding-bottom:20px;position:relative}.el-timeline-item__wrapper{box-sizing:content-box;position:relative;top:-3px}.el-timeline-item__tail{border-left:2px solid var(--el-timeline-node-color);height:100%;position:absolute}.el-timeline-item .el-timeline-item__icon{color:var(--el-color-white);font-size:var(--el-font-size-small)}.el-timeline-item__node{background-color:var(--el-timeline-node-color);border-color:var(--el-timeline-node-color);box-sizing:border-box;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__node--normal{width:var(--el-timeline-node-size-normal);height:var(--el-timeline-node-size-normal)}.el-timeline-item__node--large{width:var(--el-timeline-node-size-large);height:var(--el-timeline-node-size-large)}.el-timeline-item__node.is-hollow{background:var(--el-color-white);border-style:solid;border-width:2px}.el-timeline-item__node--primary{background-color:var(--el-color-primary);border-color:var(--el-color-primary)}.el-timeline-item__node--success{background-color:var(--el-color-success);border-color:var(--el-color-success)}.el-timeline-item__node--warning{background-color:var(--el-color-warning);border-color:var(--el-color-warning)}.el-timeline-item__node--danger{background-color:var(--el-color-danger);border-color:var(--el-color-danger)}.el-timeline-item__node--info{background-color:var(--el-color-info);border-color:var(--el-color-info)}.el-timeline-item__dot{justify-content:center;align-items:center;display:flex;position:absolute}.el-timeline-item__content{color:var(--el-text-color-primary)}.el-timeline-item__timestamp{color:var(--el-text-color-secondary);line-height:1;font-size:var(--el-font-size-small)}.el-timeline-item__timestamp.is-top{margin-bottom:8px;padding-top:4px}.el-timeline-item__timestamp.is-bottom{margin-top:8px}.el-timeline-item.is-start .el-timeline-item__wrapper{padding-left:28px}.el-timeline-item.is-start .el-timeline-item__tail{left:4px}.el-timeline-item.is-start .el-timeline-item__node--normal{left:-1px}.el-timeline-item.is-start .el-timeline-item__node--large{left:-2px}.el-timeline-item.is-end .el-timeline-item__wrapper{text-align:right;padding-right:28px}.el-timeline-item.is-end .el-timeline-item__tail{right:4px}.el-timeline-item.is-end .el-timeline-item__node--normal{right:-1px}.el-timeline-item.is-end .el-timeline-item__node--large{right:-2px}.el-timeline-item.is-alternate .el-timeline-item__tail,.el-timeline-item.is-alternate .el-timeline-item__node,.el-timeline-item.is-alternate-reverse .el-timeline-item__tail,.el-timeline-item.is-alternate-reverse .el-timeline-item__node{left:50%;transform:translate(-50%)}.el-timeline{--el-timeline-node-size-normal:12px;--el-timeline-node-size-large:14px;--el-timeline-node-color:var(--el-border-color-light);font-size:var(--el-font-size-base);margin:0;list-style:none}.el-timeline .el-timeline-item:last-child .el-timeline-item__tail{display:none}.el-timeline .el-timeline-item__center{align-items:center;display:flex}.el-timeline .el-timeline-item__center .el-timeline-item__wrapper{width:100%}.el-timeline .el-timeline-item__center .el-timeline-item__tail{top:0}.el-timeline .el-timeline-item__center:first-child .el-timeline-item__tail{height:calc(50% + 10px);top:calc(50% - 10px)}.el-timeline .el-timeline-item__center:last-child .el-timeline-item__tail{height:calc(50% - 10px);display:block}.el-timeline.is-start{padding-left:40px;padding-right:0}.el-timeline.is-end{padding-left:0;padding-right:40px}.el-timeline.is-alternate{padding-left:20px;padding-right:20px}.el-timeline.is-alternate .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-timeline.is-alternate .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse{padding-left:20px;padding-right:20px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(odd) .el-timeline-item__wrapper{width:calc(50% - 28px + var(--el-timeline-node-size-large) / 2);text-align:right;padding-right:28px}.el-timeline.is-alternate-reverse .el-timeline-item:nth-child(2n) .el-timeline-item__wrapper{width:calc(50% - 28px);left:calc(50% - var(--el-timeline-node-size-large) / 2);padding-left:28px}.el-transfer{--el-transfer-border-color:var(--el-border-color-lighter);--el-transfer-border-radius:var(--el-border-radius-base);--el-transfer-panel-width:200px;--el-transfer-panel-header-height:40px;--el-transfer-panel-header-bg-color:var(--el-fill-color-light);--el-transfer-panel-footer-height:40px;--el-transfer-panel-body-height:278px;--el-transfer-item-height:30px;--el-transfer-filter-height:32px;font-size:var(--el-font-size-base)}.el-transfer__buttons{vertical-align:middle;padding:0 30px;display:inline-block}.el-transfer__button{vertical-align:top}.el-transfer__button:nth-child(2){margin:0 0 0 10px}.el-transfer__button i,.el-transfer__button span{font-size:14px}.el-transfer__button .el-icon+span{margin-left:0}.el-transfer-panel{background:var(--el-bg-color-overlay);text-align:left;vertical-align:middle;width:var(--el-transfer-panel-width);box-sizing:border-box;max-height:100%;display:inline-block;position:relative;overflow:hidden}.el-transfer-panel__body{height:var(--el-transfer-panel-body-height);border-left:1px solid var(--el-transfer-border-color);border-right:1px solid var(--el-transfer-border-color);border-bottom:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);overflow:hidden}.el-transfer-panel__body.is-with-footer{border-bottom:none;border-bottom-right-radius:0;border-bottom-left-radius:0}.el-transfer-panel__list{height:var(--el-transfer-panel-body-height);box-sizing:border-box;margin:0;padding:6px 0;list-style:none;overflow:auto}.el-transfer-panel__list.is-filterable{height:calc(100% - var(--el-transfer-filter-height) - 30px);padding-top:0}.el-transfer-panel__item{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);padding-left:15px;display:block!important}.el-transfer-panel__item+.el-transfer-panel__item{margin-left:0}.el-transfer-panel__item.el-checkbox{color:var(--el-text-color-regular);margin-right:30px}.el-transfer-panel__item:hover{color:var(--el-color-primary)}.el-transfer-panel__item.el-checkbox .el-checkbox__label{text-overflow:ellipsis;white-space:nowrap;box-sizing:border-box;width:100%;line-height:var(--el-transfer-item-height);padding-left:22px;display:block;overflow:hidden}.el-transfer-panel__item .el-checkbox__input{position:absolute;top:8px}.el-transfer-panel__filter{text-align:center;box-sizing:border-box;padding:15px}.el-transfer-panel__filter .el-input__inner{height:var(--el-transfer-filter-height);box-sizing:border-box;width:100%;font-size:12px;display:inline-block}.el-transfer-panel__filter .el-icon-circle-close{cursor:pointer}.el-transfer-panel .el-transfer-panel__header{height:var(--el-transfer-panel-header-height);background:var(--el-transfer-panel-header-bg-color);border:1px solid var(--el-transfer-border-color);border-top-left-radius:var(--el-transfer-border-radius);border-top-right-radius:var(--el-transfer-border-radius);box-sizing:border-box;color:var(--el-color-black);align-items:center;margin:0;padding-left:15px;display:flex}.el-transfer-panel .el-transfer-panel__header .el-checkbox{align-items:center;width:100%;display:flex;position:relative}.el-transfer-panel .el-transfer-panel__header .el-checkbox .el-checkbox__label{min-width:0;color:var(--el-text-color-primary);flex:1;align-items:center;font-size:16px;font-weight:400;display:flex}.el-transfer-panel .el-transfer-panel__header-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.el-transfer-panel .el-transfer-panel__header-count{color:var(--el-text-color-secondary);flex-shrink:0;margin-left:8px;margin-right:15px;font-size:12px}.el-transfer-panel .el-transfer-panel__footer{height:var(--el-transfer-panel-footer-height);background:var(--el-bg-color-overlay);border:1px solid var(--el-transfer-border-color);border-bottom-left-radius:var(--el-transfer-border-radius);border-bottom-right-radius:var(--el-transfer-border-radius);margin:0;padding:0}.el-transfer-panel .el-transfer-panel__footer:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-transfer-panel .el-transfer-panel__footer .el-checkbox{color:var(--el-text-color-regular);padding-left:20px}.el-transfer-panel .el-transfer-panel__empty{height:var(--el-transfer-item-height);line-height:var(--el-transfer-item-height);color:var(--el-text-color-secondary);text-align:center;margin:0;padding:6px 15px 0}.el-transfer-panel .el-checkbox__label{padding-left:8px}.el-tree{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder);cursor:default;background:var(--el-fill-color-blank);color:var(--el-tree-text-color);font-size:var(--el-font-size-base);position:relative}.el-tree__empty-block{text-align:center;width:100%;height:100%;min-height:60px;position:relative}.el-tree__empty-text{color:var(--el-text-color-secondary);font-size:var(--el-font-size-base);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-tree__drop-indicator{background-color:var(--el-color-primary);height:1px;position:absolute;left:0;right:0}.el-tree-node{white-space:nowrap;outline:none}.el-tree-node:focus>.el-tree-node__content{background-color:var(--el-tree-node-hover-bg-color)}.el-tree-node.is-drop-inner>.el-tree-node__content .el-tree-node__label{background-color:var(--el-color-primary);color:#fff}.el-tree-node__content{--el-checkbox-height:var(--el-tree-node-content-height);height:var(--el-tree-node-content-height);cursor:pointer;align-items:center;display:flex}.el-tree-node__content>.el-tree-node__expand-icon{box-sizing:content-box;padding:6px}.el-tree-node__content>label.el-checkbox{margin-right:8px}.el-tree-node__content:hover{background-color:var(--el-tree-node-hover-bg-color)}.el-tree.is-dragging .el-tree-node__content{cursor:move}.el-tree.is-dragging .el-tree-node__content *{pointer-events:none}.el-tree.is-dragging.is-drop-not-allow .el-tree-node__content{cursor:not-allowed}.el-tree-node__expand-icon{cursor:pointer;color:var(--el-tree-expand-icon-color);transition:transform var(--el-transition-duration) ease-in-out;font-size:12px;transform:rotate(0)}.el-tree-node__expand-icon.expanded{transform:rotate(90deg)}.el-tree-node__expand-icon.is-leaf{color:#0000;cursor:default;visibility:hidden}.el-tree-node__expand-icon.is-hidden{visibility:hidden}.el-tree-node__loading-icon{font-size:var(--el-font-size-base);color:var(--el-tree-expand-icon-color);margin-right:8px}.el-tree-node>.el-tree-node__children{background-color:#0000;overflow:hidden}.el-tree-node.is-expanded>.el-tree-node__children{display:block}.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content{background-color:var(--el-color-primary-light-9)}.el-tree-select{--el-tree-node-content-height:26px;--el-tree-node-hover-bg-color:var(--el-fill-color-light);--el-tree-text-color:var(--el-text-color-regular);--el-tree-expand-icon-color:var(--el-text-color-placeholder)}.el-tree-select__popper .el-tree-node__expand-icon{margin-left:8px}.el-tree-select__popper .el-tree-node.is-checked>.el-tree-node__content .el-select-dropdown__item.selected:after{content:none}.el-tree-select__popper .el-select-dropdown__list>.el-select-dropdown__item{padding-left:32px}.el-tree-select__popper .el-select-dropdown__item{flex:1;height:20px;padding-left:0;line-height:20px;background:0 0!important}.el-upload{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;cursor:pointer;outline:none;justify-content:center;align-items:center;display:inline-flex}.el-upload.is-disabled{cursor:not-allowed}.el-upload.is-disabled:focus{border-color:var(--el-border-color-darker);color:inherit}.el-upload.is-disabled:focus .el-upload-dragger{border-color:var(--el-border-color-darker)}.el-upload.is-disabled .el-upload-dragger{cursor:not-allowed;background-color:var(--el-disabled-bg-color)}.el-upload.is-disabled .el-upload-dragger .el-upload__text{color:var(--el-text-color-placeholder)}.el-upload.is-disabled .el-upload-dragger .el-upload__text em{color:var(--el-disabled-text-color)}.el-upload.is-disabled .el-upload-dragger:hover{border-color:var(--el-border-color-darker)}.el-upload__input{display:none}.el-upload__tip{color:var(--el-text-color-regular);margin-top:7px;font-size:12px}.el-upload iframe{z-index:-1;opacity:0;filter:alpha(opacity=0);position:absolute;top:0;left:0}.el-upload--picture-card{background-color:var(--el-fill-color-lighter);border:1px dashed var(--el-border-color-darker);box-sizing:border-box;width:var(--el-upload-picture-card-size);height:var(--el-upload-picture-card-size);cursor:pointer;vertical-align:top;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.el-upload--picture-card>i{color:var(--el-text-color-secondary);font-size:28px}.el-upload--picture-card:hover{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload.is-drag{display:block}.el-upload:focus{border-color:var(--el-color-primary);color:var(--el-color-primary)}.el-upload:focus .el-upload-dragger{border-color:var(--el-color-primary)}.el-upload-dragger{padding:var(--el-upload-dragger-padding-vertical) var(--el-upload-dragger-padding-horizontal);background-color:var(--el-fill-color-blank);border:1px dashed var(--el-border-color);box-sizing:border-box;text-align:center;cursor:pointer;border-radius:6px;position:relative;overflow:hidden}.el-upload-dragger .el-icon--upload{color:var(--el-text-color-placeholder);margin-bottom:16px;font-size:67px;line-height:50px}.el-upload-dragger+.el-upload__tip{text-align:center}.el-upload-dragger~.el-upload__files{border-top:var(--el-border);margin-top:7px;padding-top:5px}.el-upload-dragger .el-upload__text{color:var(--el-text-color-regular);text-align:center;font-size:14px}.el-upload-dragger .el-upload__text em{color:var(--el-color-primary);font-style:normal}.el-upload-dragger:hover{border-color:var(--el-color-primary)}.el-upload-dragger.is-dragover{padding:calc(var(--el-upload-dragger-padding-vertical) - 1px) calc(var(--el-upload-dragger-padding-horizontal) - 1px);background-color:var(--el-color-primary-light-9);border:2px dashed var(--el-color-primary)}.el-upload-list{--el-upload-dragger-padding-horizontal:10px;--el-upload-dragger-padding-vertical:40px;--el-upload-list-picture-card-size:var(--el-upload-picture-card-size);--el-upload-picture-card-size:148px;margin:10px 0 0;padding:0;list-style:none;position:relative}.el-upload-list__item{color:var(--el-text-color-regular);box-sizing:border-box;border-radius:4px;width:100%;margin-bottom:5px;font-size:14px;transition:all .5s cubic-bezier(.55,0,.1,1);position:relative}.el-upload-list__item .el-progress{width:100%;position:absolute;top:20px}.el-upload-list__item .el-progress__text{position:absolute;top:-13px;right:0}.el-upload-list__item .el-progress-bar{margin-right:0;padding-right:0}.el-upload-list__item .el-icon--upload-success{color:var(--el-color-success)}.el-upload-list__item .el-icon--close{cursor:pointer;opacity:.75;color:var(--el-text-color-regular);transition:opacity var(--el-transition-duration);display:none;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.el-upload-list__item .el-icon--close:hover{opacity:1;color:var(--el-color-primary)}.el-upload-list__item .el-icon--close-tip{cursor:pointer;opacity:1;color:var(--el-color-primary);font-size:12px;font-style:normal;display:none;position:absolute;top:1px;right:5px}.el-upload-list__item:hover,.el-upload-list__item:focus-within{background-color:var(--el-fill-color-light)}.el-upload-list__item:hover .el-icon--close,.el-upload-list__item:focus-within .el-icon--close{display:inline-flex}.el-upload-list__item:hover .el-icon--close-tip,.el-upload-list__item:focus-within .el-icon--close-tip{right:24px}.el-upload-list__item:hover .el-progress__text,.el-upload-list__item:focus-within .el-progress__text{display:none}.el-upload-list__item .el-upload-list__item-info{flex-direction:column;justify-content:center;width:calc(100% - 30px);margin-left:4px;display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-status-label{display:inline-flex}.el-upload-list__item.is-success .el-upload-list__item-name:hover,.el-upload-list__item.is-success .el-upload-list__item-name:focus{color:var(--el-color-primary);cursor:pointer}.el-upload-list__item.is-success:focus:not(:hover) .el-icon--close-tip{display:inline-block}.el-upload-list__item.is-success:not(.focusing):focus,.el-upload-list__item.is-success:active{outline-width:0}.el-upload-list__item.is-success:not(.focusing):focus .el-icon--close-tip,.el-upload-list__item.is-success:active .el-icon--close-tip{display:none}.el-upload-list__item.is-success:hover .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus .el-upload-list__item-status-label,.el-upload-list__item.is-success:focus-within .el-upload-list__item-status-label{opacity:0;display:none}.el-upload-list__item-name{color:var(--el-text-color-regular);text-align:center;transition:color var(--el-transition-duration);font-size:var(--el-font-size-base);align-items:center;padding:0 4px;display:inline-flex}.el-upload-list__item-name .el-icon{color:var(--el-text-color-secondary);margin-right:6px}.el-upload-list__item-file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.el-upload-list__item-status-label{line-height:inherit;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;display:none;position:absolute;top:0;right:5px}.el-upload-list__item-delete{color:var(--el-text-color-regular);font-size:12px;display:none;position:absolute;top:0;right:10px}.el-upload-list__item-delete:hover{color:var(--el-color-primary)}.el-upload-list--picture-card{flex-wrap:wrap;margin:0;display:inline-flex}.el-upload-list--picture-card .el-upload-list__item{background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;width:var(--el-upload-list-picture-card-size);height:var(--el-upload-list-picture-card-size);border-radius:6px;margin:0 8px 8px 0;padding:0;display:inline-flex;overflow:hidden}.el-upload-list--picture-card .el-upload-list__item .el-icon--check,.el-upload-list--picture-card .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture-card .el-upload-list__item .el-icon--close{display:none}.el-upload-list--picture-card .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:block}.el-upload-list--picture-card .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture-card .el-upload-list__item .el-upload-list__item-name{display:none}.el-upload-list--picture-card .el-upload-list__item-thumbnail{object-fit:contain;width:100%;height:100%}.el-upload-list--picture-card .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-list--picture-card .el-upload-list__item-status-label i{margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture-card .el-upload-list__item-actions{cursor:default;color:#fff;opacity:0;background-color:var(--el-overlay-color-lighter);width:100%;height:100%;transition:opacity var(--el-transition-duration);justify-content:center;align-items:center;font-size:20px;display:inline-flex;position:absolute;top:0;left:0}.el-upload-list--picture-card .el-upload-list__item-actions span{cursor:pointer;display:none}.el-upload-list--picture-card .el-upload-list__item-actions span+span{margin-left:16px}.el-upload-list--picture-card .el-upload-list__item-actions .el-upload-list__item-delete{font-size:inherit;color:inherit;position:static}.el-upload-list--picture-card .el-upload-list__item-actions:hover{opacity:1}.el-upload-list--picture-card .el-upload-list__item-actions:hover span{display:inline-flex}.el-upload-list--picture-card .el-progress{width:126px;top:50%;bottom:auto;left:50%;transform:translate(-50%,-50%)}.el-upload-list--picture-card .el-progress .el-progress__text{top:50%}.el-upload-list--picture .el-upload-list__item{z-index:0;background-color:var(--el-fill-color-blank);border:1px solid var(--el-border-color);box-sizing:border-box;border-radius:6px;align-items:center;margin-top:10px;padding:10px;display:flex;overflow:hidden}.el-upload-list--picture .el-upload-list__item .el-icon--check,.el-upload-list--picture .el-upload-list__item .el-icon--circle-check{color:#fff}.el-upload-list--picture .el-upload-list__item:hover .el-upload-list__item-status-label{opacity:0;display:inline-flex}.el-upload-list--picture .el-upload-list__item:hover .el-progress__text{display:block}.el-upload-list--picture .el-upload-list__item.is-success .el-upload-list__item-name i{display:none}.el-upload-list--picture .el-upload-list__item .el-icon--close{top:5px;transform:translateY(0)}.el-upload-list--picture .el-upload-list__item-thumbnail{object-fit:contain;z-index:1;background-color:var(--el-color-white);justify-content:center;align-items:center;width:70px;height:70px;display:inline-flex;position:relative}.el-upload-list--picture .el-upload-list__item-status-label{background:var(--el-color-success);text-align:center;width:46px;height:26px;position:absolute;top:-7px;right:-17px;transform:rotate(45deg)}.el-upload-list--picture .el-upload-list__item-status-label i{margin-top:12px;font-size:12px;transform:rotate(-45deg)}.el-upload-list--picture .el-progress{position:relative;top:-7px}.el-upload-cover{z-index:10;cursor:default;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.el-upload-cover:after{content:"";vertical-align:middle;height:100%;display:inline-block}.el-upload-cover img{width:100%;height:100%;display:block}.el-upload-cover__label{background:var(--el-color-success);text-align:center;width:40px;height:24px;top:-6px;right:-15px;transform:rotate(45deg)}.el-upload-cover__label i{color:#fff;margin-top:11px;font-size:12px;transform:rotate(-45deg)}.el-upload-cover__progress{vertical-align:middle;width:243px;display:inline-block;position:static}.el-upload-cover__progress+.el-upload__inner{opacity:0}.el-upload-cover__content{width:100%;height:100%;position:absolute;top:0;left:0}.el-upload-cover__interact{background-color:var(--el-overlay-color-light);text-align:center;width:100%;height:100%;position:absolute;bottom:0;left:0}.el-upload-cover__interact .btn{color:#fff;cursor:pointer;vertical-align:middle;transition:var(--el-transition-md-fade);margin-top:60px;font-size:14px;display:inline-block}.el-upload-cover__interact .btn i{margin-top:0}.el-upload-cover__interact .btn span{opacity:0;transition:opacity .15s linear}.el-upload-cover__interact .btn:not(:first-child){margin-left:35px}.el-upload-cover__interact .btn:hover{transform:translateY(-13px)}.el-upload-cover__interact .btn:hover span{opacity:1}.el-upload-cover__interact .btn i{color:#fff;font-size:24px;line-height:inherit;margin:0 auto 5px;display:block}.el-upload-cover__title{text-overflow:ellipsis;white-space:nowrap;text-align:left;width:100%;height:36px;color:var(--el-text-color-primary);background-color:#fff;margin:0;padding:0 10px;font-size:14px;font-weight:400;line-height:36px;position:absolute;bottom:0;left:0;overflow:hidden}.el-upload-cover+.el-upload__inner{opacity:0;z-index:1;position:relative}.el-vl__wrapper{position:relative}.el-vl__wrapper:hover .el-virtual-scrollbar,.el-vl__wrapper.always-on .el-virtual-scrollbar{opacity:1}.el-vl__window{scrollbar-width:none}.el-vl__window::-webkit-scrollbar{display:none}.el-virtual-scrollbar{opacity:0;transition:opacity .34s ease-out}.el-virtual-scrollbar.always-on{opacity:1}.el-vg__wrapper{position:relative}.el-popper{--el-popper-border-radius:var(--el-popover-border-radius,4px);--el-popper-bg-color-light:var(--el-bg-color-overlay);--el-popper-bg-color-dark:var(--el-text-color-primary);border-radius:var(--el-popper-border-radius);z-index:2000;overflow-wrap:break-word;word-break:normal;visibility:visible;min-width:10px;padding:5px 11px;font-size:12px;line-height:20px;position:absolute}.el-popper.is-dark{--el-fill-color-blank:var(--el-popper-bg-color-dark);color:var(--el-bg-color);background:var(--el-popper-bg-color-dark);border:1px solid var(--el-text-color-primary)}.el-popper.is-dark>.el-popper__arrow:before{border:1px solid var(--el-text-color-primary);background:var(--el-popper-bg-color-dark);right:0}.el-popper.is-light{--el-fill-color-blank:var(--el-popper-bg-color-light);background:var(--el-popper-bg-color-light);border:1px solid var(--el-border-color-light)}.el-popper.is-light>.el-popper__arrow:before{border:1px solid var(--el-border-color-light);background:var(--el-popper-bg-color-light);right:0}.el-popper.is-pure{padding:0}.el-popper__arrow{z-index:-1;width:10px;height:10px;position:absolute}.el-popper__arrow:before{z-index:-1;content:" ";background:var(--el-text-color-primary);box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-popper[data-popper-placement^=top]>.el-popper__arrow{bottom:-5px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-bottom-right-radius:2px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow{top:-5px}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-top-left-radius:2px}.el-popper[data-popper-placement^=left]>.el-popper__arrow{right:-5px}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-top-right-radius:2px}.el-popper[data-popper-placement^=right]>.el-popper__arrow{left:-5px}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-bottom-left-radius:2px}.el-popper[data-popper-placement^=top]>.el-popper__arrow:before{border-top-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=bottom]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-right-color:#0000!important}.el-popper[data-popper-placement^=left]>.el-popper__arrow:before{border-bottom-color:#0000!important;border-left-color:#0000!important}.el-popper[data-popper-placement^=right]>.el-popper__arrow:before{border-top-color:#0000!important;border-right-color:#0000!important}.el-statistic{--el-statistic-title-font-weight:400;--el-statistic-title-font-size:var(--el-font-size-extra-small);--el-statistic-title-color:var(--el-text-color-regular);--el-statistic-content-font-weight:400;--el-statistic-content-font-size:var(--el-font-size-extra-large);--el-statistic-content-color:var(--el-text-color-primary)}.el-statistic__head{font-weight:var(--el-statistic-title-font-weight);font-size:var(--el-statistic-title-font-size);color:var(--el-statistic-title-color);margin-bottom:4px;line-height:20px}.el-statistic__content{font-weight:var(--el-statistic-content-font-weight);font-size:var(--el-statistic-content-font-size);color:var(--el-statistic-content-color)}.el-statistic__value{display:inline-block}.el-statistic__prefix{margin-right:4px;display:inline-block}.el-statistic__suffix{margin-left:4px;display:inline-block}.el-tour{--el-tour-width:520px;--el-tour-padding-primary:12px;--el-tour-font-line-height:var(--el-font-line-height-primary);--el-tour-title-font-size:16px;--el-tour-title-text-color:var(--el-text-color-primary);--el-tour-title-font-weight:400;--el-tour-close-color:var(--el-color-info);--el-tour-font-size:14px;--el-tour-color:var(--el-text-color-primary);--el-tour-bg-color:var(--el-bg-color);--el-tour-border-radius:4px}.el-tour__hollow{transition:all var(--el-transition-duration) ease}.el-tour__content{border-radius:var(--el-tour-border-radius);width:var(--el-tour-width);padding:var(--el-tour-padding-primary);background:var(--el-tour-bg-color);box-shadow:var(--el-box-shadow-light);box-sizing:border-box;overflow-wrap:break-word;outline:none}.el-tour__arrow{background:var(--el-tour-bg-color);pointer-events:none;box-sizing:border-box;width:10px;height:10px;position:absolute;transform:rotate(45deg)}.el-tour__content[data-side^=top] .el-tour__arrow{border-top-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=bottom] .el-tour__arrow{border-bottom-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=left] .el-tour__arrow{border-bottom-color:#0000;border-left-color:#0000}.el-tour__content[data-side^=right] .el-tour__arrow{border-top-color:#0000;border-right-color:#0000}.el-tour__content[data-side^=top] .el-tour__arrow{bottom:-5px}.el-tour__content[data-side^=bottom] .el-tour__arrow{top:-5px}.el-tour__content[data-side^=left] .el-tour__arrow{right:-5px}.el-tour__content[data-side^=right] .el-tour__arrow{left:-5px}.el-tour__closebtn{cursor:pointer;width:40px;height:40px;font-size:var(--el-message-close-size,16px);background:0 0;border:none;outline:none;padding:0;position:absolute;top:0;right:0}.el-tour__closebtn .el-tour__close{color:var(--el-tour-close-color);font-size:inherit}.el-tour__closebtn:focus .el-tour__close,.el-tour__closebtn:hover .el-tour__close{color:var(--el-color-primary)}.el-tour__header{padding-bottom:var(--el-tour-padding-primary)}.el-tour__header.show-close{padding-right:calc(var(--el-tour-padding-primary) + var(--el-message-close-size,16px))}.el-tour__title{line-height:var(--el-tour-font-line-height);font-size:var(--el-tour-title-font-size);color:var(--el-tour-title-text-color);font-weight:var(--el-tour-title-font-weight)}.el-tour__body{color:var(--el-tour-text-color);font-size:var(--el-tour-font-size)}.el-tour__body img,.el-tour__body video{max-width:100%}.el-tour__footer{padding-top:var(--el-tour-padding-primary);box-sizing:border-box;justify-content:space-between;display:flex}.el-tour__content .el-tour-indicators{flex:1;display:inline-block}.el-tour__content .el-tour-indicator{background:var(--el-color-info-light-9);border-radius:50%;width:6px;height:6px;margin-right:6px;display:inline-block}.el-tour__content .el-tour-indicator.is-active{background:var(--el-color-primary)}.el-tour.el-tour--primary{--el-tour-title-text-color:#fff;--el-tour-text-color:#fff;--el-tour-bg-color:var(--el-color-primary);--el-tour-close-color:#fff}.el-tour.el-tour--primary .el-tour__closebtn:focus .el-tour__close,.el-tour.el-tour--primary .el-tour__closebtn:hover .el-tour__close{color:var(--el-tour-title-text-color)}.el-tour.el-tour--primary .el-button--default{color:var(--el-color-primary);border-color:var(--el-color-primary);background:#fff}.el-tour.el-tour--primary .el-button--primary{border-color:#fff}.el-tour.el-tour--primary .el-tour-indicator{background:#ffffff26}.el-tour.el-tour--primary .el-tour-indicator.is-active{background:#fff}.el-tour-parent--hidden{overflow:hidden}.el-anchor{--el-anchor-bg-color:var(--el-bg-color);--el-anchor-padding-indent:14px;--el-anchor-line-height:22px;--el-anchor-font-size:12px;--el-anchor-color:var(--el-text-color-secondary);--el-anchor-active-color:var(--el-color-primary);--el-anchor-hover-color:var(--el-text-color-regular);--el-anchor-marker-bg-color:var(--el-color-primary);background-color:var(--el-anchor-bg-color);position:relative}.el-anchor__marker{background-color:var(--el-anchor-marker-bg-color);opacity:0;z-index:0;border-radius:4px;position:absolute}.el-anchor.el-anchor--vertical .el-anchor__marker{width:4px;height:14px;transition:top .25s ease-in-out,opacity .25s;top:8px;left:0}.el-anchor.el-anchor--vertical .el-anchor__list{padding-left:var(--el-anchor-padding-indent)}.el-anchor.el-anchor--vertical.el-anchor--underline:before{content:"";background-color:#0505050f;width:2px;height:100%;position:absolute;left:0}.el-anchor.el-anchor--vertical.el-anchor--underline .el-anchor__marker{border-radius:unset;width:2px}.el-anchor.el-anchor--horizontal .el-anchor__marker{width:20px;height:2px;transition:left .25s ease-in-out,opacity .25s,width .25s;bottom:0}.el-anchor.el-anchor--horizontal .el-anchor__list{padding-bottom:4px;display:flex}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item{padding-left:16px}.el-anchor.el-anchor--horizontal .el-anchor__list .el-anchor__item:first-child{padding-left:0}.el-anchor.el-anchor--horizontal.el-anchor--underline:before{content:"";background-color:#0505050f;width:100%;height:2px;position:absolute;bottom:0}.el-anchor.el-anchor--horizontal.el-anchor--underline .el-anchor__marker{border-radius:unset;height:2px}.el-anchor__item{flex-direction:column;display:flex}.el-anchor__link{font-size:var(--el-anchor-font-size);line-height:var(--el-anchor-line-height);color:var(--el-anchor-color);transition:color var(--el-transition-duration);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;outline:none;max-width:100%;padding:4px 0;text-decoration:none;overflow:hidden}.el-anchor__link:hover,.el-anchor__link:focus{color:var(--el-hover-color)}.el-anchor__link:focus-visible{border-radius:var(--el-border-radius-base);outline:2px solid var(--el-color-primary)}.el-anchor__link.is-active{color:var(--el-anchor-active-color)}.el-anchor .el-anchor__list .el-anchor__item a{display:inline-block}.el-segmented--vertical{flex-direction:column}.el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented{--el-segmented-color:var(--el-text-color-regular);--el-segmented-bg-color:var(--el-fill-color-light);--el-segmented-padding:2px;--el-segmented-item-selected-color:var(--el-color-white);--el-segmented-item-selected-bg-color:var(--el-color-primary);--el-segmented-item-selected-disabled-bg-color:var(--el-color-primary-light-5);--el-segmented-item-hover-color:var(--el-text-color-primary);--el-segmented-item-hover-bg-color:var(--el-fill-color-dark);--el-segmented-item-active-bg-color:var(--el-fill-color-darker);--el-segmented-item-disabled-color:var(--el-text-color-placeholder);background:var(--el-segmented-bg-color);min-height:32px;padding:var(--el-segmented-padding);border-radius:var(--el-border-radius-base);color:var(--el-segmented-color);box-sizing:border-box;align-items:stretch;font-size:14px;display:inline-flex}.el-segmented__group{align-items:stretch;width:100%;display:flex;position:relative}.el-segmented__item-selected{background:var(--el-segmented-item-selected-bg-color);border-radius:calc(var(--el-border-radius-base) - 2px);pointer-events:none;width:10px;height:100%;transition:all .3s;position:absolute;top:0;left:0}.el-segmented__item-selected.is-disabled{background:var(--el-segmented-item-selected-disabled-bg-color)}.el-segmented__item-selected.is-focus-visible:before{content:"";border-radius:inherit;outline:2px solid var(--el-segmented-item-selected-bg-color);outline-offset:1px;position:absolute;inset:0}.el-segmented__item{cursor:pointer;border-radius:calc(var(--el-border-radius-base) - 2px);flex:1;align-items:center;padding:0 11px;display:flex}.el-segmented__item:not(.is-disabled):not(.is-selected):hover{color:var(--el-segmented-item-hover-color);background:var(--el-segmented-item-hover-bg-color)}.el-segmented__item:not(.is-disabled):not(.is-selected):active{background:var(--el-segmented-item-active-bg-color)}.el-segmented__item.is-selected,.el-segmented__item.is-selected.is-disabled{color:var(--el-segmented-item-selected-color)}.el-segmented__item.is-disabled{cursor:not-allowed;color:var(--el-segmented-item-disabled-color)}.el-segmented__item-input{opacity:0;pointer-events:none;width:0;height:0;margin:0;position:absolute}.el-segmented__item-label{text-align:center;text-overflow:ellipsis;white-space:nowrap;z-index:1;flex:1;line-height:normal;transition:color .3s;overflow:hidden}.el-segmented.is-block{display:flex}.el-segmented.is-block .el-segmented__item{min-width:0}.el-segmented--large{border-radius:var(--el-border-radius-base);min-height:40px;font-size:16px}.el-segmented--large .el-segmented__item-selected{border-radius:calc(var(--el-border-radius-base) - 2px)}.el-segmented--large .el-segmented--vertical .el-segmented__item{padding:11px}.el-segmented--large .el-segmented__item{border-radius:calc(var(--el-border-radius-base) - 2px);padding:0 11px}.el-segmented--small{border-radius:calc(var(--el-border-radius-base) - 1px);min-height:24px;font-size:14px}.el-segmented--small .el-segmented__item-selected{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px)}.el-segmented--small .el-segmented--vertical .el-segmented__item{padding:7px}.el-segmented--small .el-segmented__item{border-radius:calc(calc(var(--el-border-radius-base) - 1px) - 2px);padding:0 7px}.el-mention{width:100%;position:relative}.el-mention__popper.el-popper{background:var(--el-bg-color-overlay);border:1px solid var(--el-border-color-light);box-shadow:var(--el-box-shadow-light)}.el-mention__popper.el-popper .el-popper__arrow:before{border:1px solid var(--el-border-color-light)}.el-mention__popper.el-popper[data-popper-placement^=top] .el-popper__arrow:before{border-top-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=bottom] .el-popper__arrow:before{border-bottom-color:#0000;border-right-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=left] .el-popper__arrow:before{border-bottom-color:#0000;border-left-color:#0000}.el-mention__popper.el-popper[data-popper-placement^=right] .el-popper__arrow:before{border-top-color:#0000;border-right-color:#0000}.el-mention-dropdown{--el-mention-font-size:var(--el-font-size-base);--el-mention-bg-color:var(--el-bg-color-overlay);--el-mention-shadow:var(--el-box-shadow-light);--el-mention-border:1px solid var(--el-border-color-light);--el-mention-option-color:var(--el-text-color-regular);--el-mention-option-height:34px;--el-mention-option-min-width:100px;--el-mention-option-hover-background:var(--el-fill-color-light);--el-mention-option-selected-color:var(--el-color-primary);--el-mention-option-disabled-color:var(--el-text-color-placeholder);--el-mention-option-loading-color:var(--el-text-color-secondary);--el-mention-option-loading-padding:10px 0;--el-mention-max-height:174px;--el-mention-padding:6px 0;--el-mention-header-padding:10px;--el-mention-footer-padding:10px}.el-mention-dropdown__item{font-size:var(--el-mention-font-size);white-space:nowrap;text-overflow:ellipsis;color:var(--el-mention-option-color);height:var(--el-mention-option-height);line-height:var(--el-mention-option-height);box-sizing:border-box;min-width:var(--el-mention-option-min-width);cursor:pointer;padding:0 20px;position:relative;overflow:hidden}.el-mention-dropdown__item.is-hovering{background-color:var(--el-mention-option-hover-background)}.el-mention-dropdown__item.is-selected{color:var(--el-mention-option-selected-color);font-weight:700}.el-mention-dropdown__item.is-disabled{color:var(--el-mention-option-disabled-color);cursor:not-allowed;background-color:unset}.el-mention-dropdown{z-index:calc(var(--el-index-top) + 1);border-radius:var(--el-border-radius-base);box-sizing:border-box}.el-mention-dropdown__loading{text-align:center;color:var(--el-mention-option-loading-color);min-width:var(--el-mention-option-min-width);margin:0;padding:10px 0;font-size:12px}.el-mention-dropdown__wrap{max-height:var(--el-mention-max-height)}.el-mention-dropdown__list{padding:var(--el-mention-padding);box-sizing:border-box;margin:0;list-style:none}.el-mention-dropdown__header{padding:var(--el-mention-header-padding);border-bottom:var(--el-mention-border)}.el-mention-dropdown__footer{padding:var(--el-mention-footer-padding);border-top:var(--el-mention-border)}.el-splitter{width:100%;height:100%;margin:0;padding:0;display:flex;position:relative}.el-splitter__mask{z-index:999;position:absolute;inset:0}.el-splitter__mask-horizontal{cursor:ew-resize}.el-splitter__mask-vertical{cursor:ns-resize}.el-splitter__horizontal{flex-direction:row}.el-splitter__vertical{flex-direction:column}.el-splitter-bar{-webkit-user-select:none;user-select:none;flex:none;position:relative}.el-splitter-bar__dragger{z-index:1;background:0 0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:before,.el-splitter-bar__dragger:after{content:"";background-color:var(--el-border-color-light);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.el-splitter-bar__dragger:not(.is-lazy):after{display:none}.el-splitter-bar__dragger:after{opacity:.4}.el-splitter-bar__dragger:hover:not(.is-disabled):before{background-color:var(--el-color-primary-light-5)}.el-splitter-bar__dragger-horizontal:before,.el-splitter-bar__dragger-horizontal:after{width:2px;height:100%}.el-splitter-bar__dragger-vertical:before,.el-splitter-bar__dragger-vertical:after{width:100%;height:2px}.el-splitter-bar__dragger-active:before,.el-splitter-bar__dragger-active:after{background-color:var(--el-color-primary-light-3)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-horizontal:after{transform:translate(calc(-50% + var(--el-splitter-bar-offset)), -50%)}.el-splitter-bar__dragger-active.el-splitter-bar__dragger-vertical:after{transform:translate(-50%, calc(-50% + var(--el-splitter-bar-offset)))}.el-splitter-bar:hover .el-splitter-bar__collapse-icon{opacity:1}.el-splitter-bar__collapse-icon{background:var(--el-border-color-light);cursor:pointer;opacity:0;z-index:9;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute}.el-splitter-bar__collapse-icon:hover{opacity:1;background-color:var(--el-color-primary-light-5)}.el-splitter-bar__horizontal-collapse-icon-start{width:16px;height:24px;top:50%;left:-12px;transform:translate(-50%,-50%)}.el-splitter-bar__horizontal-collapse-icon-end{width:16px;height:24px;top:50%;left:12px;transform:translate(-50%,-50%)}.el-splitter-bar__vertical-collapse-icon-start{width:24px;height:16px;top:-12px;right:50%;transform:translate(50%,-50%)}.el-splitter-bar__vertical-collapse-icon-end{width:24px;height:16px;top:12px;right:50%;transform:translate(50%,-50%)}.el-splitter-panel{scrollbar-width:thin;box-sizing:border-box;flex-grow:0;overflow:auto}:root{--background:#f4f4f5;--foreground:#18181b;--card:#fff;--card-foreground:#18181b;--primary:#0f7a62;--primary-hover:#0d6b56;--primary-foreground:#fafafa;--muted:#f4f4f5;--muted-foreground:#71717a;--border:#e4e4e7;--input:#e4e4e7;--destructive:#dc2626;--sidebar:#fafafad9;--sidebar-foreground:#18181b;--sidebar-accent:#f4f4f5;--sidebar-border:#e4e4e7;--sidebar-width:15rem;--radius:.5rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--el-color-primary:#0f7a62;--el-color-primary-light-3:#4da08c;--el-color-primary-light-5:#76b8a8;--el-color-primary-light-7:#a0d0c4;--el-color-primary-light-8:#b8dcd2;--el-color-primary-light-9:#d0e8e1;--el-color-primary-dark-2:#0c624e;--el-border-radius-base:.5rem;--el-border-color:#e4e4e7;--el-bg-color-page:#f4f4f5;--el-text-color-primary:#18181b;--el-text-color-regular:#3f3f46;--el-text-color-secondary:#71717a;--el-font-family:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif}*{box-sizing:border-box}html,body,#app{height:100%;font-size:14px;font-family:var(--el-font-family);background:var(--background);color:var(--foreground);margin:0;padding:0}.layout{height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--sidebar);border-right:1px solid var(--sidebar-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-brand{align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);display:flex}.brand-icon{border-radius:var(--radius);background:var(--primary);width:32px;height:32px;color:var(--primary-foreground);justify-content:center;align-items:center;display:flex}.brand-name{font-size:1.125rem;font-weight:600}.nav-group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted-foreground);padding:var(--space-4) var(--space-4) var(--space-2);font-size:.75rem}.nav-item{margin:0 var(--space-2);color:var(--muted-foreground);border-radius:6px;align-items:center;gap:10px;padding:8px 12px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-item:hover{background:var(--sidebar-accent)}.nav-item.active{background:var(--sidebar-accent);color:var(--primary);font-weight:600}.main-area{flex-direction:column;flex:1;min-width:0;display:flex}.topbar{height:52px;padding:0 var(--space-6);background:var(--card);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.topbar-title{color:var(--muted-foreground);font-size:.875rem}.main-content{padding:var(--space-6);flex:1;overflow-y:auto}.page{max-width:1400px}.page-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.page-title{letter-spacing:-.02em;margin:0 0 var(--space-1);font-size:1.5rem;font-weight:600}.page-desc{color:var(--muted-foreground);margin:0;font-size:.875rem}.stat-grid{gap:var(--space-4);margin-bottom:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-5)}.stat-card__label{color:var(--muted-foreground);margin-bottom:var(--space-2);font-size:.875rem}.stat-card__value{font-size:1.75rem;font-weight:600}.app-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:var(--space-4)}.app-card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.app-card__title{margin:0;font-size:.9375rem;font-weight:600}.app-card__body--padded{padding:var(--space-5)}.content-grid{gap:var(--space-4);margin-bottom:var(--space-6);display:grid}.content-grid--2-1{grid-template-columns:1.4fr 1fr}.content-grid--2{grid-template-columns:1fr 1fr}.card-toolbar{gap:var(--space-2);padding:var(--space-4) var(--space-5) 0;margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-pager{padding:var(--space-4) var(--space-5);justify-content:flex-end;display:flex}.tabs-bar{padding:0 var(--space-5);border-bottom:1px solid var(--border)}.tabs-bar .el-tabs__header{margin-bottom:0}.form-hint{color:var(--muted-foreground);margin-top:6px;font-size:.75rem}.section-title{margin-bottom:var(--space-4);font-size:.875rem;font-weight:600}.section-title:not(:first-child){margin-top:var(--space-6)}.login-page{background:var(--background);min-height:100vh;padding:var(--space-6);justify-content:center;align-items:center;display:flex}.login-wrap{text-align:center;width:100%;max-width:400px}.login-brand-icon{background:var(--primary);width:48px;height:48px;color:var(--primary-foreground);margin-bottom:var(--space-4);border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.login-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-8);margin-top:var(--space-6);text-align:left}.latency-good{color:#047857}.latency-warn{color:#b45309}.latency-bad{color:#dc2626}.latency-dead{color:var(--muted-foreground)}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:#e4e4e7 transparent}@media (width<=1024px){.stat-grid{grid-template-columns:repeat(2,1fr)}.content-grid--2-1,.content-grid--2{grid-template-columns:1fr}}@media (width<=640px){.stat-grid{grid-template-columns:1fr}.main-content{padding:var(--space-4)}.page-header{flex-direction:column}} diff --git a/internal/api/static/favicon.svg b/internal/api/static/favicon.svg new file mode 100644 index 0000000..6893eb1 --- /dev/null +++ b/internal/api/static/favicon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/internal/api/static/icons.svg b/internal/api/static/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/internal/api/static/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/internal/api/static/index.html b/internal/api/static/index.html new file mode 100644 index 0000000..b126e0b --- /dev/null +++ b/internal/api/static/index.html @@ -0,0 +1,15 @@ + + + + + + + web + + + + + +
+ + diff --git a/internal/auth/apikey.go b/internal/auth/apikey.go new file mode 100644 index 0000000..2933664 --- /dev/null +++ b/internal/auth/apikey.go @@ -0,0 +1,51 @@ +package auth + +import ( + "crypto/rand" + "crypto/sha256" + "encoding/hex" + "fmt" + "strings" +) + +const APIKeyPrefix = "prism_" + +func GenerateAPIKey() (string, error) { + var b [16]byte + if _, err := rand.Read(b[:]); err != nil { + return "", err + } + return APIKeyPrefix + hex.EncodeToString(b[:]), nil +} + +func HashAPIKey(key string) string { + sum := sha256.Sum256([]byte(key)) + return hex.EncodeToString(sum[:]) +} + +func APIKeyDisplayPrefix(key string) string { + key = strings.TrimSpace(key) + if len(key) <= 12 { + return key + } + return key[:12] + "…" +} + +func IsAPIKeyFormat(key string) bool { + return strings.HasPrefix(strings.TrimSpace(key), APIKeyPrefix) +} + +func ValidateAPIKeyFormat(key string) error { + key = strings.TrimSpace(key) + if !strings.HasPrefix(key, APIKeyPrefix) { + return fmt.Errorf("invalid api key format") + } + raw := strings.TrimPrefix(key, APIKeyPrefix) + if len(raw) != 32 { + return fmt.Errorf("invalid api key length") + } + if _, err := hex.DecodeString(raw); err != nil { + return fmt.Errorf("invalid api key encoding") + } + return nil +} diff --git a/internal/auth/apikey_test.go b/internal/auth/apikey_test.go new file mode 100644 index 0000000..894bc1d --- /dev/null +++ b/internal/auth/apikey_test.go @@ -0,0 +1,19 @@ +package auth + +import "testing" + +func TestGenerateAndHashAPIKey(t *testing.T) { + key, err := GenerateAPIKey() + if err != nil { + t.Fatal(err) + } + if err := ValidateAPIKeyFormat(key); err != nil { + t.Fatal(err) + } + if HashAPIKey(key) == "" { + t.Fatal("empty hash") + } + if HashAPIKey(key) != HashAPIKey(key) { + t.Fatal("hash not stable") + } +} diff --git a/internal/auth/loginlimiter.go b/internal/auth/loginlimiter.go new file mode 100644 index 0000000..2c7d989 --- /dev/null +++ b/internal/auth/loginlimiter.go @@ -0,0 +1,137 @@ +package auth + +import ( + "context" + "fmt" + "strconv" + "time" + + "github.com/prism/proxy/internal/store" +) + +const ( + defaultMaxAttempts = 5 + defaultLockMinutes = 15 +) + +type LoginConfig struct { + MaxAttempts int + Window time.Duration + LockDuration time.Duration +} + +type LoginResult struct { + Allowed bool + Locked bool + Remaining int + RetryAfter time.Duration +} + +type LoginLimiter struct { + store *store.Store +} + +func NewLoginLimiter(st *store.Store) *LoginLimiter { + return &LoginLimiter{store: st} +} + +func ParseLoginConfig(settings map[string]string) LoginConfig { + maxAttempts := parsePositiveInt(settings["login_max_attempts"], defaultMaxAttempts) + lockMin := parsePositiveInt(settings["login_lock_minutes"], defaultLockMinutes) + lock := time.Duration(lockMin) * time.Minute + return LoginConfig{ + MaxAttempts: maxAttempts, + Window: lock, + LockDuration: lock, + } +} + +func (l *LoginLimiter) Check(ctx context.Context, ip string, cfg LoginConfig) (LoginResult, error) { + attempt, err := l.store.GetLoginAttempt(ctx, ip) + if err != nil { + return LoginResult{}, err + } + if attempt == nil { + return LoginResult{Allowed: true, Remaining: cfg.MaxAttempts}, nil + } + now := time.Now() + if attempt.LockedUntil != nil && now.Before(*attempt.LockedUntil) { + return LoginResult{ + Allowed: false, + Locked: true, + RetryAfter: attempt.LockedUntil.Sub(now), + }, nil + } + remaining := cfg.MaxAttempts - attempt.FailCount + if remaining < 0 { + remaining = 0 + } + if attempt.FailCount > 0 && now.Sub(attempt.WindowStart) > cfg.Window { + remaining = cfg.MaxAttempts + } + return LoginResult{Allowed: true, Remaining: remaining}, nil +} + +func (l *LoginLimiter) RecordFailure(ctx context.Context, ip string, cfg LoginConfig) (LoginResult, error) { + now := time.Now() + attempt, err := l.store.GetLoginAttempt(ctx, ip) + if err != nil { + return LoginResult{}, err + } + if attempt != nil && attempt.LockedUntil != nil && now.Before(*attempt.LockedUntil) { + return LoginResult{ + Allowed: false, + Locked: true, + RetryAfter: attempt.LockedUntil.Sub(now), + }, nil + } + + failCount := 1 + windowStart := now + if attempt != nil { + if attempt.LockedUntil != nil || now.Sub(attempt.WindowStart) <= cfg.Window { + if now.Sub(attempt.WindowStart) <= cfg.Window { + failCount = attempt.FailCount + 1 + windowStart = attempt.WindowStart + } + } + } + + var lockedUntil *time.Time + locked := false + if failCount >= cfg.MaxAttempts { + t := now.Add(cfg.LockDuration) + lockedUntil = &t + locked = true + _ = l.store.AddAuditLog(ctx, "login_lock", "auth", fmt.Sprintf("ip=%s locked %v", ip, cfg.LockDuration)) + } + if err := l.store.SetLoginAttempt(ctx, ip, store.LoginAttempt{ + FailCount: failCount, + WindowStart: windowStart, + LockedUntil: lockedUntil, + }); err != nil { + return LoginResult{}, err + } + + remaining := cfg.MaxAttempts - failCount + if remaining < 0 { + remaining = 0 + } + res := LoginResult{Allowed: !locked, Remaining: remaining, Locked: locked} + if locked && lockedUntil != nil { + res.RetryAfter = lockedUntil.Sub(now) + } + return res, nil +} + +func (l *LoginLimiter) RecordSuccess(ctx context.Context, ip string) error { + return l.store.ClearLoginAttempt(ctx, ip) +} + +func parsePositiveInt(raw string, fallback int) int { + n, err := strconv.Atoi(raw) + if err != nil || n <= 0 { + return fallback + } + return n +} diff --git a/internal/auth/loginlimiter_test.go b/internal/auth/loginlimiter_test.go new file mode 100644 index 0000000..b8509cf --- /dev/null +++ b/internal/auth/loginlimiter_test.go @@ -0,0 +1,63 @@ +package auth + +import ( + "context" + "path/filepath" + "testing" + "time" + + "github.com/prism/proxy/internal/store" +) + +func TestLoginLimiterLockAndClear(t *testing.T) { + st, err := store.Open(filepath.Join(t.TempDir(), "data")) + if err != nil { + t.Fatal(err) + } + defer st.Close() + + ctx := context.Background() + limiter := NewLoginLimiter(st) + cfg := LoginConfig{MaxAttempts: 3, Window: time.Minute, LockDuration: 2 * time.Minute} + ip := "203.0.113.1" + + for i := 0; i < 2; i++ { + res, err := limiter.RecordFailure(ctx, ip, cfg) + if err != nil { + t.Fatal(err) + } + if res.Locked { + t.Fatalf("unexpected lock at attempt %d", i+1) + } + if res.Remaining != cfg.MaxAttempts-i-1 { + t.Fatalf("remaining=%d want %d", res.Remaining, cfg.MaxAttempts-i-1) + } + } + + res, err := limiter.RecordFailure(ctx, ip, cfg) + if err != nil { + t.Fatal(err) + } + if !res.Locked || res.RetryAfter <= 0 { + t.Fatalf("expected lock, got %+v", res) + } + + check, err := limiter.Check(ctx, ip, cfg) + if err != nil { + t.Fatal(err) + } + if check.Allowed { + t.Fatal("expected blocked while locked") + } + + if err := limiter.RecordSuccess(ctx, ip); err != nil { + t.Fatal(err) + } + check, err = limiter.Check(ctx, ip, cfg) + if err != nil { + t.Fatal(err) + } + if !check.Allowed || check.Remaining != cfg.MaxAttempts { + t.Fatalf("expected reset, got %+v", check) + } +} diff --git a/internal/cache/cache.go b/internal/cache/cache.go new file mode 100644 index 0000000..d96ec01 --- /dev/null +++ b/internal/cache/cache.go @@ -0,0 +1,68 @@ +package cache + +import ( + "sync" + "time" +) + +type DashboardSnapshot struct { + UploadRate int64 `json:"upload_rate"` + DownloadRate int64 `json:"download_rate"` + Connections int `json:"connections"` + TotalNodes int `json:"total_nodes"` + AliveNodes int `json:"alive_nodes"` + UpdatedAt time.Time `json:"updated_at"` +} + +type Cache struct { + mu sync.RWMutex + lastYAML []byte + dashboard DashboardSnapshot + proxyLatency map[string]int +} + +func New() *Cache { + return &Cache{ + proxyLatency: make(map[string]int), + } +} + +func (c *Cache) SetLastYAML(yaml []byte) { + c.mu.Lock() + defer c.mu.Unlock() + c.lastYAML = append([]byte(nil), yaml...) +} + +func (c *Cache) GetLastYAML() []byte { + c.mu.RLock() + defer c.mu.RUnlock() + if c.lastYAML == nil { + return nil + } + return append([]byte(nil), c.lastYAML...) +} + +func (c *Cache) SetDashboard(s DashboardSnapshot) { + c.mu.Lock() + defer c.mu.Unlock() + c.dashboard = s +} + +func (c *Cache) GetDashboard() DashboardSnapshot { + c.mu.RLock() + defer c.mu.RUnlock() + return c.dashboard +} + +func (c *Cache) SetProxyLatency(name string, ms int) { + c.mu.Lock() + defer c.mu.Unlock() + c.proxyLatency[name] = ms +} + +func (c *Cache) GetProxyLatency(name string) (int, bool) { + c.mu.RLock() + defer c.mu.RUnlock() + v, ok := c.proxyLatency[name] + return v, ok +} diff --git a/internal/configbuilder/builder.go b/internal/configbuilder/builder.go new file mode 100644 index 0000000..5b21ba9 --- /dev/null +++ b/internal/configbuilder/builder.go @@ -0,0 +1,367 @@ +package configbuilder + +import ( + "context" + "encoding/json" + "fmt" + "sort" + "strings" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/geodata" + "github.com/prism/proxy/internal/store" + "gopkg.in/yaml.v3" +) + +type Builder struct { + store *store.Store + dataDir string +} + +func New(s *store.Store, dataDir string) *Builder { + return &Builder{store: s, dataDir: dataDir} +} + +func (b *Builder) Build(ctx context.Context) ([]byte, error) { + return b.build(ctx, false) +} + +// BuildMinimal loads nodes/groups with MATCH-only rules when full config fails. +func (b *Builder) BuildMinimal(ctx context.Context) ([]byte, error) { + return b.build(ctx, true) +} + +func (b *Builder) build(ctx context.Context, minimalRules bool) ([]byte, error) { + settings, err := b.store.GetSettings(ctx) + if err != nil { + return nil, err + } + + httpPort := settings["http_port"] + socksPort := settings["socks_port"] + logLevel := settings["log_level"] + if logLevel == "" { + logLevel = "info" + } + defaultPolicy := settings["default_policy"] + if defaultPolicy == "" { + defaultPolicy = "DIRECT" + } + + nodes, err := b.store.ListProxyNodes(ctx, "", nil) + if err != nil { + return nil, err + } + groups, err := b.store.ListProxyGroups(ctx) + if err != nil { + return nil, err + } + mergedRules, err := b.store.ListMergedRules(ctx, defaultPolicy) + if err != nil { + return nil, err + } + if minimalRules { + mergedRules = nil + } + + cfg := map[string]any{ + "port": atoi(httpPort, 7890), + "socks-port": atoi(socksPort, 7891), + "allow-lan": true, + "mode": "rule", + "log-level": logLevel, + "proxies": []any{}, + "proxy-groups": []any{ + map[string]any{ + "name": "PROXY", + "type": "select", + "proxies": []string{"DIRECT"}, + }, + }, + "rules": []string{"MATCH," + defaultPolicy}, + } + applyInboundAuth(cfg, settings) + + var proxies []any + proxyNames := []string{} + for _, n := range nodes { + if !n.Enabled { + continue + } + var proxy map[string]any + if err := json.Unmarshal([]byte(n.RawConfig), &proxy); err != nil { + continue + } + proxy["name"] = n.RuntimeName + proxies = append(proxies, proxy) + proxyNames = append(proxyNames, n.RuntimeName) + } + cfg["proxies"] = proxies + + var proxyGroups []any + hasGroups := false + for _, g := range groups { + if !g.Enabled { + continue + } + hasGroups = true + var members []string + _ = json.Unmarshal([]byte(g.Proxies), &members) + remapped := remapMembers(members, nodes, groups) + proxyGroups = append(proxyGroups, buildProxyGroup(g.RuntimeName, g.Type, remapped)) + } + if !hasGroups && len(proxyNames) > 0 { + proxyGroups = []any{ + map[string]any{ + "name": "PROXY", + "type": "select", + "proxies": append(proxyNames, "DIRECT"), + }, + } + } else if len(proxyGroups) > 0 { + cfg["proxy-groups"] = proxyGroups + } else { + cfg["proxy-groups"] = []any{ + map[string]any{ + "name": "PROXY", + "type": "select", + "proxies": []string{"DIRECT"}, + }, + } + } + if len(proxyGroups) > 0 { + cfg["proxy-groups"] = proxyGroups + } + proxyGroups = appendCountryProxyGroups(proxyGroups, nodes) + cfg["proxy-groups"] = proxyGroups + + nameMap := buildNameMap(nodes, groups) + countryNameMap, countryValid := countryMaps(nodes) + for k, v := range countryNameMap { + nameMap[k] = v + } + valid := buildValidTargets(nodes, groups) + for k := range countryValid { + valid[k] = true + } + defaultPolicy = resolvePolicy(defaultPolicy, nameMap, valid, groups) + cfg["rules"] = sanitizeRules(mergedRules, nameMap, valid, defaultPolicy, geodata.Ready(b.dataDir)) + + out, err := yaml.Marshal(cfg) + if err != nil { + return nil, err + } + return out, nil +} + +func buildNameMap(nodes []store.ProxyNode, groups []store.ProxyGroup) map[string]string { + nameMap := make(map[string]string) + for _, n := range nodes { + nameMap[n.Name] = n.RuntimeName + nameMap[n.RuntimeName] = n.RuntimeName + } + for _, g := range groups { + nameMap[g.Name] = g.RuntimeName + nameMap[g.RuntimeName] = g.RuntimeName + } + return nameMap +} + +func remapMembers(members []string, nodes []store.ProxyNode, groups []store.ProxyGroup) []string { + nameMap := buildNameMap(nodes, groups) + out := make([]string, 0, len(members)) + for _, name := range members { + if name == "DIRECT" || name == "REJECT" { + out = append(out, name) + continue + } + if rn, ok := nameMap[name]; ok { + out = append(out, rn) + } + } + return out +} + +func remapRuleTarget(rule string, nameMap map[string]string) string { + parts := strings.Split(rule, ",") + if len(parts) < 2 { + return rule + } + target := parts[len(parts)-1] + if code, ok := country.ParseTargetAlias(target); ok { + parts[len(parts)-1] = country.GroupRuntime(code) + return strings.Join(parts, ",") + } + if mapped, ok := nameMap[target]; ok { + parts[len(parts)-1] = mapped + return strings.Join(parts, ",") + } + return rule +} + +func remapProxyNames(names []string, nodes []store.ProxyNode) []string { + return remapMembers(names, nodes, nil) +} + +func buildProxyGroup(name, gtype string, members []string) map[string]any { + group := map[string]any{ + "name": name, + "type": gtype, + "proxies": appendGroupMembers(gtype, members), + } + switch gtype { + case "url-test", "fallback": + group["url"] = "http://www.gstatic.com/generate_204" + group["interval"] = 300 + } + return group +} + +func appendGroupMembers(gtype string, members []string) []string { + switch strings.ToLower(gtype) { + case "url-test", "fallback": + return members + default: + return append(append([]string{}, members...), "DIRECT") + } +} + +func buildValidTargets(nodes []store.ProxyNode, groups []store.ProxyGroup) map[string]bool { + valid := map[string]bool{ + "DIRECT": true, + "REJECT": true, + } + for _, n := range nodes { + if n.Enabled { + valid[n.RuntimeName] = true + } + } + for _, g := range groups { + if g.Enabled { + valid[g.RuntimeName] = true + } + } + return valid +} + +func resolvePolicy(policy string, nameMap map[string]string, valid map[string]bool, groups []store.ProxyGroup) string { + if code, ok := country.ParseTargetAlias(policy); ok { + rn := country.GroupRuntime(code) + if valid[rn] { + return rn + } + } + if mapped, ok := nameMap[policy]; ok && valid[mapped] { + return mapped + } + if valid[policy] { + return policy + } + if policy == "PROXY" || policy == "GLOBAL" { + for _, g := range groups { + if g.Enabled && valid[g.RuntimeName] { + return g.RuntimeName + } + } + } + return "DIRECT" +} + +func sanitizeRules(merged []store.MergedRule, nameMap map[string]string, valid map[string]bool, defaultPolicy string, geoReady bool) []string { + var rules []string + hasMatch := false + for _, r := range merged { + line := remapRuleTarget(r.Rule, nameMap) + if !geoReady && needsGeoData(line) { + continue + } + if strings.HasPrefix(line, "MATCH,") { + line = "MATCH," + defaultPolicy + hasMatch = true + } + target := ruleTarget(line) + if target == "" || !valid[target] { + continue + } + rules = append(rules, line) + } + if !hasMatch { + rules = append(rules, "MATCH,"+defaultPolicy) + } + return rules +} + +func needsGeoData(rule string) bool { + upper := strings.ToUpper(rule) + if strings.HasPrefix(upper, "GEOIP,") || strings.HasPrefix(upper, "GEOSITE,") { + return true + } + return strings.Contains(strings.ToLower(rule), "geoip:") +} + +func ruleTarget(line string) string { + parts := strings.Split(line, ",") + if len(parts) < 2 { + return "" + } + return parts[len(parts)-1] +} + +func applyInboundAuth(cfg map[string]any, settings map[string]string) { + user := strings.TrimSpace(settings["proxy_auth_user"]) + pass := settings["proxy_auth_pass"] + if user == "" || pass == "" { + return + } + cfg["authentication"] = []string{user + ":" + pass} + cfg["skip-auth-prefixes"] = []string{"127.0.0.1/8", "::1/128"} +} + +func atoi(s string, def int) int { + var v int + if _, err := fmt.Sscanf(strings.TrimSpace(s), "%d", &v); err != nil || v <= 0 { + return def + } + return v +} + +func appendCountryProxyGroups(groups []any, nodes []store.ProxyNode) []any { + byCountry := map[string][]string{} + for _, n := range nodes { + if !n.Enabled || n.Country == "" { + continue + } + byCountry[n.Country] = append(byCountry[n.Country], n.RuntimeName) + } + codes := make([]string, 0, len(byCountry)) + for code := range byCountry { + codes = append(codes, code) + } + sort.Strings(codes) + for _, code := range codes { + members := byCountry[code] + if len(members) == 0 { + continue + } + groups = append(groups, buildProxyGroup(country.GroupRuntime(code), "url-test", members)) + } + return groups +} + +func countryMaps(nodes []store.ProxyNode) (map[string]string, map[string]bool) { + nameMap := map[string]string{} + valid := map[string]bool{} + seen := map[string]bool{} + for _, n := range nodes { + if !n.Enabled || n.Country == "" || seen[n.Country] { + continue + } + seen[n.Country] = true + rn := country.GroupRuntime(n.Country) + nameMap[country.TargetAlias(n.Country)] = rn + nameMap[country.Name(n.Country)] = rn + nameMap[rn] = rn + valid[rn] = true + } + return nameMap, valid +} diff --git a/internal/configbuilder/builder_test.go b/internal/configbuilder/builder_test.go new file mode 100644 index 0000000..4a76ce0 --- /dev/null +++ b/internal/configbuilder/builder_test.go @@ -0,0 +1,89 @@ +package configbuilder + +import ( + "testing" + + "github.com/metacubex/mihomo/hub/executor" + "github.com/prism/proxy/internal/store" +) + +func TestSanitizeRulesSkipsUnknownTarget(t *testing.T) { + nameMap := map[string]string{ + "节点选择": "grp1_auto", + "grp1_auto": "grp1_auto", + } + valid := map[string]bool{ + "DIRECT": true, + "REJECT": true, + "grp1_auto": true, + } + merged := []store.MergedRule{ + {Rule: "DOMAIN,google.com,不存在组"}, + {Rule: "DOMAIN,example.com,节点选择"}, + {Rule: "MATCH,DIRECT", Source: "system"}, + } + rules := sanitizeRules(merged, nameMap, valid, "DIRECT", true) + if len(rules) != 2 { + t.Fatalf("expected 2 rules, got %d: %v", len(rules), rules) + } + if rules[0] != "DOMAIN,example.com,grp1_auto" { + t.Fatalf("unexpected rule: %s", rules[0]) + } + if rules[1] != "MATCH,DIRECT" { + t.Fatalf("unexpected match: %s", rules[1]) + } +} + +func TestRemapCountryTarget(t *testing.T) { + nameMap := map[string]string{"country:HK": "country_HK"} + line := remapRuleTarget("DOMAIN-SUFFIX,google.com,country:HK", nameMap) + if line != "DOMAIN-SUFFIX,google.com,country_HK" { + t.Fatalf("unexpected: %s", line) + } +} + +func TestApplyInboundAuth(t *testing.T) { + cfg := map[string]any{} + applyInboundAuth(cfg, map[string]string{}) + if _, ok := cfg["authentication"]; ok { + t.Fatal("expected no authentication when empty") + } + + applyInboundAuth(cfg, map[string]string{ + "proxy_auth_user": "proxy", + "proxy_auth_pass": "secret", + }) + auth, ok := cfg["authentication"].([]string) + if !ok || len(auth) != 1 || auth[0] != "proxy:secret" { + t.Fatalf("unexpected authentication: %#v", cfg["authentication"]) + } + prefixes, ok := cfg["skip-auth-prefixes"].([]string) + if !ok || len(prefixes) != 2 { + t.Fatalf("unexpected skip-auth-prefixes: %#v", cfg["skip-auth-prefixes"]) + } +} + +func TestBuiltConfigValidatesWithSanitizedRules(t *testing.T) { + yaml := []byte(`port: 7890 +socks-port: 7891 +mode: rule +log-level: info +proxies: + - name: sub1_node + type: ss + server: 1.2.3.4 + port: 8388 + cipher: aes-256-gcm + password: test +proxy-groups: + - name: grp1_auto + type: select + proxies: [sub1_node, DIRECT] +rules: + - DOMAIN,example.com,grp1_auto + - MATCH,grp1_auto +`) + if _, err := executor.ParseWithBytes(yaml); err != nil { + t.Fatalf("config should validate: %v", err) + } +} diff --git a/internal/core/home.go b/internal/core/home.go new file mode 100644 index 0000000..6e7ca9e --- /dev/null +++ b/internal/core/home.go @@ -0,0 +1,10 @@ +package core + +import ( + "github.com/prism/proxy/internal/geodata" +) + +// InitDataDir points Mihomo geodata/cache paths at dataDir/geo. +func InitDataDir(dataDir string) string { + return geodata.InitHomeDir(dataDir) +} diff --git a/internal/core/mihomo.go b/internal/core/mihomo.go new file mode 100644 index 0000000..ef32dd9 --- /dev/null +++ b/internal/core/mihomo.go @@ -0,0 +1,74 @@ +package core + +import ( + "fmt" + "sync" + + "github.com/metacubex/mihomo/hub" + "github.com/metacubex/mihomo/hub/executor" +) + +type Engine struct { + mu sync.Mutex + apiAddr string + secret string + lastGood []byte + running bool +} + +func NewEngine() *Engine { + return &Engine{} +} + +func (e *Engine) Configure(apiAddr, secret string) { + e.mu.Lock() + defer e.mu.Unlock() + e.apiAddr = apiAddr + e.secret = secret +} + +func (e *Engine) Reload(yaml []byte) error { + e.mu.Lock() + defer e.mu.Unlock() + + if _, err := executor.ParseWithBytes(yaml); err != nil { + return fmt.Errorf("config validation failed: %w", err) + } + + opts := []hub.Option{ + hub.WithExternalController(e.apiAddr), + } + if e.secret != "" { + opts = append(opts, hub.WithSecret(e.secret)) + } + + if err := hub.Parse(yaml, opts...); err != nil { + return fmt.Errorf("mihomo reload failed: %w", err) + } + + e.lastGood = append([]byte(nil), yaml...) + e.running = true + return nil +} + +func (e *Engine) Shutdown() { + e.mu.Lock() + defer e.mu.Unlock() + executor.Shutdown() + e.running = false +} + +func (e *Engine) LastGoodConfig() []byte { + e.mu.Lock() + defer e.mu.Unlock() + if e.lastGood == nil { + return nil + } + return append([]byte(nil), e.lastGood...) +} + +func (e *Engine) Running() bool { + e.mu.Lock() + defer e.mu.Unlock() + return e.running +} diff --git a/internal/country/catalog.go b/internal/country/catalog.go new file mode 100644 index 0000000..f43201f --- /dev/null +++ b/internal/country/catalog.go @@ -0,0 +1,261 @@ +package country + +// catalog lists ISO 3166-1 alpha-2 codes with Chinese names and common proxy-node keywords. +// Keywords are matched longest-first; 2-letter codes require word boundaries. +var catalog = []entry{ + // Greater China + {Code: "HK", Name: "香港", Keywords: []string{"香港", "hong kong", "hongkong", "hk", "hkg"}}, + {Code: "TW", Name: "台湾", Keywords: []string{"台湾", "台北", "台中", "高雄", "taiwan", "taipei", "tw", "twn"}}, + {Code: "MO", Name: "澳门", Keywords: []string{"澳门", "macau", "macao", "mo", "mac"}}, + {Code: "CN", Name: "中国", Keywords: []string{"中国", "内地", "china", "beijing", "shanghai", "cn", "chn"}}, + + // East & Southeast Asia + {Code: "JP", Name: "日本", Keywords: []string{"日本", "东京", "大阪", "东京都", "japan", "tokyo", "osaka", "jp", "jpn"}}, + {Code: "KR", Name: "韩国", Keywords: []string{"韩国", "首尔", "south korea", "korea", "seoul", "kr", "kor"}}, + {Code: "KP", Name: "朝鲜", Keywords: []string{"朝鲜", "north korea", "pyongyang", "kp", "prk"}}, + {Code: "SG", Name: "新加坡", Keywords: []string{"新加坡", "singapore", "sg", "sgp"}}, + {Code: "MY", Name: "马来西亚", Keywords: []string{"马来西亚", "吉隆坡", "malaysia", "kuala lumpur", "my", "mys"}}, + {Code: "TH", Name: "泰国", Keywords: []string{"泰国", "曼谷", "thailand", "bangkok", "th", "tha"}}, + {Code: "VN", Name: "越南", Keywords: []string{"越南", "胡志明", "河内", "vietnam", "hanoi", "saigon", "vn", "vnm"}}, + {Code: "PH", Name: "菲律宾", Keywords: []string{"菲律宾", "马尼拉", "philippines", "manila", "ph", "phl"}}, + {Code: "ID", Name: "印尼", Keywords: []string{"印尼", "印度尼西亚", "indonesia", "jakarta", "id", "idn"}}, + {Code: "MM", Name: "缅甸", Keywords: []string{"缅甸", "myanmar", "burma", "yangon", "mm", "mmr"}}, + {Code: "KH", Name: "柬埔寨", Keywords: []string{"柬埔寨", "cambodia", "phnom penh", "kh", "khm"}}, + {Code: "LA", Name: "老挝", Keywords: []string{"老挝", "laos", "vientiane", "la", "lao"}}, + {Code: "BN", Name: "文莱", Keywords: []string{"文莱", "brunei", "bn", "brn"}}, + {Code: "TL", Name: "东帝汶", Keywords: []string{"东帝汶", "timor", "dili", "tl", "tls"}}, + + // South Asia + {Code: "IN", Name: "印度", Keywords: []string{"印度", "india", "mumbai", "delhi", "bangalore", "in", "ind"}}, + {Code: "PK", Name: "巴基斯坦", Keywords: []string{"巴基斯坦", "pakistan", "karachi", "lahore", "pk", "pak"}}, + {Code: "BD", Name: "孟加拉国", Keywords: []string{"孟加拉", "bangladesh", "dhaka", "bd", "bgd"}}, + {Code: "LK", Name: "斯里兰卡", Keywords: []string{"斯里兰卡", "sri lanka", "colombo", "lk", "lka"}}, + {Code: "NP", Name: "尼泊尔", Keywords: []string{"尼泊尔", "nepal", "kathmandu", "np", "npl"}}, + {Code: "BT", Name: "不丹", Keywords: []string{"不丹", "bhutan", "thimphu", "bt", "btn"}}, + {Code: "MV", Name: "马尔代夫", Keywords: []string{"马尔代夫", "maldives", "male", "mv", "mdv"}}, + {Code: "AF", Name: "阿富汗", Keywords: []string{"阿富汗", "afghanistan", "kabul", "af", "afg"}}, + + // Central & West Asia + {Code: "KZ", Name: "哈萨克斯坦", Keywords: []string{"哈萨克斯坦", "kazakhstan", "almaty", "astana", "kz", "kaz"}}, + {Code: "UZ", Name: "乌兹别克斯坦", Keywords: []string{"乌兹别克斯坦", "uzbekistan", "tashkent", "uz", "uzb"}}, + {Code: "TM", Name: "土库曼斯坦", Keywords: []string{"土库曼斯坦", "turkmenistan", "ashgabat", "tm", "tkm"}}, + {Code: "KG", Name: "吉尔吉斯斯坦", Keywords: []string{"吉尔吉斯斯坦", "kyrgyzstan", "bishkek", "kg", "kgz"}}, + {Code: "TJ", Name: "塔吉克斯坦", Keywords: []string{"塔吉克斯坦", "tajikistan", "dushanbe", "tj", "tjk"}}, + {Code: "MN", Name: "蒙古", Keywords: []string{"蒙古", "mongolia", "ulaanbaatar", "mn", "mng"}}, + {Code: "IR", Name: "伊朗", Keywords: []string{"伊朗", "iran", "tehran", "ir", "irn"}}, + {Code: "IQ", Name: "伊拉克", Keywords: []string{"伊拉克", "iraq", "baghdad", "iq", "irq"}}, + {Code: "SA", Name: "沙特阿拉伯", Keywords: []string{"沙特", "沙特阿拉伯", "saudi arabia", "riyadh", "jeddah", "sa", "sau"}}, + {Code: "AE", Name: "阿联酋", Keywords: []string{"阿联酋", "迪拜", "uae", "dubai", "abu dhabi", "ae", "are"}}, + {Code: "QA", Name: "卡塔尔", Keywords: []string{"卡塔尔", "qatar", "doha", "qa", "qat"}}, + {Code: "KW", Name: "科威特", Keywords: []string{"科威特", "kuwait", "kw", "kwt"}}, + {Code: "BH", Name: "巴林", Keywords: []string{"巴林", "bahrain", "manama", "bh", "bhr"}}, + {Code: "OM", Name: "阿曼", Keywords: []string{"阿曼", "oman", "muscat", "om", "omn"}}, + {Code: "YE", Name: "也门", Keywords: []string{"也门", "yemen", "sanaa", "ye", "yem"}}, + {Code: "JO", Name: "约旦", Keywords: []string{"约旦", "jordan", "amman", "jo", "jor"}}, + {Code: "LB", Name: "黎巴嫩", Keywords: []string{"黎巴嫩", "lebanon", "beirut", "lb", "lbn"}}, + {Code: "SY", Name: "叙利亚", Keywords: []string{"叙利亚", "syria", "damascus", "sy", "syr"}}, + {Code: "IL", Name: "以色列", Keywords: []string{"以色列", "israel", "tel aviv", "jerusalem", "il", "isr"}}, + {Code: "PS", Name: "巴勒斯坦", Keywords: []string{"巴勒斯坦", "palestine", "gaza", "ps", "pse"}}, + {Code: "TR", Name: "土耳其", Keywords: []string{"土耳其", "turkey", "istanbul", "ankara", "tr", "tur"}}, + {Code: "CY", Name: "塞浦路斯", Keywords: []string{"塞浦路斯", "cyprus", "nicosia", "cy", "cyp"}}, + {Code: "AM", Name: "亚美尼亚", Keywords: []string{"亚美尼亚", "armenia", "yerevan", "am", "arm"}}, + {Code: "AZ", Name: "阿塞拜疆", Keywords: []string{"阿塞拜疆", "azerbaijan", "baku", "az", "aze"}}, + {Code: "GE", Name: "格鲁吉亚", Keywords: []string{"格鲁吉亚", "georgia", "tbilisi", "ge", "geo"}}, + + // Europe — Western + {Code: "GB", Name: "英国", Keywords: []string{"英国", "伦敦", "united kingdom", "britain", "london", "uk", "gb", "gbr"}}, + {Code: "IE", Name: "爱尔兰", Keywords: []string{"爱尔兰", "ireland", "dublin", "ie", "irl"}}, + {Code: "FR", Name: "法国", Keywords: []string{"法国", "巴黎", "france", "paris", "fr", "fra"}}, + {Code: "DE", Name: "德国", Keywords: []string{"德国", "法兰克福", "germany", "frankfurt", "berlin", "munich", "de", "deu"}}, + {Code: "NL", Name: "荷兰", Keywords: []string{"荷兰", "阿姆斯特丹", "netherlands", "amsterdam", "nl", "nld"}}, + {Code: "BE", Name: "比利时", Keywords: []string{"比利时", "belgium", "brussels", "be", "bel"}}, + {Code: "LU", Name: "卢森堡", Keywords: []string{"卢森堡", "luxembourg", "lu", "lux"}}, + {Code: "CH", Name: "瑞士", Keywords: []string{"瑞士", "switzerland", "zurich", "ch", "che"}}, + {Code: "AT", Name: "奥地利", Keywords: []string{"奥地利", "austria", "vienna", "at", "aut"}}, + {Code: "LI", Name: "列支敦士登", Keywords: []string{"列支敦士登", "liechtenstein", "li", "lie"}}, + {Code: "MC", Name: "摩纳哥", Keywords: []string{"摩纳哥", "monaco", "mc", "mco"}}, + {Code: "AD", Name: "安道尔", Keywords: []string{"安道尔", "andorra", "ad", "and"}}, + {Code: "ES", Name: "西班牙", Keywords: []string{"西班牙", "spain", "madrid", "barcelona", "es", "esp"}}, + {Code: "PT", Name: "葡萄牙", Keywords: []string{"葡萄牙", "portugal", "lisbon", "pt", "prt"}}, + {Code: "IT", Name: "意大利", Keywords: []string{"意大利", "italy", "milan", "rome", "it", "ita"}}, + {Code: "MT", Name: "马耳他", Keywords: []string{"马耳他", "malta", "valletta", "mt", "mlt"}}, + {Code: "SM", Name: "圣马力诺", Keywords: []string{"圣马力诺", "san marino", "sm", "smr"}}, + {Code: "VA", Name: "梵蒂冈", Keywords: []string{"梵蒂冈", "vatican", "va", "vat"}}, + + // Europe — Northern + {Code: "IS", Name: "冰岛", Keywords: []string{"冰岛", "iceland", "reykjavik", "is", "isl"}}, + {Code: "NO", Name: "挪威", Keywords: []string{"挪威", "norway", "oslo", "no", "nor"}}, + {Code: "SE", Name: "瑞典", Keywords: []string{"瑞典", "sweden", "stockholm", "se", "swe"}}, + {Code: "FI", Name: "芬兰", Keywords: []string{"芬兰", "finland", "helsinki", "fi", "fin"}}, + {Code: "DK", Name: "丹麦", Keywords: []string{"丹麦", "denmark", "copenhagen", "dk", "dnk"}}, + {Code: "EE", Name: "爱沙尼亚", Keywords: []string{"爱沙尼亚", "estonia", "tallinn", "ee", "est"}}, + {Code: "LV", Name: "拉脱维亚", Keywords: []string{"拉脱维亚", "latvia", "riga", "lv", "lva"}}, + {Code: "LT", Name: "立陶宛", Keywords: []string{"立陶宛", "lithuania", "vilnius", "lt", "ltu"}}, + + // Europe — Eastern + {Code: "RU", Name: "俄罗斯", Keywords: []string{"俄罗斯", "russia", "moscow", "saint petersburg", "ru", "rus"}}, + {Code: "UA", Name: "乌克兰", Keywords: []string{"乌克兰", "ukraine", "kyiv", "kiev", "ua", "ukr"}}, + {Code: "BY", Name: "白俄罗斯", Keywords: []string{"白俄罗斯", "belarus", "minsk", "by", "blr"}}, + {Code: "PL", Name: "波兰", Keywords: []string{"波兰", "poland", "warsaw", "pl", "pol"}}, + {Code: "CZ", Name: "捷克", Keywords: []string{"捷克", "czech", "prague", "cz", "cze"}}, + {Code: "SK", Name: "斯洛伐克", Keywords: []string{"斯洛伐克", "slovakia", "bratislava", "sk", "svk"}}, + {Code: "HU", Name: "匈牙利", Keywords: []string{"匈牙利", "hungary", "budapest", "hu", "hun"}}, + {Code: "RO", Name: "罗马尼亚", Keywords: []string{"罗马尼亚", "romania", "bucharest", "ro", "rou"}}, + {Code: "BG", Name: "保加利亚", Keywords: []string{"保加利亚", "bulgaria", "sofia", "bg", "bgr"}}, + {Code: "MD", Name: "摩尔多瓦", Keywords: []string{"摩尔多瓦", "moldova", "chisinau", "md", "mda"}}, + {Code: "RS", Name: "塞尔维亚", Keywords: []string{"塞尔维亚", "serbia", "belgrade", "rs", "srb"}}, + {Code: "ME", Name: "黑山", Keywords: []string{"黑山", "montenegro", "podgorica", "me", "mne"}}, + {Code: "BA", Name: "波黑", Keywords: []string{"波黑", "bosnia", "sarajevo", "ba", "bih"}}, + {Code: "HR", Name: "克罗地亚", Keywords: []string{"克罗地亚", "croatia", "zagreb", "hr", "hrv"}}, + {Code: "SI", Name: "斯洛文尼亚", Keywords: []string{"斯洛文尼亚", "slovenia", "ljubljana", "si", "svn"}}, + {Code: "MK", Name: "北马其顿", Keywords: []string{"北马其顿", "macedonia", "skopje", "mk", "mkd"}}, + {Code: "AL", Name: "阿尔巴尼亚", Keywords: []string{"阿尔巴尼亚", "albania", "tirana", "al", "alb"}}, + {Code: "XK", Name: "科索沃", Keywords: []string{"科索沃", "kosovo", "pristina", "xk", "xxk"}}, + + // Europe — Southern (Greece etc.) + {Code: "GR", Name: "希腊", Keywords: []string{"希腊", "greece", "athens", "gr", "grc"}}, + + // North America + {Code: "US", Name: "美国", Keywords: []string{"美国", "洛杉矶", "纽约", "西雅图", "硅谷", "芝加哥", "达拉斯", "迈阿密", "united states", "america", "usa", "us", "lax", "nyc", "sfo", "dfw", "mia"}}, + {Code: "CA", Name: "加拿大", Keywords: []string{"加拿大", "canada", "toronto", "vancouver", "montreal", "ca", "can"}}, + {Code: "MX", Name: "墨西哥", Keywords: []string{"墨西哥", "mexico", "mexico city", "guadalajara", "mx", "mex"}}, + {Code: "GT", Name: "危地马拉", Keywords: []string{"危地马拉", "guatemala", "gt", "gtm"}}, + {Code: "BZ", Name: "伯利兹", Keywords: []string{"伯利兹", "belize", "bz", "blz"}}, + {Code: "HN", Name: "洪都拉斯", Keywords: []string{"洪都拉斯", "honduras", "hn", "hnd"}}, + {Code: "SV", Name: "萨尔瓦多", Keywords: []string{"萨尔瓦多", "el salvador", "sv", "slv"}}, + {Code: "NI", Name: "尼加拉瓜", Keywords: []string{"尼加拉瓜", "nicaragua", "ni", "nic"}}, + {Code: "CR", Name: "哥斯达黎加", Keywords: []string{"哥斯达黎加", "costa rica", "cr", "cri"}}, + {Code: "PA", Name: "巴拿马", Keywords: []string{"巴拿马", "panama", "pa", "pan"}}, + {Code: "CU", Name: "古巴", Keywords: []string{"古巴", "cuba", "havana", "cu", "cub"}}, + {Code: "JM", Name: "牙买加", Keywords: []string{"牙买加", "jamaica", "kingston", "jm", "jam"}}, + {Code: "HT", Name: "海地", Keywords: []string{"海地", "haiti", "ht", "hti"}}, + {Code: "DO", Name: "多米尼加", Keywords: []string{"多米尼加", "dominican republic", "santo domingo", "do", "dom"}}, + {Code: "TT", Name: "特立尼达和多巴哥", Keywords: []string{"特立尼达", "trinidad", "tobago", "tt", "tto"}}, + {Code: "BS", Name: "巴哈马", Keywords: []string{"巴哈马", "bahamas", "nassau", "bs", "bhs"}}, + {Code: "BB", Name: "巴巴多斯", Keywords: []string{"巴巴多斯", "barbados", "bb", "brb"}}, + {Code: "PR", Name: "波多黎各", Keywords: []string{"波多黎各", "puerto rico", "pr", "pri"}}, + + // South America + {Code: "BR", Name: "巴西", Keywords: []string{"巴西", "brazil", "sao paulo", "rio", "br", "bra"}}, + {Code: "AR", Name: "阿根廷", Keywords: []string{"阿根廷", "argentina", "buenos aires", "ar", "arg"}}, + {Code: "CL", Name: "智利", Keywords: []string{"智利", "chile", "santiago", "cl", "chl"}}, + {Code: "CO", Name: "哥伦比亚", Keywords: []string{"哥伦比亚", "colombia", "bogota", "co", "col"}}, + {Code: "PE", Name: "秘鲁", Keywords: []string{"秘鲁", "peru", "lima", "pe", "per"}}, + {Code: "VE", Name: "委内瑞拉", Keywords: []string{"委内瑞拉", "venezuela", "caracas", "ve", "ven"}}, + {Code: "EC", Name: "厄瓜多尔", Keywords: []string{"厄瓜多尔", "ecuador", "quito", "ec", "ecu"}}, + {Code: "BO", Name: "玻利维亚", Keywords: []string{"玻利维亚", "bolivia", "bo", "bol"}}, + {Code: "PY", Name: "巴拉圭", Keywords: []string{"巴拉圭", "paraguay", "asuncion", "py", "pry"}}, + {Code: "UY", Name: "乌拉圭", Keywords: []string{"乌拉圭", "uruguay", "montevideo", "uy", "ury"}}, + {Code: "GY", Name: "圭亚那", Keywords: []string{"圭亚那", "guyana", "georgetown", "gy", "guy"}}, + {Code: "SR", Name: "苏里南", Keywords: []string{"苏里南", "suriname", "sr", "sur"}}, + {Code: "GF", Name: "法属圭亚那", Keywords: []string{"法属圭亚那", "french guiana", "gf", "guf"}}, + + // Oceania + {Code: "AU", Name: "澳大利亚", Keywords: []string{"澳大利亚", "澳洲", "悉尼", "墨尔本", "australia", "sydney", "melbourne", "au", "aus"}}, + {Code: "NZ", Name: "新西兰", Keywords: []string{"新西兰", "new zealand", "auckland", "wellington", "nz", "nzl"}}, + {Code: "FJ", Name: "斐济", Keywords: []string{"斐济", "fiji", "suva", "fj", "fji"}}, + {Code: "PG", Name: "巴布亚新几内亚", Keywords: []string{"巴布亚新几内亚", "papua new guinea", "port moresby", "pg", "png"}}, + {Code: "NC", Name: "新喀里多尼亚", Keywords: []string{"新喀里多尼亚", "new caledonia", "nc", "ncl"}}, + {Code: "PF", Name: "法属波利尼西亚", Keywords: []string{"法属波利尼西亚", "french polynesia", "tahiti", "pf", "pyf"}}, + {Code: "GU", Name: "关岛", Keywords: []string{"关岛", "guam", "gu", "gum"}}, + {Code: "AS", Name: "美属萨摩亚", Keywords: []string{"美属萨摩亚", "american samoa", "as", "asm"}}, + {Code: "WS", Name: "萨摩亚", Keywords: []string{"萨摩亚", "samoa", "apia", "ws", "wsm"}}, + {Code: "TO", Name: "汤加", Keywords: []string{"汤加", "tonga", "to", "ton"}}, + {Code: "VU", Name: "瓦努阿图", Keywords: []string{"瓦努阿图", "vanuatu", "vu", "vut"}}, + {Code: "SB", Name: "所罗门群岛", Keywords: []string{"所罗门群岛", "solomon islands", "sb", "slb"}}, + {Code: "KI", Name: "基里巴斯", Keywords: []string{"基里巴斯", "kiribati", "ki", "kir"}}, + {Code: "MH", Name: "马绍尔群岛", Keywords: []string{"马绍尔群岛", "marshall islands", "mh", "mhl"}}, + {Code: "FM", Name: "密克罗尼西亚", Keywords: []string{"密克罗尼西亚", "micronesia", "fm", "fsm"}}, + {Code: "PW", Name: "帕劳", Keywords: []string{"帕劳", "palau", "pw", "plw"}}, + {Code: "NR", Name: "瑙鲁", Keywords: []string{"瑙鲁", "nauru", "nr", "nru"}}, + {Code: "TV", Name: "图瓦卢", Keywords: []string{"图瓦卢", "tuvalu", "tv", "tuv"}}, + + // North Africa + {Code: "EG", Name: "埃及", Keywords: []string{"埃及", "egypt", "cairo", "eg", "egy"}}, + {Code: "LY", Name: "利比亚", Keywords: []string{"利比亚", "libya", "tripoli", "ly", "lby"}}, + {Code: "TN", Name: "突尼斯", Keywords: []string{"突尼斯", "tunisia", "tunis", "tn", "tun"}}, + {Code: "DZ", Name: "阿尔及利亚", Keywords: []string{"阿尔及利亚", "algeria", "algiers", "dz", "dza"}}, + {Code: "MA", Name: "摩洛哥", Keywords: []string{"摩洛哥", "morocco", "casablanca", "rabat", "ma", "mar"}}, + {Code: "SD", Name: "苏丹", Keywords: []string{"苏丹", "sudan", "khartoum", "sd", "sdn"}}, + + // West Africa + {Code: "NG", Name: "尼日利亚", Keywords: []string{"尼日利亚", "nigeria", "lagos", "abuja", "ng", "nga"}}, + {Code: "GH", Name: "加纳", Keywords: []string{"加纳", "ghana", "accra", "gh", "gha"}}, + {Code: "CI", Name: "科特迪瓦", Keywords: []string{"科特迪瓦", "ivory coast", "cote d'ivoire", "abidjan", "ci", "civ"}}, + {Code: "SN", Name: "塞内加尔", Keywords: []string{"塞内加尔", "senegal", "dakar", "sn", "sen"}}, + {Code: "ML", Name: "马里", Keywords: []string{"马里", "mali", "bamako", "ml", "mli"}}, + {Code: "BF", Name: "布基纳法索", Keywords: []string{"布基纳法索", "burkina faso", "bf", "bfa"}}, + {Code: "NE", Name: "尼日尔", Keywords: []string{"尼日尔", "niger", "niamey", "ne", "ner"}}, + {Code: "GN", Name: "几内亚", Keywords: []string{"几内亚", "guinea", "conakry", "gn", "gin"}}, + {Code: "GW", Name: "几内亚比绍", Keywords: []string{"几内亚比绍", "guinea bissau", "gw", "gnb"}}, + {Code: "SL", Name: "塞拉利昂", Keywords: []string{"塞拉利昂", "sierra leone", "freetown", "sl", "sle"}}, + {Code: "LR", Name: "利比里亚", Keywords: []string{"利比里亚", "liberia", "monrovia", "lr", "lbr"}}, + {Code: "TG", Name: "多哥", Keywords: []string{"多哥", "togo", "lome", "tg", "tgo"}}, + {Code: "BJ", Name: "贝宁", Keywords: []string{"贝宁", "benin", "porto novo", "bj", "ben"}}, + {Code: "GM", Name: "冈比亚", Keywords: []string{"冈比亚", "gambia", "banjul", "gm", "gmb"}}, + {Code: "CV", Name: "佛得角", Keywords: []string{"佛得角", "cape verde", "cv", "cpv"}}, + {Code: "MR", Name: "毛里塔尼亚", Keywords: []string{"毛里塔尼亚", "mauritania", "mr", "mrt"}}, + + // Central Africa + {Code: "CM", Name: "喀麦隆", Keywords: []string{"喀麦隆", "cameroon", "yaounde", "cm", "cmr"}}, + {Code: "CF", Name: "中非", Keywords: []string{"中非", "central african", "bangui", "cf", "caf"}}, + {Code: "TD", Name: "乍得", Keywords: []string{"乍得", "chad", "ndjamena", "td", "tcd"}}, + {Code: "CG", Name: "刚果布", Keywords: []string{"刚果布", "republic of congo", "brazzaville", "cg", "cog"}}, + {Code: "CD", Name: "刚果金", Keywords: []string{"刚果金", "democratic republic of congo", "kinshasa", "cd", "cod"}}, + {Code: "GA", Name: "加蓬", Keywords: []string{"加蓬", "gabon", "libreville", "ga", "gab"}}, + {Code: "GQ", Name: "赤道几内亚", Keywords: []string{"赤道几内亚", "equatorial guinea", "gq", "gnq"}}, + {Code: "ST", Name: "圣多美和普林西比", Keywords: []string{"圣多美", "sao tome", "st", "stp"}}, + + // East Africa + {Code: "ET", Name: "埃塞俄比亚", Keywords: []string{"埃塞俄比亚", "ethiopia", "addis ababa", "et", "eth"}}, + {Code: "KE", Name: "肯尼亚", Keywords: []string{"肯尼亚", "kenya", "nairobi", "ke", "ken"}}, + {Code: "TZ", Name: "坦桑尼亚", Keywords: []string{"坦桑尼亚", "tanzania", "dar es salaam", "tz", "tza"}}, + {Code: "UG", Name: "乌干达", Keywords: []string{"乌干达", "uganda", "kampala", "ug", "uga"}}, + {Code: "RW", Name: "卢旺达", Keywords: []string{"卢旺达", "rwanda", "kigali", "rw", "rwa"}}, + {Code: "BI", Name: "布隆迪", Keywords: []string{"布隆迪", "burundi", "bujumbura", "bi", "bdi"}}, + {Code: "SO", Name: "索马里", Keywords: []string{"索马里", "somalia", "mogadishu", "so", "som"}}, + {Code: "DJ", Name: "吉布提", Keywords: []string{"吉布提", "djibouti", "dj", "dji"}}, + {Code: "ER", Name: "厄立特里亚", Keywords: []string{"厄立特里亚", "eritrea", "asmara", "er", "eri"}}, + {Code: "SS", Name: "南苏丹", Keywords: []string{"南苏丹", "south sudan", "juba", "ss", "ssd"}}, + {Code: "SC", Name: "塞舌尔", Keywords: []string{"塞舌尔", "seychelles", "sc", "syc"}}, + {Code: "MU", Name: "毛里求斯", Keywords: []string{"毛里求斯", "mauritius", "mu", "mus"}}, + {Code: "KM", Name: "科摩罗", Keywords: []string{"科摩罗", "comoros", "km", "com"}}, + {Code: "MG", Name: "马达加斯加", Keywords: []string{"马达加斯加", "madagascar", "antananarivo", "mg", "mdg"}}, + {Code: "MW", Name: "马拉维", Keywords: []string{"马拉维", "malawi", "lilongwe", "mw", "mwi"}}, + {Code: "ZM", Name: "赞比亚", Keywords: []string{"赞比亚", "zambia", "lusaka", "zm", "zmb"}}, + {Code: "ZW", Name: "津巴布韦", Keywords: []string{"津巴布韦", "zimbabwe", "harare", "zw", "zwe"}}, + {Code: "MZ", Name: "莫桑比克", Keywords: []string{"莫桑比克", "mozambique", "maputo", "mz", "moz"}}, + {Code: "AO", Name: "安哥拉", Keywords: []string{"安哥拉", "angola", "luanda", "ao", "ago"}}, + {Code: "NA", Name: "纳米比亚", Keywords: []string{"纳米比亚", "namibia", "windhoek", "na", "nam"}}, + {Code: "BW", Name: "博茨瓦纳", Keywords: []string{"博茨瓦纳", "botswana", "gaborone", "bw", "bwa"}}, + {Code: "LS", Name: "莱索托", Keywords: []string{"莱索托", "lesotho", "ls", "lso"}}, + {Code: "SZ", Name: "斯威士兰", Keywords: []string{"斯威士兰", "eswatini", "swaziland", "sz", "swz"}}, + + // Southern Africa + {Code: "ZA", Name: "南非", Keywords: []string{"南非", "south africa", "johannesburg", "cape town", "za", "zaf"}}, + + // Caribbean & Atlantic territories + {Code: "BM", Name: "百慕大", Keywords: []string{"百慕大", "bermuda", "bm", "bmu"}}, + {Code: "KY", Name: "开曼群岛", Keywords: []string{"开曼群岛", "cayman", "ky", "cym"}}, + {Code: "VG", Name: "英属维尔京群岛", Keywords: []string{"英属维尔京", "british virgin", "vg", "vgb"}}, + {Code: "VI", Name: "美属维尔京群岛", Keywords: []string{"美属维尔京", "us virgin", "vi", "vir"}}, + {Code: "AW", Name: "阿鲁巴", Keywords: []string{"阿鲁巴", "aruba", "aw", "abw"}}, + {Code: "CW", Name: "库拉索", Keywords: []string{"库拉索", "curacao", "cw", "cuw"}}, + {Code: "AG", Name: "安提瓜和巴布达", Keywords: []string{"安提瓜", "antigua", "ag", "atg"}}, + {Code: "DM", Name: "多米尼克", Keywords: []string{"多米尼克", "dominica", "dm", "dma"}}, + {Code: "GD", Name: "格林纳达", Keywords: []string{"格林纳达", "grenada", "gd", "grd"}}, + {Code: "KN", Name: "圣基茨和尼维斯", Keywords: []string{"圣基茨", "saint kitts", "kn", "kna"}}, + {Code: "LC", Name: "圣卢西亚", Keywords: []string{"圣卢西亚", "saint lucia", "lc", "lca"}}, + {Code: "VC", Name: "圣文森特", Keywords: []string{"圣文森特", "saint vincent", "vc", "vct"}}, + + // European territories & microstates + {Code: "GI", Name: "直布罗陀", Keywords: []string{"直布罗陀", "gibraltar", "gi", "gib"}}, + {Code: "FO", Name: "法罗群岛", Keywords: []string{"法罗群岛", "faroe", "fo", "fro"}}, + {Code: "GL", Name: "格陵兰", Keywords: []string{"格陵兰", "greenland", "gl", "grl"}}, + {Code: "JE", Name: "泽西岛", Keywords: []string{"泽西岛", "jersey", "je", "jey"}}, + {Code: "GG", Name: "根西岛", Keywords: []string{"根西岛", "guernsey", "gg", "ggy"}}, + {Code: "IM", Name: "马恩岛", Keywords: []string{"马恩岛", "isle of man", "im", "imn"}}, + {Code: "RE", Name: "留尼汪", Keywords: []string{"留尼汪", "reunion", "re", "reu"}}, + {Code: "GP", Name: "瓜德罗普", Keywords: []string{"瓜德罗普", "guadeloupe", "gp", "glp"}}, + {Code: "MQ", Name: "马提尼克", Keywords: []string{"马提尼克", "martinique", "mq", "mtq"}}, +} diff --git a/internal/country/detect.go b/internal/country/detect.go new file mode 100644 index 0000000..011dcaa --- /dev/null +++ b/internal/country/detect.go @@ -0,0 +1,166 @@ +package country + +import ( + "sort" + "strings" +) + +type entry struct { + Code string + Name string + Keywords []string +} + +var ( + sortedKeywords []keywordMatch + nameByCode map[string]string +) + +type keywordMatch struct { + keyword string + code string +} + +func init() { + nameByCode = make(map[string]string, len(catalog)) + for _, e := range catalog { + nameByCode[e.Code] = e.Name + for _, kw := range e.Keywords { + sortedKeywords = append(sortedKeywords, keywordMatch{keyword: strings.ToLower(kw), code: e.Code}) + } + } + sort.Slice(sortedKeywords, func(i, j int) bool { + return len(sortedKeywords[i].keyword) > len(sortedKeywords[j].keyword) + }) +} + +// Detect returns ISO-like country code from node name, or empty string. +func Detect(name string) string { + lower := strings.ToLower(strings.TrimSpace(name)) + if lower == "" { + return "" + } + normalized := strings.NewReplacer( + "_", " ", "-", " ", "|", " ", "/", " ", "[", " ", "]", " ", + "(", " ", ")", " ", "【", " ", "】", " ", "(", " ", ")", " ", + ).Replace(lower) + padded := " " + normalized + " " + for _, m := range sortedKeywords { + kw := m.keyword + if len(kw) <= 2 { + continue + } + if keywordMatches(padded, kw) { + return m.code + } + } + for _, tok := range strings.Fields(normalized) { + tok = strings.TrimSpace(tok) + if tok == "" { + continue + } + if len(tok) == 2 { + if _, ok := nameByCode[strings.ToUpper(tok)]; ok { + return strings.ToUpper(tok) + } + continue + } + if len(tok) > 2 { + prefix := strings.ToUpper(tok[:2]) + if _, ok := nameByCode[prefix]; !ok { + continue + } + suffix := tok[2:] + if suffix == "" { + continue + } + allDigits := true + for _, r := range suffix { + if r < '0' || r > '9' { + allDigits = false + break + } + } + if allDigits { + return prefix + } + } + } + return "" +} + +// Name returns Chinese display name for a country code. +func Name(code string) string { + if n, ok := nameByCode[strings.ToUpper(code)]; ok { + return n + } + return code +} + +// GroupRuntime returns Mihomo proxy-group name for a country pool. +func GroupRuntime(code string) string { + return "country_" + strings.ToUpper(strings.TrimSpace(code)) +} + +// TargetAlias returns rule target alias stored in DB, e.g. country:HK. +func TargetAlias(code string) string { + return "country:" + strings.ToUpper(strings.TrimSpace(code)) +} + +// ParseTargetAlias parses country:XX to code, ok false if not a country target. +func ParseTargetAlias(target string) (string, bool) { + if !strings.HasPrefix(strings.ToLower(target), "country:") { + return "", false + } + code := strings.TrimSpace(target[len("country:"):]) + if code == "" { + return "", false + } + return strings.ToUpper(code), true +} + +// All returns catalog entries for UI. +func All() []struct{ Code, Name string } { + out := make([]struct{ Code, Name string }, 0, len(catalog)) + for _, e := range catalog { + out = append(out, struct{ Code, Name string }{Code: e.Code, Name: e.Name}) + } + return out +} + +func keywordMatches(text, kw string) bool { + if !strings.Contains(text, kw) { + return false + } + if containsHan(kw) { + return true + } + start := 0 + for { + idx := strings.Index(text[start:], kw) + if idx < 0 { + return false + } + pos := start + idx + before := pos == 0 || !isASCIIAlphaNum(text[pos-1]) + afterEnd := pos + len(kw) + after := afterEnd >= len(text) || !isASCIIAlphaNum(text[afterEnd]) + if before && after { + return true + } + start = pos + 1 + } +} + +func isASCIIAlphaNum(b byte) bool { + return (b >= 'a' && b <= 'z') || (b >= '0' && b <= '9') +} + +func containsHan(s string) bool { + for _, r := range s { + if r >= 0x4e00 && r <= 0x9fff { + return true + } + } + return false +} diff --git a/internal/country/detect_test.go b/internal/country/detect_test.go new file mode 100644 index 0000000..1c3d88c --- /dev/null +++ b/internal/country/detect_test.go @@ -0,0 +1,56 @@ +package country + +import "testing" + +func TestDetectCountry(t *testing.T) { + cases := map[string]string{ + "香港 01 | IEPL": "HK", + "🇺🇸美国洛杉矶": "US", + "日本东京专线": "JP", + "Singapore-01": "SG", + "KR首尔": "KR", + "台湾节点": "TW", + "DE法兰克福": "DE", + "HK 01": "HK", + "墨西哥城 01": "MX", + "Mexico City": "MX", + "南非 约翰内斯堡": "ZA", + "South Africa JNB": "ZA", + "新西兰 奥克兰": "NZ", + "New Zealand Auckland": "NZ", + "尼日利亚 拉各斯": "NG", + "Nigeria Lagos": "NG", + "冰岛 雷克雅未克": "IS", + "Iceland Reykjavik": "IS", + "random node": "", + } + for name, want := range cases { + if got := Detect(name); got != want { + t.Fatalf("%q: want %q got %q", name, want, got) + } + } +} + +func TestTargetAlias(t *testing.T) { + code, ok := ParseTargetAlias("country:hk") + if !ok || code != "HK" { + t.Fatalf("parse failed: %v %q", ok, code) + } + if GroupRuntime("HK") != "country_HK" { + t.Fatal("group runtime name") + } +} + +func TestCatalogCoverage(t *testing.T) { + if len(catalog) < 150 { + t.Fatalf("expected comprehensive catalog, got %d entries", len(catalog)) + } + for _, e := range catalog { + if e.Code == "" || e.Name == "" || len(e.Keywords) == 0 { + t.Fatalf("invalid entry: %+v", e) + } + if Name(e.Code) != e.Name { + t.Fatalf("name mismatch for %s", e.Code) + } + } +} diff --git a/internal/geodata/geodata.go b/internal/geodata/geodata.go new file mode 100644 index 0000000..cdf0629 --- /dev/null +++ b/internal/geodata/geodata.go @@ -0,0 +1,149 @@ +package geodata + +import ( + "fmt" + "io" + "net/http" + "os" + "path/filepath" + "strings" + "time" + + "github.com/metacubex/mihomo/component/geodata" + C "github.com/metacubex/mihomo/constant" +) + +const DefaultBase = "https://ghfast.top/https://github.com/MetaCubeX/meta-rules-dat/releases/download/latest" + +type Config struct { + CountryMmdbURL string + GeoIPURL string + GeoSiteURL string +} + +type FileSpec struct { + Name string + URL func(Config) string +} + +var fileSpecs = []FileSpec{ + {Name: "Country.mmdb", URL: func(c Config) string { return c.CountryMmdbURL }}, + {Name: "geoip.dat", URL: func(c Config) string { return c.GeoIPURL }}, + {Name: "geosite.dat", URL: func(c Config) string { return c.GeoSiteURL }}, +} + +func DefaultConfig() Config { + return Config{ + CountryMmdbURL: DefaultBase + "/Country.mmdb", + GeoIPURL: DefaultBase + "/geoip.dat", + GeoSiteURL: DefaultBase + "/geosite.dat", + } +} + +func ConfigFromSettings(settings map[string]string) Config { + def := DefaultConfig() + return Config{ + CountryMmdbURL: pickURL(settings["geo_country_mmdb_url"], def.CountryMmdbURL), + GeoIPURL: pickURL(settings["geo_geoip_url"], def.GeoIPURL), + GeoSiteURL: pickURL(settings["geo_geosite_url"], def.GeoSiteURL), + } +} + +func pickURL(value, fallback string) string { + value = strings.TrimSpace(value) + if value == "" { + return fallback + } + return value +} + +func InitHomeDir(dataDir string) string { + geoDir := filepath.Join(dataDir, "geo") + _ = os.MkdirAll(geoDir, 0o755) + C.SetHomeDir(geoDir) + return geoDir +} + +func ApplyMihomoURLs(cfg Config) { + geodata.SetMmdbUrl(cfg.CountryMmdbURL) + geodata.SetGeoIpUrl(cfg.GeoIPURL) + geodata.SetGeoSiteUrl(cfg.GeoSiteURL) + geodata.SetASNUrl(DefaultBase + "/GeoLite2-ASN.mmdb") +} + +type FileStatus struct { + Name string `json:"name"` + Exists bool `json:"exists"` + Size int64 `json:"size"` + URL string `json:"url"` +} + +func Status(dataDir string, cfg Config) []FileStatus { + geoDir := filepath.Join(dataDir, "geo") + out := make([]FileStatus, 0, len(fileSpecs)) + for _, spec := range fileSpecs { + dest := filepath.Join(geoDir, spec.Name) + item := FileStatus{Name: spec.Name, URL: spec.URL(cfg)} + if st, err := os.Stat(dest); err == nil && st.Size() > 0 { + item.Exists = true + item.Size = st.Size() + } + out = append(out, item) + } + return out +} + +func Ready(dataDir string) bool { + geoDir := filepath.Join(dataDir, "geo") + for _, spec := range fileSpecs { + st, err := os.Stat(filepath.Join(geoDir, spec.Name)) + if err != nil || st.Size() == 0 { + return false + } + } + return true +} + +// Ensure downloads missing geo files. When force is true, all files are re-downloaded. +func Ensure(dataDir string, cfg Config, force bool) ([]string, error) { + geoDir := InitHomeDir(dataDir) + client := &http.Client{Timeout: 120 * time.Second} + var updated []string + for _, spec := range fileSpecs { + dest := filepath.Join(geoDir, spec.Name) + if !force { + if st, err := os.Stat(dest); err == nil && st.Size() > 0 { + continue + } + } + url := spec.URL(cfg) + if err := downloadFile(client, url, dest); err != nil { + return updated, fmt.Errorf("download %s: %w (place files manually in %s)", spec.Name, err, geoDir) + } + updated = append(updated, spec.Name) + } + return updated, nil +} + +func downloadFile(client *http.Client, url, dest string) error { + resp, err := client.Get(url) + if err != nil { + return err + } + defer resp.Body.Close() + if resp.StatusCode >= 400 { + return fmt.Errorf("HTTP %d", resp.StatusCode) + } + tmp := dest + ".tmp" + f, err := os.Create(tmp) + if err != nil { + return err + } + if _, err := io.Copy(f, resp.Body); err != nil { + f.Close() + os.Remove(tmp) + return err + } + f.Close() + return os.Rename(tmp, dest) +} diff --git a/internal/geodata/geodata_test.go b/internal/geodata/geodata_test.go new file mode 100644 index 0000000..f6568ea --- /dev/null +++ b/internal/geodata/geodata_test.go @@ -0,0 +1,23 @@ +package geodata + +import "testing" + +func TestConfigFromSettingsUsesDefaults(t *testing.T) { + cfg := ConfigFromSettings(map[string]string{}) + def := DefaultConfig() + if cfg.CountryMmdbURL != def.CountryMmdbURL || cfg.GeoIPURL != def.GeoIPURL || cfg.GeoSiteURL != def.GeoSiteURL { + t.Fatalf("expected defaults, got %+v", cfg) + } +} + +func TestConfigFromSettingsOverrides(t *testing.T) { + cfg := ConfigFromSettings(map[string]string{ + "geo_geoip_url": "https://example.com/geoip.dat", + }) + if cfg.GeoIPURL != "https://example.com/geoip.dat" { + t.Fatalf("got %q", cfg.GeoIPURL) + } + if cfg.GeoSiteURL != DefaultConfig().GeoSiteURL { + t.Fatalf("expected default geosite url") + } +} diff --git a/internal/health/checker.go b/internal/health/checker.go new file mode 100644 index 0000000..244b7f1 --- /dev/null +++ b/internal/health/checker.go @@ -0,0 +1,170 @@ +package health + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + "sync/atomic" + "time" + + "github.com/prism/proxy/internal/cache" + "github.com/prism/proxy/internal/store" +) + +type ReloadFunc func(ctx context.Context) error + +type Checker struct { + store *store.Store + cache *cache.Cache + apiBase string + secret string + client *http.Client + testing atomic.Bool +} + +func NewChecker(s *store.Store, c *cache.Cache, apiBase, secret string) *Checker { + return &Checker{ + store: s, + cache: c, + apiBase: stringsTrimRight(apiBase, "/"), + secret: secret, + client: &http.Client{ + Timeout: 10 * time.Second, + }, + } +} + +func stringsTrimRight(s, cut string) string { + for len(s) > 0 && stringsHasSuffix(s, cut) { + s = s[:len(s)-len(cut)] + } + return s +} + +func stringsHasSuffix(s, suffix string) bool { + return len(s) >= len(suffix) && s[len(s)-len(suffix):] == suffix +} + +func (h *Checker) TestNode(ctx context.Context, nodeID int64, reload ReloadFunc) (int, error) { + node, err := h.store.GetProxyNode(ctx, nodeID) + if err != nil { + return -1, err + } + latency, err := h.testRuntimeName(node.RuntimeName) + if isNotFound(err) && reload != nil { + if reloadErr := reload(ctx); reloadErr == nil { + latency, err = h.testRuntimeName(node.RuntimeName) + } + } + if isNotFound(err) { + err = fmt.Errorf("proxy %q not loaded in engine; reload engine in settings", node.RuntimeName) + } + alive := err == nil && latency >= 0 + lat := latency + if !alive { + lat = -1 + } + _ = h.store.UpdateProxyNodeHealth(ctx, nodeID, lat, alive) + h.cache.SetProxyLatency(node.RuntimeName, lat) + return lat, err +} + +func (h *Checker) TestAll(ctx context.Context, _ ReloadFunc) error { + if !h.testing.CompareAndSwap(false, true) { + return nil + } + go func() { + defer h.testing.Store(false) + nodes, err := h.store.ListProxyNodes(context.Background(), "", nil) + if err != nil { + return + } + for _, n := range nodes { + if !n.Enabled { + continue + } + _, _ = h.TestNode(context.Background(), n.ID, nil) + } + }() + return nil +} + +func (h *Checker) ProxyLoaded(name string) bool { + data, err := h.getJSON("/proxies") + if err != nil { + return false + } + proxies, ok := data["proxies"].(map[string]any) + if !ok { + return false + } + _, ok = proxies[name] + return ok +} + +func (h *Checker) testRuntimeName(name string) (int, error) { + testURL := fmt.Sprintf("%s/proxies/%s/delay?timeout=5000&url=%s", h.apiBase, url.PathEscape(name), url.QueryEscape("http://www.gstatic.com/generate_204")) + req, err := http.NewRequest(http.MethodGet, testURL, nil) + if err != nil { + return -1, err + } + if h.secret != "" { + req.Header.Set("Authorization", "Bearer "+h.secret) + } + resp, err := h.client.Do(req) + if err != nil { + return -1, err + } + defer resp.Body.Close() + body, _ := io.ReadAll(resp.Body) + if resp.StatusCode >= 400 { + return -1, fmt.Errorf("delay test failed: %s", string(body)) + } + var result struct { + Delay int `json:"delay"` + } + if err := json.Unmarshal(body, &result); err != nil { + return -1, err + } + return result.Delay, nil +} + +func (h *Checker) getJSON(path string) (map[string]any, error) { + req, err := http.NewRequest(http.MethodGet, h.apiBase+path, nil) + if err != nil { + return nil, err + } + if h.secret != "" { + req.Header.Set("Authorization", "Bearer "+h.secret) + } + resp, err := h.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + if resp.StatusCode >= 400 { + return nil, fmt.Errorf("api error %d: %s", resp.StatusCode, string(body)) + } + var out map[string]any + if err := json.Unmarshal(body, &out); err != nil { + return nil, err + } + return out, nil +} + +func isNotFound(err error) bool { + return err != nil && strings.Contains(err.Error(), "Resource not found") +} + +func (h *Checker) UpdateAPIBase(apiBase, secret string) { + h.apiBase = stringsTrimRight(apiBase, "/") + h.secret = secret +} diff --git a/internal/log/collector.go b/internal/log/collector.go new file mode 100644 index 0000000..65003cb --- /dev/null +++ b/internal/log/collector.go @@ -0,0 +1,67 @@ +package applog + +import ( + "context" + "sync" + "time" + + "github.com/prism/proxy/internal/store" +) + +type Entry struct { + Level string `json:"level"` + Source string `json:"source"` + Message string `json:"message"` + CreatedAt time.Time `json:"created_at"` +} + +type Collector struct { + mu sync.RWMutex + ring []Entry + cap int + store *store.Store + persist bool +} + +func NewCollector(s *store.Store, capacity int, persist bool) *Collector { + return &Collector{ + ring: make([]Entry, 0, capacity), + cap: capacity, + store: s, + persist: persist, + } +} + +func (c *Collector) Add(level, source, message string) { + e := Entry{ + Level: level, + Source: source, + Message: message, + CreatedAt: time.Now(), + } + c.mu.Lock() + if len(c.ring) >= c.cap { + c.ring = c.ring[1:] + } + c.ring = append(c.ring, e) + c.mu.Unlock() + + if c.persist && c.store != nil { + _ = c.store.AddRequestLog(context.Background(), level, source, message) + } +} + +func (c *Collector) List(limit int) []Entry { + c.mu.RLock() + defer c.mu.RUnlock() + if limit <= 0 || limit > len(c.ring) { + limit = len(c.ring) + } + start := len(c.ring) - limit + if start < 0 { + start = 0 + } + out := make([]Entry, limit) + copy(out, c.ring[start:]) + return out +} diff --git a/internal/metrics/breakdown.go b/internal/metrics/breakdown.go new file mode 100644 index 0000000..9b1662a --- /dev/null +++ b/internal/metrics/breakdown.go @@ -0,0 +1,173 @@ +package metrics + +import ( + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/store" +) + +type TrafficItem struct { + Key string `json:"key"` + Label string `json:"label"` + Node string `json:"node,omitempty"` + NodeKey string `json:"node_key,omitempty"` + Upload int64 `json:"upload"` + Download int64 `json:"download"` + Total int64 `json:"total"` + Connections int `json:"connections"` +} + +func AggregateConnections(conns []map[string]any, policyGroups map[string]bool) (domains, nodes []TrafficItem) { + domainMap := map[string]*TrafficItem{} + nodeMap := map[string]*TrafficItem{} + + for _, conn := range conns { + host := connHost(conn) + nodeKey := connLeafNode(conn, policyGroups) + up := toInt64(conn["upload"]) + down := toInt64(conn["download"]) + + if host != "" { + key := host + "\x00" + nodeKey + acc(domainMap, key, up, down) + item := domainMap[key] + item.Label = host + item.NodeKey = nodeKey + } + if nodeKey != "" { + acc(nodeMap, nodeKey, up, down) + } + } + return sortTrafficItems(domainMap), sortTrafficItems(nodeMap) +} + +func acc(m map[string]*TrafficItem, key string, up, down int64) { + item, ok := m[key] + if !ok { + item = &TrafficItem{Key: key, Label: key} + m[key] = item + } + item.Upload += up + item.Download += down + item.Total += up + down + item.Connections++ +} + +func sortTrafficItems(m map[string]*TrafficItem) []TrafficItem { + out := make([]TrafficItem, 0, len(m)) + for _, v := range m { + out = append(out, *v) + } + for i := 0; i < len(out); i++ { + for j := i + 1; j < len(out); j++ { + if out[j].Total > out[i].Total { + out[i], out[j] = out[j], out[i] + } + } + } + return out +} + +func connHost(m map[string]any) string { + meta, _ := m["metadata"].(map[string]any) + if meta == nil { + return "" + } + if h, ok := meta["host"].(string); ok && h != "" { + return h + } + if h, ok := meta["sniffHost"].(string); ok && h != "" { + return h + } + if h, ok := meta["remoteDestination"].(string); ok && h != "" { + return h + } + if ip, ok := meta["destinationIP"].(string); ok && ip != "" { + port, _ := meta["destinationPort"].(string) + if port != "" { + return ip + ":" + port + } + return ip + } + return "" +} + +func connLeafNode(m map[string]any, policyGroups map[string]bool) string { + return mihomoapi.ResolveLeafOutbound(mihomoapi.ChainStringsFromAny(m["chains"]), policyGroups) +} + +func toInt64(v any) int64 { + switch n := v.(type) { + case float64: + return int64(n) + case int64: + return n + case int: + return int64(n) + default: + return 0 + } +} + +func ApplyTrafficLabels(items []TrafficItem, names map[string]string) []TrafficItem { + out := make([]TrafficItem, len(items)) + for i, item := range items { + out[i] = item + if label, ok := names[item.Key]; ok && label != "" { + out[i].Label = label + } + } + return out +} + +func ApplyDomainLabels(items []TrafficItem, names map[string]string) []TrafficItem { + out := make([]TrafficItem, len(items)) + for i, item := range items { + out[i] = item + if label, ok := names[item.NodeKey]; ok && label != "" { + out[i].Node = label + } else if item.NodeKey != "" { + out[i].Node = item.NodeKey + } + } + return out +} + +func TrafficAggToItems(aggs []store.TrafficAgg, names map[string]string) []TrafficItem { + out := make([]TrafficItem, 0, len(aggs)) + for _, a := range aggs { + label := a.Key + if n, ok := names[a.Key]; ok && n != "" { + label = n + } + out = append(out, TrafficItem{ + Key: a.Key, + Label: label, + Upload: a.Upload, + Download: a.Download, + Total: a.Upload + a.Download, + Connections: a.Connections, + }) + } + return out +} + +func TrafficHostNodeAggToItems(aggs []store.TrafficHostNodeAgg, names map[string]string) []TrafficItem { + out := make([]TrafficItem, 0, len(aggs)) + for _, a := range aggs { + nodeLabel := a.NodeKey + if n, ok := names[a.NodeKey]; ok && n != "" { + nodeLabel = n + } + out = append(out, TrafficItem{ + Key: a.Host + "\x00" + a.NodeKey, + Label: a.Host, + Node: nodeLabel, + NodeKey: a.NodeKey, + Upload: a.Upload, + Download: a.Download, + Total: a.Upload + a.Download, + Connections: a.Connections, + }) + } + return out +} diff --git a/internal/metrics/breakdown_test.go b/internal/metrics/breakdown_test.go new file mode 100644 index 0000000..da94049 --- /dev/null +++ b/internal/metrics/breakdown_test.go @@ -0,0 +1,46 @@ +package metrics + +import "testing" + +func TestAggregateConnections(t *testing.T) { + groups := map[string]bool{ + "PROXY": true, + "country_HK": true, + } + conns := []map[string]any{ + { + "upload": float64(100), + "download": float64(200), + "metadata": map[string]any{"host": "www.google.com"}, + "chains": []any{"PROXY", "node_us_1"}, + }, + { + "upload": float64(50), + "download": float64(150), + "metadata": map[string]any{"host": "www.google.com"}, + "chains": []any{"country_HK", "node_us_1"}, + }, + { + "upload": float64(10), + "download": float64(20), + "metadata": map[string]any{"host": "api.github.com"}, + "chains": []any{"DIRECT"}, + }, + } + domains, nodes := AggregateConnections(conns, groups) + if len(domains) != 2 { + t.Fatalf("domains: want 2 got %d", len(domains)) + } + if domains[0].Label != "www.google.com" || domains[0].NodeKey != "node_us_1" || domains[0].Total != 500 { + t.Fatalf("google row: %+v", domains[0]) + } + if domains[1].Label != "api.github.com" || domains[1].NodeKey != "DIRECT" { + t.Fatalf("github row: %+v", domains[1]) + } + if len(nodes) != 2 { + t.Fatalf("nodes: want 2 got %d: %+v", len(nodes), nodes) + } + if nodes[0].Key != "node_us_1" { + t.Fatalf("top node: %+v", nodes[0]) + } +} diff --git a/internal/metrics/collector.go b/internal/metrics/collector.go new file mode 100644 index 0000000..dfebfcb --- /dev/null +++ b/internal/metrics/collector.go @@ -0,0 +1,237 @@ +package metrics + +import ( + "context" + "encoding/json" + "fmt" + "io" + "net/http" + "sync" + "time" + + "github.com/prism/proxy/internal/cache" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/store" +) + +type Collector struct { + store *store.Store + cache *cache.Cache + apiBase string + secret string + client *http.Client + + mu sync.Mutex + connCache []map[string]any + connCacheAt time.Time + refreshing bool +} + +func NewCollector(s *store.Store, c *cache.Cache, apiBase, secret string) *Collector { + return &Collector{ + store: s, + cache: c, + apiBase: trimRight(apiBase, "/"), + secret: secret, + client: &http.Client{ + Timeout: 3 * time.Second, + }, + } +} + +func trimRight(s, cut string) string { + for len(s) > 0 && len(s) >= len(cut) && s[len(s)-len(cut):] == cut { + s = s[:len(s)-len(cut)] + } + return s +} + +// Snapshot returns cached dashboard data and never blocks on Mihomo. +func (m *Collector) Snapshot(ctx context.Context) cache.DashboardSnapshot { + snap := m.cache.GetDashboard() + total, alive, _ := m.store.CountEnabledProxies(ctx) + snap.TotalNodes = total + snap.AliveNodes = alive + return snap +} + +func (m *Collector) RefreshIfStale(ctx context.Context, maxAge time.Duration) cache.DashboardSnapshot { + snap := m.cache.GetDashboard() + if !snap.UpdatedAt.IsZero() && time.Since(snap.UpdatedAt) < maxAge { + return snap + } + refreshed, err := m.Refresh(ctx) + if err != nil { + return snap + } + return refreshed +} + +func (m *Collector) RefreshAsync(maxAge time.Duration) { + snap := m.cache.GetDashboard() + if !snap.UpdatedAt.IsZero() && time.Since(snap.UpdatedAt) < maxAge { + return + } + m.mu.Lock() + if m.refreshing { + m.mu.Unlock() + return + } + m.refreshing = true + m.mu.Unlock() + go func() { + defer func() { + m.mu.Lock() + m.refreshing = false + m.mu.Unlock() + }() + ctx, cancel := context.WithTimeout(context.Background(), 6*time.Second) + defer cancel() + _, _ = m.Refresh(ctx) + }() +} + +func (m *Collector) Refresh(ctx context.Context) (cache.DashboardSnapshot, error) { + var snap cache.DashboardSnapshot + snap.UpdatedAt = time.Now() + + var ( + traffic TrafficRatesResult + conns map[string]any + wg sync.WaitGroup + ) + wg.Add(2) + go func() { + defer wg.Done() + rates, err := mihomoapi.New(m.apiBase, m.secret).TrafficRates(ctx) + if err == nil { + traffic = TrafficRatesResult{Up: rates.Up, Down: rates.Down, OK: true} + } + }() + go func() { + defer wg.Done() + conns, _ = m.getJSON("/connections") + }() + wg.Wait() + + if traffic.OK { + snap.UploadRate = traffic.Up + snap.DownloadRate = traffic.Down + } + + if conns != nil { + if arr, ok := conns["connections"].([]any); ok { + snap.Connections = len(arr) + m.setConnCache(arr) + } + } + + total, alive, _ := m.store.CountEnabledProxies(ctx) + snap.TotalNodes = total + snap.AliveNodes = alive + + m.cache.SetDashboard(snap) + _ = m.store.AddTrafficSnapshot(ctx, snap.UploadRate, snap.DownloadRate, int64(snap.Connections)) + return snap, nil +} + +func (m *Collector) setConnCache(arr []any) { + out := make([]map[string]any, 0, len(arr)) + for _, item := range arr { + if m, ok := item.(map[string]any); ok { + out = append(out, m) + } + } + m.mu.Lock() + m.connCache = out + m.connCacheAt = time.Now() + m.mu.Unlock() +} + +func (m *Collector) CachedConnections() []map[string]any { + m.mu.Lock() + defer m.mu.Unlock() + return copyConnSlice(m.connCache) +} + +func (m *Collector) GetConnections() ([]map[string]any, error) { + return m.GetConnectionsCached(0) +} + +func (m *Collector) GetConnectionsCached(maxAge time.Duration) ([]map[string]any, error) { + m.mu.Lock() + if maxAge > 0 && m.connCache != nil && time.Since(m.connCacheAt) < maxAge { + out := copyConnSlice(m.connCache) + m.mu.Unlock() + return out, nil + } + m.mu.Unlock() + + m.RefreshAsync(maxAge) + if cached := m.CachedConnections(); len(cached) > 0 { + return cached, nil + } + + data, err := m.getJSON("/connections") + if err != nil { + m.mu.Lock() + defer m.mu.Unlock() + if m.connCache != nil { + return copyConnSlice(m.connCache), nil + } + return nil, err + } + arr, ok := data["connections"].([]any) + if !ok { + return nil, nil + } + m.setConnCache(arr) + return m.CachedConnections(), nil +} + +func copyConnSlice(in []map[string]any) []map[string]any { + if len(in) == 0 { + return nil + } + out := make([]map[string]any, len(in)) + copy(out, in) + return out +} + +type TrafficRatesResult struct { + Up int64 + Down int64 + OK bool +} + +func (m *Collector) UpdateAPIBase(apiBase, secret string) { + m.apiBase = trimRight(apiBase, "/") + m.secret = secret +} + +func (m *Collector) getJSON(path string) (map[string]any, error) { + req, err := http.NewRequest(http.MethodGet, m.apiBase+path, nil) + if err != nil { + return nil, err + } + if m.secret != "" { + req.Header.Set("Authorization", "Bearer "+m.secret) + } + resp, err := m.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + body, err := io.ReadAll(resp.Body) + if err != nil { + return nil, err + } + if resp.StatusCode >= 400 { + return nil, fmt.Errorf("api error %d: %s", resp.StatusCode, string(body)) + } + var out map[string]any + if err := json.Unmarshal(body, &out); err != nil { + return nil, err + } + return out, nil +} diff --git a/internal/mihomoapi/chain.go b/internal/mihomoapi/chain.go new file mode 100644 index 0000000..2cdc350 --- /dev/null +++ b/internal/mihomoapi/chain.go @@ -0,0 +1,40 @@ +package mihomoapi + +var leafOutbounds = map[string]bool{ + "DIRECT": true, + "REJECT": true, + "REJECT-DROP": true, +} + +// ResolveLeafOutbound returns the actual proxy node from a Mihomo chains path. +// Policy groups are appended after the leaf dial, so the last chain entry is often a group name. +func ResolveLeafOutbound(chains []string, policyGroups map[string]bool) string { + if len(chains) == 0 { + return "" + } + for i := len(chains) - 1; i >= 0; i-- { + name := chains[i] + if leafOutbounds[name] { + return name + } + if policyGroups != nil && policyGroups[name] { + continue + } + return name + } + return chains[len(chains)-1] +} + +func ChainStringsFromAny(raw any) []string { + arr, ok := raw.([]any) + if !ok { + return nil + } + out := make([]string, 0, len(arr)) + for _, item := range arr { + if s, ok := item.(string); ok && s != "" { + out = append(out, s) + } + } + return out +} diff --git a/internal/mihomoapi/chain_test.go b/internal/mihomoapi/chain_test.go new file mode 100644 index 0000000..59dd5ed --- /dev/null +++ b/internal/mihomoapi/chain_test.go @@ -0,0 +1,27 @@ +package mihomoapi + +import "testing" + +func TestResolveLeafOutbound(t *testing.T) { + groups := map[string]bool{ + "PROXY": true, + "country_HK": true, + "自动选择": true, + } + cases := []struct { + chains []string + want string + }{ + {[]string{"PROXY", "sub1_hk_node"}, "sub1_hk_node"}, + {[]string{"country_HK", "sub1_us_node"}, "sub1_us_node"}, + {[]string{"PROXY", "自动选择", "sub1_jp_node"}, "sub1_jp_node"}, + {[]string{"DIRECT"}, "DIRECT"}, + {[]string{"country_HK"}, "country_HK"}, + } + for _, tc := range cases { + got := ResolveLeafOutbound(tc.chains, groups) + if got != tc.want { + t.Fatalf("chains=%v want %q got %q", tc.chains, tc.want, got) + } + } +} diff --git a/internal/mihomoapi/client.go b/internal/mihomoapi/client.go new file mode 100644 index 0000000..20cb333 --- /dev/null +++ b/internal/mihomoapi/client.go @@ -0,0 +1,163 @@ +package mihomoapi + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + "sync" + "time" +) + +type Client struct { + base string + secret string + http *http.Client + + mu sync.Mutex + proxyCache map[string]ProxyState + proxyCacheAt time.Time +} + +type ProxyState struct { + Type string `json:"type"` + Now string `json:"now"` + All []string `json:"all"` +} + +func New(base, secret string) *Client { + return &Client{ + base: stringsTrimRight(base, "/"), + secret: secret, + http: &http.Client{ + Timeout: 10 * time.Second, + }, + } +} + +func (c *Client) ListProxies() (map[string]ProxyState, error) { + return c.ListProxiesCached(0) +} + +func (c *Client) ListProxiesCached(ttl time.Duration) (map[string]ProxyState, error) { + c.mu.Lock() + if ttl > 0 && c.proxyCache != nil && time.Since(c.proxyCacheAt) < ttl { + out := copyProxyStates(c.proxyCache) + c.mu.Unlock() + return out, nil + } + c.mu.Unlock() + + var out struct { + Proxies map[string]ProxyState `json:"proxies"` + } + if err := c.getJSON("/proxies", &out); err != nil { + c.mu.Lock() + defer c.mu.Unlock() + if c.proxyCache != nil { + return copyProxyStates(c.proxyCache), nil + } + return nil, err + } + if out.Proxies == nil { + out.Proxies = map[string]ProxyState{} + } + c.mu.Lock() + c.proxyCache = out.Proxies + c.proxyCacheAt = time.Now() + c.mu.Unlock() + return copyProxyStates(out.Proxies), nil +} + +func (c *Client) Reachable() bool { + req, err := http.NewRequest(http.MethodGet, c.base+"/version", nil) + if err != nil { + return false + } + if c.secret != "" { + req.Header.Set("Authorization", "Bearer "+c.secret) + } + client := &http.Client{Timeout: 2 * time.Second} + resp, err := client.Do(req) + if err != nil { + return false + } + defer resp.Body.Close() + return resp.StatusCode < 400 +} + +func copyProxyStates(in map[string]ProxyState) map[string]ProxyState { + out := make(map[string]ProxyState, len(in)) + for k, v := range in { + out[k] = v + } + return out +} + +func (c *Client) SelectProxy(groupName, proxyName string) error { + body, _ := json.Marshal(map[string]string{"name": proxyName}) + return c.putJSON("/proxies/"+url.PathEscape(groupName), body) +} + +func (c *Client) getJSON(path string, dest any) error { + req, err := http.NewRequest(http.MethodGet, c.base+path, nil) + if err != nil { + return err + } + if c.secret != "" { + req.Header.Set("Authorization", "Bearer "+c.secret) + } + resp, err := c.http.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + data, err := io.ReadAll(resp.Body) + if err != nil { + return err + } + if resp.StatusCode >= 400 { + return fmt.Errorf("mihomo api %d: %s", resp.StatusCode, string(data)) + } + return json.Unmarshal(data, dest) +} + +func (c *Client) putJSON(path string, body []byte) error { + req, err := http.NewRequest(http.MethodPut, c.base+path, bytes.NewReader(body)) + if err != nil { + return err + } + req.Header.Set("Content-Type", "application/json") + if c.secret != "" { + req.Header.Set("Authorization", "Bearer "+c.secret) + } + resp, err := c.http.Do(req) + if err != nil { + return err + } + defer resp.Body.Close() + data, _ := io.ReadAll(resp.Body) + if resp.StatusCode >= 400 { + return fmt.Errorf("mihomo api %d: %s", resp.StatusCode, string(data)) + } + return nil +} + +func stringsTrimRight(s, cut string) string { + for len(s) > 0 && strings.HasSuffix(s, cut) { + s = s[:len(s)-len(cut)] + } + return s +} + +func IsPolicyGroupType(t string) bool { + switch t { + case "Selector", "URLTest", "Fallback", "LoadBalance", "Relay": + return true + default: + return false + } +} diff --git a/internal/mihomoapi/connections.go b/internal/mihomoapi/connections.go new file mode 100644 index 0000000..abda16e --- /dev/null +++ b/internal/mihomoapi/connections.go @@ -0,0 +1,99 @@ +package mihomoapi + +import ( + "encoding/json" + "fmt" + "time" +) + +type ConnectionSnapshot struct { + Connections []Connection `json:"connections"` +} + +type Connection struct { + ID string `json:"id"` + Metadata ConnectionMeta `json:"metadata"` + Upload int64 `json:"upload"` + Download int64 `json:"download"` + Start time.Time `json:"start"` + Chains []string `json:"chains"` + Rule string `json:"rule"` + RulePayload string `json:"rulePayload"` +} + +type ConnectionMeta struct { + Network string `json:"network"` + Host string `json:"host"` + RemoteDestination string `json:"remoteDestination"` + DestinationIP string `json:"destinationIP"` + DestinationPort string `json:"destinationPort"` + SniffHost string `json:"sniffHost"` +} + +func (c *Client) ConnectionSnapshot() (*ConnectionSnapshot, error) { + var snap ConnectionSnapshot + if err := c.getJSON("/connections", &snap); err != nil { + return nil, err + } + return &snap, nil +} + +// ParseConnectionSnapshot decodes Mihomo /connections JSON. +func ParseConnectionSnapshot(data []byte) (*ConnectionSnapshot, error) { + var snap ConnectionSnapshot + if err := json.Unmarshal(data, &snap); err != nil { + return nil, err + } + return &snap, nil +} + +func (conn *Connection) RequestHost() string { + if conn.Metadata.Host != "" { + return conn.Metadata.Host + } + if conn.Metadata.SniffHost != "" { + return conn.Metadata.SniffHost + } + if conn.Metadata.RemoteDestination != "" { + return conn.Metadata.RemoteDestination + } + if conn.Metadata.DestinationIP != "" { + return fmt.Sprintf("%s:%s", conn.Metadata.DestinationIP, conn.Metadata.DestinationPort) + } + return "" +} + +func (conn *Connection) RuleLine() string { + if conn.Rule == "" { + return "" + } + if conn.RulePayload == "" { + return conn.Rule + } + return conn.Rule + "," + conn.RulePayload +} + +func (conn *Connection) OutboundNode() string { + return ResolveLeafOutbound(conn.Chains, nil) +} + +func (conn *Connection) LeafOutbound(policyGroups map[string]bool) string { + return ResolveLeafOutbound(conn.Chains, policyGroups) +} + +func (conn *Connection) ChainString() string { + if len(conn.Chains) == 0 { + return "" + } + b, _ := json.Marshal(conn.Chains) + return string(b) +} + +func (conn *Connection) IsSuccess() bool { + for _, ch := range conn.Chains { + if ch == "REJECT" || ch == "REJECT-DROP" { + return false + } + } + return conn.Upload+conn.Download > 0 +} diff --git a/internal/mihomoapi/connections_test.go b/internal/mihomoapi/connections_test.go new file mode 100644 index 0000000..e8580cc --- /dev/null +++ b/internal/mihomoapi/connections_test.go @@ -0,0 +1,58 @@ +package mihomoapi + +import ( + "testing" + "time" +) + +func TestParseConnectionSnapshot(t *testing.T) { + raw := []byte(`{ + "downloadTotal": 200, + "uploadTotal": 100, + "connections": [{ + "id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", + "metadata": { + "network": "tcp", + "type": "HTTP", + "sourceIP": "127.0.0.1", + "destinationIP": "142.250.185.78", + "destinationPort": "443", + "host": "www.google.com" + }, + "upload": 100, + "download": 200, + "start": "2026-06-16T10:00:00Z", + "chains": ["DIRECT"], + "rule": "DOMAIN", + "rulePayload": "google.com" + }], + "memory": 0 + }`) + + snap, err := ParseConnectionSnapshot(raw) + if err != nil { + t.Fatalf("parse failed: %v", err) + } + if len(snap.Connections) != 1 { + t.Fatalf("expected 1 connection, got %d", len(snap.Connections)) + } + conn := snap.Connections[0] + if conn.ID == "" { + t.Fatal("expected connection id") + } + if conn.Metadata.DestinationPort != "443" { + t.Fatalf("destination port: %q", conn.Metadata.DestinationPort) + } + if conn.RequestHost() != "www.google.com" { + t.Fatalf("host: %q", conn.RequestHost()) + } + if conn.OutboundNode() != "DIRECT" { + t.Fatalf("outbound: %q", conn.OutboundNode()) + } + if conn.Start.IsZero() { + t.Fatal("expected start time") + } + if conn.Start.UTC() != time.Date(2026, 6, 16, 10, 0, 0, 0, time.UTC) { + t.Fatalf("unexpected start: %v", conn.Start) + } +} diff --git a/internal/mihomoapi/traffic.go b/internal/mihomoapi/traffic.go new file mode 100644 index 0000000..55c61e1 --- /dev/null +++ b/internal/mihomoapi/traffic.go @@ -0,0 +1,42 @@ +package mihomoapi + +import ( + "context" + "encoding/json" + "fmt" + "net/http" + "time" +) + +type TrafficRates struct { + Up int64 `json:"up"` + Down int64 `json:"down"` + UpTotal int64 `json:"upTotal"` + DownTotal int64 `json:"downTotal"` +} + +// TrafficRates reads the first frame from Mihomo's streaming /traffic endpoint. +func (c *Client) TrafficRates(ctx context.Context) (TrafficRates, error) { + var zero TrafficRates + req, err := http.NewRequestWithContext(ctx, http.MethodGet, c.base+"/traffic", nil) + if err != nil { + return zero, err + } + if c.secret != "" { + req.Header.Set("Authorization", "Bearer "+c.secret) + } + client := &http.Client{Timeout: 5 * time.Second} + resp, err := client.Do(req) + if err != nil { + return zero, err + } + defer resp.Body.Close() + if resp.StatusCode >= 400 { + return zero, fmt.Errorf("mihomo api %d", resp.StatusCode) + } + var rates TrafficRates + if err := json.NewDecoder(resp.Body).Decode(&rates); err != nil { + return zero, err + } + return rates, nil +} diff --git a/internal/mihomoapi/traffic_test.go b/internal/mihomoapi/traffic_test.go new file mode 100644 index 0000000..5dddf3b --- /dev/null +++ b/internal/mihomoapi/traffic_test.go @@ -0,0 +1,35 @@ +package mihomoapi + +import ( + "context" + "encoding/json" + "net/http" + "net/http/httptest" + "testing" + "time" +) + +func TestTrafficRatesReadsFirstFrame(t *testing.T) { + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + flusher, _ := w.(http.Flusher) + _ = json.NewEncoder(w).Encode(TrafficRates{Up: 100, Down: 200}) + flusher.Flush() + time.Sleep(2 * time.Second) + _ = json.NewEncoder(w).Encode(TrafficRates{Up: 300, Down: 400}) + flusher.Flush() + })) + defer srv.Close() + + client := New(srv.URL, "") + ctx, cancel := context.WithTimeout(context.Background(), 4*time.Second) + defer cancel() + + rates, err := client.TrafficRates(ctx) + if err != nil { + t.Fatalf("TrafficRates: %v", err) + } + if rates.Up != 100 || rates.Down != 200 { + t.Fatalf("got %+v", rates) + } +} diff --git a/internal/proxyio/proxyio.go b/internal/proxyio/proxyio.go new file mode 100644 index 0000000..85c2b12 --- /dev/null +++ b/internal/proxyio/proxyio.go @@ -0,0 +1,269 @@ +package proxyio + +import ( + "encoding/json" + "fmt" + "net/url" + "strings" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/store" + "github.com/prism/proxy/internal/subscription" +) + +const ExportVersion = 1 + +type ExportDoc struct { + Version int `json:"version"` + Nodes []ExportNode `json:"nodes"` +} + +type ExportNode struct { + Name string `json:"name"` + Type string `json:"type"` + RawConfig json.RawMessage `json:"raw_config"` + Country string `json:"country,omitempty"` + Enabled *bool `json:"enabled,omitempty"` +} + +func nodeEnabled(n ExportNode) bool { + if n.Enabled == nil { + return true + } + return *n.Enabled +} + +func ToExportNodes(nodes []store.ProxyNode) []ExportNode { + out := make([]ExportNode, 0, len(nodes)) + for _, n := range nodes { + enabled := n.Enabled + raw := json.RawMessage(n.RawConfig) + if !json.Valid(raw) { + raw = json.RawMessage("{}") + } + out = append(out, ExportNode{ + Name: n.Name, + Type: n.Type, + RawConfig: raw, + Country: n.Country, + Enabled: &enabled, + }) + } + return out +} + +func ExportJSON(nodes []store.ProxyNode) ([]byte, error) { + doc := ExportDoc{Version: ExportVersion, Nodes: ToExportNodes(nodes)} + return json.MarshalIndent(doc, "", " ") +} + +func ExportLinks(nodes []store.ProxyNode) string { + var b strings.Builder + for _, n := range nodes { + if !n.Enabled { + continue + } + link, err := EncodeLink(n) + if err != nil { + b.WriteString("# ") + b.WriteString(n.Name) + b.WriteString(": ") + b.WriteString(err.Error()) + b.WriteByte('\n') + continue + } + b.WriteString(link) + b.WriteByte('\n') + } + return b.String() +} + +func ParseJSON(data []byte) ([]ExportNode, error) { + var doc ExportDoc + if err := json.Unmarshal(data, &doc); err == nil && (len(doc.Nodes) > 0 || doc.Version > 0) { + return doc.Nodes, nil + } + var nodes []ExportNode + if err := json.Unmarshal(data, &nodes); err != nil { + return nil, fmt.Errorf("invalid JSON: %w", err) + } + return nodes, nil +} + +func ParseText(text string) ([]store.ProxyNode, []string) { + text = strings.TrimSpace(text) + if text == "" { + return nil, nil + } + if strings.HasPrefix(text, "{") || strings.HasPrefix(text, "[") { + items, err := ParseJSON([]byte(text)) + if err == nil && len(items) > 0 { + nodes, errs := ToStoreNodes(items) + return nodes, errs + } + } + return subscription.ParseLinkLines(text) +} + +func ToStoreNodes(items []ExportNode) ([]store.ProxyNode, []string) { + out := make([]store.ProxyNode, 0, len(items)) + var errs []string + for i, item := range items { + name := strings.TrimSpace(item.Name) + typ := strings.TrimSpace(strings.ToLower(item.Type)) + raw := normalizeRawConfig(item.RawConfig) + if name == "" { + errs = append(errs, fmt.Sprintf("节点 %d: 缺少名称", i+1)) + continue + } + if typ == "" { + errs = append(errs, fmt.Sprintf("节点 %d: 缺少类型", i+1)) + continue + } + if raw == "" || raw == "{}" { + errs = append(errs, fmt.Sprintf("节点 %d: 缺少配置", i+1)) + continue + } + code := strings.TrimSpace(item.Country) + if code == "" { + code = country.Detect(name) + } + out = append(out, store.ProxyNode{ + Name: name, + RuntimeName: store.RuntimeName("manual", 0, name), + Type: typ, + RawConfig: raw, + Source: "manual", + Country: code, + Enabled: nodeEnabled(item), + }) + } + return out, errs +} + +func normalizeRawConfig(raw json.RawMessage) string { + if len(raw) == 0 { + return "" + } + if raw[0] == '{' || raw[0] == '[' { + if !json.Valid(raw) { + return "" + } + return string(raw) + } + var s string + if err := json.Unmarshal(raw, &s); err == nil { + return strings.TrimSpace(s) + } + return strings.TrimSpace(string(raw)) +} + +func AssignUniqueNames(nodes []store.ProxyNode, reserved map[string]bool) { + if reserved == nil { + reserved = map[string]bool{} + } + for i := range nodes { + name := strings.TrimSpace(nodes[i].Name) + if name == "" { + name = "node" + } + base := name + candidate := base + for n := 2; reserved[candidate]; n++ { + candidate = fmt.Sprintf("%s_%d", base, n) + } + reserved[candidate] = true + nodes[i].Name = candidate + nodes[i].RuntimeName = store.RuntimeName("manual", 0, candidate) + if nodes[i].Country == "" { + nodes[i].Country = country.Detect(candidate) + } + } +} + +func ReservedNames(nodes []store.ProxyNode) map[string]bool { + m := make(map[string]bool, len(nodes)) + for _, n := range nodes { + m[n.Name] = true + } + return m +} + +func EncodeLink(n store.ProxyNode) (string, error) { + var raw map[string]any + if err := json.Unmarshal([]byte(n.RawConfig), &raw); err != nil { + return "", err + } + fragment := url.QueryEscape(n.Name) + typ := strings.ToLower(n.Type) + switch typ { + case "socks5": + return encodeSocks5(raw, fragment) + case "http", "https": + return encodeHTTP(raw, fragment, typ == "https") + case "trojan": + return encodeTrojan(raw, fragment) + default: + return "", fmt.Errorf("类型 %s 暂不支持导出为分享链接", n.Type) + } +} + +func encodeSocks5(raw map[string]any, fragment string) (string, error) { + server, _ := raw["server"].(string) + port := intFromAny(raw["port"]) + if server == "" || port <= 0 { + return "", fmt.Errorf("socks5 配置不完整") + } + host := fmt.Sprintf("%s:%d", server, port) + user, _ := raw["username"].(string) + pass, _ := raw["password"].(string) + if user != "" { + return fmt.Sprintf("socks5://%s:%s@%s#%s", url.QueryEscape(user), url.QueryEscape(pass), host, fragment), nil + } + return fmt.Sprintf("socks5://%s#%s", host, fragment), nil +} + +func encodeHTTP(raw map[string]any, fragment string, tls bool) (string, error) { + server, _ := raw["server"].(string) + port := intFromAny(raw["port"]) + if server == "" || port <= 0 { + return "", fmt.Errorf("http 配置不完整") + } + scheme := "http" + if tls { + scheme = "https" + } + host := fmt.Sprintf("%s:%d", server, port) + user, _ := raw["username"].(string) + pass, _ := raw["password"].(string) + if user != "" { + return fmt.Sprintf("%s://%s:%s@%s#%s", scheme, url.QueryEscape(user), url.QueryEscape(pass), host, fragment), nil + } + return fmt.Sprintf("%s://%s#%s", scheme, host, fragment), nil +} + +func encodeTrojan(raw map[string]any, fragment string) (string, error) { + server, _ := raw["server"].(string) + port := intFromAny(raw["port"]) + pass, _ := raw["password"].(string) + if server == "" || port <= 0 || pass == "" { + return "", fmt.Errorf("trojan 配置不完整") + } + return fmt.Sprintf("trojan://%s@%s:%d#%s", url.QueryEscape(pass), server, port, fragment), nil +} + +func intFromAny(v any) int { + switch n := v.(type) { + case float64: + return int(n) + case int: + return n + case int64: + return int(n) + case json.Number: + i, _ := n.Int64() + return int(i) + default: + return 0 + } +} diff --git a/internal/proxyio/proxyio_test.go b/internal/proxyio/proxyio_test.go new file mode 100644 index 0000000..278fbaa --- /dev/null +++ b/internal/proxyio/proxyio_test.go @@ -0,0 +1,40 @@ +package proxyio + +import ( + "strings" + "testing" + + "github.com/prism/proxy/internal/store" +) + +func TestExportLinksSocks5(t *testing.T) { + text := ExportLinks([]store.ProxyNode{{ + Name: "HK-1", + Type: "socks5", + RawConfig: `{"type":"socks5","server":"1.2.3.4","port":1080,"username":"u","password":"p"}`, + Enabled: true, + }}) + if !strings.Contains(text, "socks5://u:p@1.2.3.4:1080#HK-1") { + t.Fatalf("got %q", text) + } +} + +func TestParseJSONDoc(t *testing.T) { + nodes, err := ParseJSON([]byte(`{"version":1,"nodes":[{"name":"n1","type":"socks5","raw_config":{"server":"1.1.1.1","port":1080}}]}`)) + if err != nil || len(nodes) != 1 { + t.Fatalf("nodes=%+v err=%v", nodes, err) + } + stored, errs := ToStoreNodes(nodes) + if len(errs) != 0 || len(stored) != 1 || stored[0].Name != "n1" { + t.Fatalf("stored=%+v errs=%v", stored, errs) + } +} + +func TestAssignUniqueNames(t *testing.T) { + nodes := []store.ProxyNode{{Name: "a"}, {Name: "a"}} + reserved := map[string]bool{"a": true} + AssignUniqueNames(nodes, reserved) + if nodes[0].Name != "a_2" || nodes[1].Name != "a_3" { + t.Fatalf("names: %s, %s", nodes[0].Name, nodes[1].Name) + } +} diff --git a/internal/ruleio/ruleio.go b/internal/ruleio/ruleio.go new file mode 100644 index 0000000..ad5d642 --- /dev/null +++ b/internal/ruleio/ruleio.go @@ -0,0 +1,189 @@ +package ruleio + +import ( + "encoding/json" + "fmt" + "strings" + + "github.com/prism/proxy/internal/store" +) + +const ExportVersion = 1 + +type ExportDoc struct { + Version int `json:"version"` + Rules []ExportRule `json:"rules"` +} + +type ExportRule struct { + Priority int `json:"priority"` + RuleType string `json:"rule_type"` + Payload string `json:"payload"` + Target string `json:"target"` + Enabled *bool `json:"enabled,omitempty"` +} + +type ImportResult struct { + Imported int `json:"imported"` + Skipped int `json:"skipped"` + Errors []string `json:"errors,omitempty"` +} + +func ruleEnabled(r ExportRule) bool { + if r.Enabled == nil { + return true + } + return *r.Enabled +} + +func ToExportRules(rules []store.Rule) []ExportRule { + out := make([]ExportRule, 0, len(rules)) + for _, r := range rules { + enabled := r.Enabled + out = append(out, ExportRule{ + Priority: r.Priority, + RuleType: r.RuleType, + Payload: r.Payload, + Target: r.Target, + Enabled: &enabled, + }) + } + return out +} + +func ExportJSON(rules []store.Rule) ([]byte, error) { + doc := ExportDoc{Version: ExportVersion, Rules: ToExportRules(rules)} + return json.MarshalIndent(doc, "", " ") +} + +func ExportText(rules []store.Rule) string { + var b strings.Builder + for _, r := range rules { + if !r.Enabled { + continue + } + b.WriteString(formatRuleLine(r)) + b.WriteByte('\n') + } + return b.String() +} + +func formatRuleLine(r store.Rule) string { + if r.Payload == "" { + return fmt.Sprintf("%s,%s", r.RuleType, r.Target) + } + return fmt.Sprintf("%s,%s,%s", r.RuleType, r.Payload, r.Target) +} + +func ParseJSON(data []byte) ([]ExportRule, error) { + var doc ExportDoc + if err := json.Unmarshal(data, &doc); err == nil && (len(doc.Rules) > 0 || doc.Version > 0) { + return doc.Rules, nil + } + var rules []ExportRule + if err := json.Unmarshal(data, &rules); err != nil { + return nil, fmt.Errorf("invalid JSON: %w", err) + } + return rules, nil +} + +func ParseText(text string) ([]ExportRule, []string) { + lines := strings.Split(text, "\n") + var out []ExportRule + var errs []string + for i, line := range lines { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "#") { + continue + } + r, err := ParseLine(line) + if err != nil { + errs = append(errs, fmt.Sprintf("第 %d 行: %v", i+1, err)) + continue + } + out = append(out, r) + } + return out, errs +} + +func ParseLine(line string) (ExportRule, error) { + parts := strings.Split(line, ",") + if len(parts) < 2 { + return ExportRule{}, fmt.Errorf("格式无效 %q", line) + } + ruleType := strings.TrimSpace(strings.ToUpper(parts[0])) + if ruleType == "MATCH" { + return ExportRule{}, fmt.Errorf("跳过 MATCH 规则") + } + target := strings.TrimSpace(parts[len(parts)-1]) + if target == "" { + return ExportRule{}, fmt.Errorf("缺少出站目标") + } + payload := "" + if len(parts) > 2 { + payload = strings.Join(parts[1:len(parts)-1], ",") + } + if needsPayload(ruleType) && payload == "" { + return ExportRule{}, fmt.Errorf("%s 需要匹配值", ruleType) + } + enabled := true + return ExportRule{ + RuleType: ruleType, + Payload: payload, + Target: target, + Enabled: &enabled, + }, nil +} + +func needsPayload(ruleType string) bool { + switch ruleType { + case "DIRECT", "REJECT", "REJECT-DROP", "MATCH": + return false + default: + return true + } +} + +func ToStoreRules(rules []ExportRule) ([]store.Rule, []string) { + out := make([]store.Rule, 0, len(rules)) + var errs []string + for i, r := range rules { + ruleType := strings.TrimSpace(strings.ToUpper(r.RuleType)) + target := strings.TrimSpace(r.Target) + if ruleType == "" || ruleType == "MATCH" { + errs = append(errs, fmt.Sprintf("规则 %d: 类型无效", i+1)) + continue + } + if target == "" { + errs = append(errs, fmt.Sprintf("规则 %d: 缺少出站目标", i+1)) + continue + } + payload := strings.TrimSpace(r.Payload) + if needsPayload(ruleType) && payload == "" { + errs = append(errs, fmt.Sprintf("规则 %d: %s 需要匹配值", i+1, ruleType)) + continue + } + out = append(out, store.Rule{ + Priority: r.Priority, + RuleType: ruleType, + Payload: payload, + Target: target, + Source: "manual", + Enabled: ruleEnabled(r), + }) + } + return out, errs +} + +func AssignPriorities(rules []store.Rule, start int) { + if start <= 0 { + start = 100 + } + step := 10 + for i := range rules { + if rules[i].Priority <= 0 { + rules[i].Priority = start + start += step + } + } +} diff --git a/internal/ruleio/ruleio_test.go b/internal/ruleio/ruleio_test.go new file mode 100644 index 0000000..89f8eba --- /dev/null +++ b/internal/ruleio/ruleio_test.go @@ -0,0 +1,64 @@ +package ruleio + +import ( + "strings" + "testing" + + "github.com/prism/proxy/internal/store" +) + +func TestParseLine(t *testing.T) { + r, err := ParseLine("DOMAIN-SUFFIX,google.com,country:HK") + if err != nil { + t.Fatal(err) + } + if r.RuleType != "DOMAIN-SUFFIX" || r.Payload != "google.com" || r.Target != "country:HK" { + t.Fatalf("unexpected %+v", r) + } +} + +func TestParseLineSkipsMatch(t *testing.T) { + _, err := ParseLine("MATCH,DIRECT") + if err == nil { + t.Fatal("expected error") + } +} + +func TestParseText(t *testing.T) { + rules, errs := ParseText("# comment\nDOMAIN,google.com,DIRECT\n\nDOMAIN-SUFFIX,foo.com,PROXY") + if len(errs) != 0 { + t.Fatal(errs) + } + if len(rules) != 2 { + t.Fatalf("got %d rules", len(rules)) + } +} + +func TestParseJSONDoc(t *testing.T) { + rules, err := ParseJSON([]byte(`{"version":1,"rules":[{"rule_type":"DOMAIN","payload":"a.com","target":"DIRECT"}]}`)) + if err != nil { + t.Fatal(err) + } + if len(rules) != 1 || rules[0].Target != "DIRECT" { + t.Fatalf("unexpected %+v", rules) + } +} + +func TestExportText(t *testing.T) { + text := ExportText([]store.Rule{{ + RuleType: "DOMAIN-SUFFIX", + Payload: "x.com", + Target: "PROXY", + Enabled: true, + }}) + if !strings.Contains(text, "DOMAIN-SUFFIX,x.com,PROXY") { + t.Fatalf("got %q", text) + } +} + +func TestToStoreRulesDefaultsEnabled(t *testing.T) { + rules, errs := ToStoreRules([]ExportRule{{RuleType: "DOMAIN", Payload: "a.com", Target: "DIRECT"}}) + if len(errs) != 0 || len(rules) != 1 || !rules[0].Enabled { + t.Fatalf("rules=%+v errs=%v", rules, errs) + } +} diff --git a/internal/rulematch/matcher.go b/internal/rulematch/matcher.go new file mode 100644 index 0000000..7aef06f --- /dev/null +++ b/internal/rulematch/matcher.go @@ -0,0 +1,168 @@ +package rulematch + +import ( + "net" + "net/url" + "strings" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/store" +) + +type Result struct { + Matched bool `json:"matched"` + Host string `json:"host"` + Port string `json:"port,omitempty"` + RuleLine string `json:"rule_line"` + RuleType string `json:"rule_type"` + Payload string `json:"payload"` + Target string `json:"target"` + TargetLabel string `json:"target_label"` + Source string `json:"source"` + Priority int `json:"priority"` + SkippedGeo int `json:"skipped_geo"` + Note string `json:"note,omitempty"` +} + +func ParseHost(raw string) (host, port string) { + raw = strings.TrimSpace(raw) + if raw == "" { + return "", "" + } + if !strings.Contains(raw, "://") { + raw = "http://" + raw + } + u, err := url.Parse(raw) + if err != nil { + return strings.TrimSpace(raw), "" + } + host = u.Hostname() + port = u.Port() + if host == "" { + host = strings.TrimSpace(raw) + } + return strings.ToLower(host), port +} + +func Match(rules []store.Rule, defaultPolicy, rawURL string, geoReady bool) Result { + host, port := ParseHost(rawURL) + if host == "" { + return Result{Note: "无法解析 URL 或域名"} + } + + skippedGeo := 0 + for _, r := range rules { + if !r.Enabled { + continue + } + ruleType := strings.ToUpper(strings.TrimSpace(r.RuleType)) + if ruleType == "MATCH" { + continue + } + if isGeoRule(ruleType) { + if !geoReady { + skippedGeo++ + continue + } + // Geo rules need Mihomo geodata engine; skip in offline matcher. + skippedGeo++ + continue + } + if matchesRule(ruleType, r.Payload, host, port) { + line := formatLine(r) + return Result{ + Matched: true, + Host: host, + Port: port, + RuleLine: line, + RuleType: ruleType, + Payload: r.Payload, + Target: r.Target, + TargetLabel: targetLabel(r.Target), + Source: r.Source, + Priority: r.Priority, + SkippedGeo: skippedGeo, + } + } + } + + policy := defaultPolicy + if policy == "" { + policy = "DIRECT" + } + return Result{ + Matched: true, + Host: host, + Port: port, + RuleLine: "MATCH," + policy, + RuleType: "MATCH", + Payload: "", + Target: policy, + TargetLabel: targetLabel(policy), + Source: "system", + Priority: 999999, + SkippedGeo: skippedGeo, + Note: "未命中任何前置规则,使用默认出站", + } +} + +func isGeoRule(ruleType string) bool { + switch ruleType { + case "GEOIP", "GEOSITE": + return true + default: + return false + } +} + +func matchesRule(ruleType, payload, host, port string) bool { + payload = strings.TrimSpace(payload) + switch ruleType { + case "DOMAIN": + return host == strings.ToLower(payload) + case "DOMAIN-SUFFIX": + suffix := strings.ToLower(payload) + return host == suffix || strings.HasSuffix(host, "."+suffix) + case "DOMAIN-KEYWORD": + return strings.Contains(host, strings.ToLower(payload)) + case "IP-CIDR", "IP-CIDR6": + return matchCIDR(host, payload) + case "DST-PORT": + return port != "" && port == strings.TrimSpace(payload) + case "SRC-PORT": + return false + default: + return false + } +} + +func matchCIDR(host, cidr string) bool { + ip := net.ParseIP(host) + if ip == nil { + return false + } + _, network, err := net.ParseCIDR(strings.TrimSpace(cidr)) + if err != nil { + return false + } + return network.Contains(ip) +} + +func formatLine(r store.Rule) string { + if r.Payload == "" { + return r.RuleType + "," + r.Target + } + return r.RuleType + "," + r.Payload + "," + r.Target +} + +func targetLabel(target string) string { + target = strings.TrimSpace(target) + if code, ok := country.ParseTargetAlias(target); ok { + return country.Name(code) + "(国家池)" + } + if strings.HasPrefix(target, "country_") { + code := strings.TrimPrefix(target, "country_") + return country.Name(code) + "(国家池)" + } + return target +} diff --git a/internal/rulematch/matcher_test.go b/internal/rulematch/matcher_test.go new file mode 100644 index 0000000..e2c8f07 --- /dev/null +++ b/internal/rulematch/matcher_test.go @@ -0,0 +1,35 @@ +package rulematch + +import ( + "testing" + + "github.com/prism/proxy/internal/store" +) + +func TestMatchDomainSuffix(t *testing.T) { + rules := []store.Rule{ + {Priority: 10, RuleType: "DOMAIN-SUFFIX", Payload: "google.com", Target: "PROXY", Source: "manual", Enabled: true}, + {Priority: 20, RuleType: "DOMAIN", Payload: "exact.com", Target: "DIRECT", Source: "manual", Enabled: true}, + } + res := Match(rules, "DIRECT", "https://www.google.com/search", true) + if !res.Matched || res.RuleType != "DOMAIN-SUFFIX" || res.Target != "PROXY" { + t.Fatalf("unexpected: %+v", res) + } +} + +func TestMatchFallback(t *testing.T) { + rules := []store.Rule{ + {Priority: 10, RuleType: "DOMAIN", Payload: "other.com", Target: "PROXY", Source: "manual", Enabled: true}, + } + res := Match(rules, "country:HK", "https://example.com", true) + if res.RuleType != "MATCH" || res.Target != "country:HK" { + t.Fatalf("unexpected: %+v", res) + } +} + +func TestParseHost(t *testing.T) { + host, port := ParseHost("https://foo.com:8443/path") + if host != "foo.com" || port != "8443" { + t.Fatalf("got %q %q", host, port) + } +} diff --git a/internal/service/app.go b/internal/service/app.go new file mode 100644 index 0000000..b195ab4 --- /dev/null +++ b/internal/service/app.go @@ -0,0 +1,150 @@ +package service + +import ( + "context" + "fmt" + "sync" + "time" + + "github.com/prism/proxy/internal/cache" + "github.com/prism/proxy/internal/configbuilder" + "github.com/prism/proxy/internal/core" + "github.com/prism/proxy/internal/geodata" + applog "github.com/prism/proxy/internal/log" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/store" + "github.com/prism/proxy/internal/subscription" +) + +type App struct { + Store *store.Store + Cache *cache.Cache + Engine *core.Engine + Builder *configbuilder.Builder + Subscription *subscription.Service + Logs *applog.Collector + DataDir string + LastReloadError string + + engineMu sync.RWMutex + engineOK bool + engineAt time.Time +} + +func (a *App) ReloadEngine(ctx context.Context) error { + geodata.InitHomeDir(a.DataDir) + settings, err := a.Store.GetSettings(ctx) + if err != nil { + return err + } + geodata.ApplyMihomoURLs(geodata.ConfigFromSettings(settings)) + + yaml, err := a.Builder.Build(ctx) + if err != nil { + return err + } + apiPort := settings["mihomo_api_port"] + if apiPort == "" { + apiPort = "9090" + } + secret := settings["api_secret"] + a.Engine.Configure("127.0.0.1:"+apiPort, secret) + + if err := a.applyConfig(ctx, yaml); err != nil { + a.Logs.Add("warn", "prism", "full config failed, trying minimal: "+err.Error()) + minimal, mErr := a.Builder.BuildMinimal(ctx) + if mErr != nil { + return err + } + if mErr := a.applyConfig(ctx, minimal); mErr != nil { + a.LastReloadError = err.Error() + if last := a.Cache.GetLastYAML(); last != nil { + if fallbackErr := a.Engine.Reload(last); fallbackErr == nil { + a.Logs.Add("warn", "prism", "kept previous engine config after reload failure") + } + } + return err + } + a.LastReloadError = "rules simplified: " + err.Error() + a.Logs.Add("warn", "prism", a.LastReloadError) + return nil + } + return nil +} + +func (a *App) applyConfig(ctx context.Context, yaml []byte) error { + if err := a.Engine.Reload(yaml); err != nil { + return err + } + a.LastReloadError = "" + a.Cache.SetLastYAML(yaml) + a.Logs.Add("info", "prism", "engine reloaded successfully") + a.engineMu.Lock() + a.engineOK = true + a.engineAt = time.Now() + a.engineMu.Unlock() + _ = a.Store.AddAuditLog(ctx, "reload", "engine", "config applied") + return nil +} + +func (a *App) MihomoAPIBase(ctx context.Context) (string, string, error) { + settings, err := a.Store.GetSettings(ctx) + if err != nil { + return "", "", err + } + port := settings["mihomo_api_port"] + if port == "" { + port = "9090" + } + return fmt.Sprintf("http://127.0.0.1:%s", port), settings["api_secret"], nil +} + +func (a *App) EngineReachable(ctx context.Context) bool { + if a.Engine.Running() { + return true + } + a.engineMu.RLock() + if time.Since(a.engineAt) < 15*time.Second { + ok := a.engineOK + a.engineMu.RUnlock() + return ok + } + a.engineMu.RUnlock() + + ok := a.probeEngine(ctx) + a.engineMu.Lock() + a.engineOK = ok + a.engineAt = time.Now() + a.engineMu.Unlock() + return ok +} + +// EngineStatusCached returns last-known engine reachability without blocking on Mihomo. +func (a *App) EngineStatusCached() bool { + if a.Engine.Running() { + return true + } + a.engineMu.RLock() + defer a.engineMu.RUnlock() + return a.engineOK +} + +func (a *App) RefreshEngineStatusAsync() { + go func() { + ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) + defer cancel() + ok := a.probeEngine(ctx) + a.engineMu.Lock() + a.engineOK = ok + a.engineAt = time.Now() + a.engineMu.Unlock() + }() +} + +func (a *App) probeEngine(ctx context.Context) bool { + base, secret, err := a.MihomoAPIBase(ctx) + if err != nil { + return false + } + return mihomoapi.New(base, secret).Reachable() +} diff --git a/internal/service/names.go b/internal/service/names.go new file mode 100644 index 0000000..3b969ea --- /dev/null +++ b/internal/service/names.go @@ -0,0 +1,70 @@ +package service + +import ( + "context" + "strings" + + "github.com/prism/proxy/internal/country" +) + +func (a *App) ProxyDisplayNames(ctx context.Context) (map[string]string, error) { + nodes, err := a.Store.ListProxyNodes(ctx, "", nil) + if err != nil { + return nil, err + } + groups, err := a.Store.ListProxyGroups(ctx) + if err != nil { + return nil, err + } + m := map[string]string{ + "DIRECT": "DIRECT", + "REJECT": "REJECT", + } + for _, n := range nodes { + m[n.RuntimeName] = n.Name + } + for _, g := range groups { + m[g.RuntimeName] = g.Name + } + seen := map[string]bool{} + for _, n := range nodes { + if n.Country == "" || seen[n.Country] { + continue + } + seen[n.Country] = true + rn := country.GroupRuntime(n.Country) + m[rn] = country.Name(n.Country) + "(国家池)" + } + return m, nil +} + +func (a *App) PolicyGroupRuntimes(ctx context.Context) (map[string]bool, error) { + groups, err := a.Store.ListProxyGroups(ctx) + if err != nil { + return nil, err + } + out := map[string]bool{ + "GLOBAL": true, + "PROXY": true, + } + for _, g := range groups { + if g.Enabled { + out[g.RuntimeName] = true + } + } + return out, nil +} + +func DisplayName(names map[string]string, key string) string { + if key == "" { + return "" + } + if name, ok := names[key]; ok && name != "" { + return name + } + if strings.HasPrefix(key, "country_") { + code := strings.TrimPrefix(key, "country_") + return country.Name(code) + "(国家池)" + } + return key +} diff --git a/internal/service/outbound.go b/internal/service/outbound.go new file mode 100644 index 0000000..da9dbdb --- /dev/null +++ b/internal/service/outbound.go @@ -0,0 +1,166 @@ +package service + +import ( + "context" + "fmt" + "strings" + "time" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/store" +) + +type OutboundMember struct { + RuntimeName string `json:"runtime_name"` + Name string `json:"name"` +} + +type OutboundGroup struct { + RuntimeName string `json:"runtime_name"` + Name string `json:"name"` + Type string `json:"type"` + Source string `json:"source"` + Now string `json:"now"` + NowName string `json:"now_name"` + Selectable bool `json:"selectable"` + IsCountry bool `json:"is_country"` + Members []OutboundMember `json:"members"` +} + +type OutboundOverview struct { + DefaultPolicy string `json:"default_policy"` + Groups []OutboundGroup `json:"groups"` +} + +func (a *App) OutboundOverview(ctx context.Context) (OutboundOverview, error) { + settings, err := a.Store.GetSettings(ctx) + if err != nil { + return OutboundOverview{}, err + } + defaultPolicy := settings["default_policy"] + if defaultPolicy == "" { + defaultPolicy = "DIRECT" + } + + base, secret, err := a.MihomoAPIBase(ctx) + if err != nil { + return OutboundOverview{}, err + } + live, err := mihomoapi.New(base, secret).ListProxiesCached(8 * time.Second) + if err != nil { + return OutboundOverview{}, fmt.Errorf("mihomo proxies: %w", err) + } + + nodes, err := a.Store.ListProxyNodes(ctx, "", nil) + if err != nil { + return OutboundOverview{}, err + } + groups, err := a.Store.ListProxyGroups(ctx) + if err != nil { + return OutboundOverview{}, err + } + display := buildDisplayMap(nodes, groups) + + var outGroups []OutboundGroup + seen := map[string]bool{} + for _, g := range groups { + if !g.Enabled { + continue + } + state, ok := live[g.RuntimeName] + if !ok || !mihomoapi.IsPolicyGroupType(state.Type) { + continue + } + seen[g.RuntimeName] = true + outGroups = append(outGroups, buildOutboundGroup(g.RuntimeName, g.Name, g.Source, state, display)) + } + for name, state := range live { + if seen[name] || !mihomoapi.IsPolicyGroupType(state.Type) { + continue + } + outGroups = append(outGroups, buildOutboundGroup(name, display[name], "runtime", state, display)) + } + + return OutboundOverview{ + DefaultPolicy: defaultPolicy, + Groups: outGroups, + }, nil +} + +func (a *App) SelectOutboundGroup(ctx context.Context, groupRuntime, proxyRuntime string) error { + base, secret, err := a.MihomoAPIBase(ctx) + if err != nil { + return err + } + if err := mihomoapi.New(base, secret).SelectProxy(groupRuntime, proxyRuntime); err != nil { + return err + } + _ = a.Store.AddAuditLog(ctx, "select", "outbound", groupRuntime+" -> "+proxyRuntime) + return nil +} + +func (a *App) SetDefaultPolicy(ctx context.Context, policy string) error { + if err := a.Store.SetSettings(ctx, map[string]string{"default_policy": policy}); err != nil { + return err + } + return a.ReloadEngine(ctx) +} + +func buildOutboundGroup(runtimeName, name, source string, state mihomoapi.ProxyState, display map[string]string) OutboundGroup { + if name == "" { + name = runtimeName + } + autoOnly := state.Type == "URLTest" || state.Type == "Fallback" + members := make([]OutboundMember, 0, len(state.All)) + for _, m := range state.All { + if autoOnly && (m == "DIRECT" || m == "REJECT" || m == "REJECT-DROP") { + continue + } + if m == "DIRECT" || m == "REJECT" || m == "REJECT-DROP" { + members = append(members, OutboundMember{RuntimeName: m, Name: m}) + continue + } + members = append(members, OutboundMember{ + RuntimeName: m, + Name: displayName(display, m), + }) + } + return OutboundGroup{ + RuntimeName: runtimeName, + Name: name, + Type: state.Type, + Source: source, + Now: state.Now, + NowName: displayName(display, state.Now), + Selectable: state.Type == "Selector", + IsCountry: strings.HasPrefix(runtimeName, "country_"), + Members: members, + } +} + +func buildDisplayMap(nodes []store.ProxyNode, groups []store.ProxyGroup) map[string]string { + m := map[string]string{ + "DIRECT": "DIRECT", + "REJECT": "REJECT", + } + seen := map[string]bool{} + for _, n := range nodes { + m[n.RuntimeName] = n.Name + if n.Country != "" && !seen[n.Country] { + seen[n.Country] = true + m[country.GroupRuntime(n.Country)] = country.Name(n.Country) + "(国家池)" + } + } + for _, g := range groups { + m[g.RuntimeName] = g.Name + } + return m +} + +func displayName(display map[string]string, runtime string) string { + if name, ok := display[runtime]; ok && name != "" { + return name + } + return runtime +} diff --git a/internal/settings/defaults.go b/internal/settings/defaults.go new file mode 100644 index 0000000..dc33e90 --- /dev/null +++ b/internal/settings/defaults.go @@ -0,0 +1,61 @@ +package settings + +import ( + "strconv" + "strings" + + "github.com/prism/proxy/internal/geodata" +) + +// Display merges stored settings with effective defaults for the settings UI. +func Display(raw map[string]string) map[string]string { + out := make(map[string]string, len(raw)+8) + for k, v := range raw { + out[k] = v + } + applyGeoDisplayDefaults(out) + applyScalarDisplayDefaults(out) + applyLocaleDisplayDefaults(out) + return out +} + +// NormalizeSubmit clears values that match built-in defaults so empty means default. +func NormalizeSubmit(req map[string]string) { + normalizeGeoSubmit(req) + normalizeLocaleSubmit(req) +} + +func applyGeoDisplayDefaults(out map[string]string) { + def := geodata.DefaultConfig() + if strings.TrimSpace(out["geo_country_mmdb_url"]) == "" { + out["geo_country_mmdb_url"] = def.CountryMmdbURL + } + if strings.TrimSpace(out["geo_geoip_url"]) == "" { + out["geo_geoip_url"] = def.GeoIPURL + } + if strings.TrimSpace(out["geo_geosite_url"]) == "" { + out["geo_geosite_url"] = def.GeoSiteURL + } +} + +func normalizeGeoSubmit(req map[string]string) { + def := geodata.DefaultConfig() + if strings.TrimSpace(req["geo_country_mmdb_url"]) == def.CountryMmdbURL { + req["geo_country_mmdb_url"] = "" + } + if strings.TrimSpace(req["geo_geoip_url"]) == def.GeoIPURL { + req["geo_geoip_url"] = "" + } + if strings.TrimSpace(req["geo_geosite_url"]) == def.GeoSiteURL { + req["geo_geosite_url"] = "" + } +} + +func applyScalarDisplayDefaults(out map[string]string) { + if strings.TrimSpace(out["login_max_attempts"]) == "" { + out["login_max_attempts"] = strconv.Itoa(5) + } + if strings.TrimSpace(out["login_lock_minutes"]) == "" { + out["login_lock_minutes"] = strconv.Itoa(15) + } +} diff --git a/internal/settings/defaults_test.go b/internal/settings/defaults_test.go new file mode 100644 index 0000000..54e46d8 --- /dev/null +++ b/internal/settings/defaults_test.go @@ -0,0 +1,27 @@ +package settings + +import "testing" + +func TestDisplayFillsGeoDefaults(t *testing.T) { + out := Display(map[string]string{ + "geo_country_mmdb_url": "", + "geo_geoip_url": "", + "geo_geosite_url": "", + }) + if out["geo_country_mmdb_url"] == "" || out["geo_geoip_url"] == "" || out["geo_geosite_url"] == "" { + t.Fatalf("expected geo defaults, got %+v", out) + } +} + +func TestNormalizeSubmitClearsDefaultGeoURLs(t *testing.T) { + out := Display(map[string]string{}) + req := map[string]string{ + "geo_country_mmdb_url": out["geo_country_mmdb_url"], + "geo_geoip_url": out["geo_geoip_url"], + "geo_geosite_url": out["geo_geosite_url"], + } + NormalizeSubmit(req) + if req["geo_country_mmdb_url"] != "" || req["geo_geoip_url"] != "" || req["geo_geosite_url"] != "" { + t.Fatalf("expected empty submit, got %+v", req) + } +} diff --git a/internal/settings/keys.go b/internal/settings/keys.go new file mode 100644 index 0000000..cead4fd --- /dev/null +++ b/internal/settings/keys.go @@ -0,0 +1,25 @@ +package settings + +// Well-known settings keys stored in SQLite. +const ( + KeyHTTPPort = "http_port" + KeySocksPort = "socks_port" + KeyAPIPort = "api_port" + KeyMihomoAPIPort = "mihomo_api_port" + KeyAPISecret = "api_secret" + KeyAdminPassword = "admin_password" + KeyAuthEnabled = "auth_enabled" + KeyLogLevel = "log_level" + KeyHealthIntervalSec = "health_interval_sec" + KeySubSyncEnabled = "sub_sync_enabled" + KeyDefaultPolicy = "default_policy" + KeyGeoAutoDownload = "geo_auto_download" + KeyLoginMaxAttempts = "login_max_attempts" + KeyLoginLockMinutes = "login_lock_minutes" + KeyProxyAuthUser = "proxy_auth_user" + KeyProxyAuthPass = "proxy_auth_pass" + KeyGeoCountryMmdbURL = "geo_country_mmdb_url" + KeyGeoGeoIPURL = "geo_geoip_url" + KeyGeoGeoSiteURL = "geo_geosite_url" + KeyUILocale = "ui_locale" +) diff --git a/internal/settings/locale.go b/internal/settings/locale.go new file mode 100644 index 0000000..e8ed709 --- /dev/null +++ b/internal/settings/locale.go @@ -0,0 +1,29 @@ +package settings + +import "strings" + +var validUILocales = map[string]bool{ + "zh-CN": true, + "zh-TW": true, + "en": true, +} + +func NormalizeUILocale(v string) string { + v = strings.TrimSpace(v) + if validUILocales[v] { + return v + } + return "zh-CN" +} + +func applyLocaleDisplayDefaults(out map[string]string) { + if strings.TrimSpace(out[KeyUILocale]) == "" { + out[KeyUILocale] = "zh-CN" + } +} + +func normalizeLocaleSubmit(req map[string]string) { + if v, ok := req[KeyUILocale]; ok { + req[KeyUILocale] = NormalizeUILocale(v) + } +} diff --git a/internal/store/api_keys_repo.go b/internal/store/api_keys_repo.go new file mode 100644 index 0000000..75632ac --- /dev/null +++ b/internal/store/api_keys_repo.go @@ -0,0 +1,110 @@ +package store + +import ( + "context" + "database/sql" + "time" +) + +func (s *Store) ListAPIKeys(ctx context.Context) ([]APIKey, error) { + rows, err := s.db.QueryContext(ctx, ` + SELECT id, name, key_prefix, enabled, last_used_at, created_at + FROM api_keys + ORDER BY id DESC`) + if err != nil { + return nil, err + } + defer rows.Close() + return scanAPIKeys(rows) +} + +func (s *Store) CreateAPIKey(ctx context.Context, name, keyPrefix, keyHash string) (*APIKey, error) { + res, err := s.db.ExecContext(ctx, ` + INSERT INTO api_keys(name, key_prefix, key_hash, enabled) + VALUES(?,?,?,1)`, name, keyPrefix, keyHash) + if err != nil { + return nil, err + } + id, _ := res.LastInsertId() + return s.GetAPIKey(ctx, id) +} + +func (s *Store) GetAPIKey(ctx context.Context, id int64) (*APIKey, error) { + row := s.db.QueryRowContext(ctx, ` + SELECT id, name, key_prefix, enabled, last_used_at, created_at + FROM api_keys WHERE id=?`, id) + return scanAPIKey(row) +} + +func (s *Store) DeleteAPIKey(ctx context.Context, id int64) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM api_keys WHERE id=?`, id) + return err +} + +func (s *Store) VerifyAPIKey(ctx context.Context, keyHash string) (bool, error) { + var id int64 + err := s.db.QueryRowContext(ctx, ` + SELECT id FROM api_keys WHERE key_hash=? AND enabled=1`, keyHash).Scan(&id) + if err == sql.ErrNoRows { + return false, nil + } + if err != nil { + return false, err + } + _, _ = s.db.ExecContext(ctx, `UPDATE api_keys SET last_used_at=datetime('now') WHERE id=?`, id) + return true, nil +} + +func scanAPIKeys(rows *sql.Rows) ([]APIKey, error) { + var out []APIKey + for rows.Next() { + item, err := scanAPIKeyFromRows(rows) + if err != nil { + return nil, err + } + out = append(out, *item) + } + return out, rows.Err() +} + +func scanAPIKey(row *sql.Row) (*APIKey, error) { + var item APIKey + var enabled int + var lastUsed, created sql.NullString + if err := row.Scan(&item.ID, &item.Name, &item.KeyPrefix, &enabled, &lastUsed, &created); err != nil { + return nil, err + } + item.Enabled = enabled == 1 + if lastUsed.Valid { + if t, err := time.Parse("2006-01-02 15:04:05", lastUsed.String); err == nil { + item.LastUsedAt = &t + } + } + if created.Valid { + if t, err := time.Parse("2006-01-02 15:04:05", created.String); err == nil { + item.CreatedAt = t + } + } + return &item, nil +} + +func scanAPIKeyFromRows(rows *sql.Rows) (*APIKey, error) { + var item APIKey + var enabled int + var lastUsed, created sql.NullString + if err := rows.Scan(&item.ID, &item.Name, &item.KeyPrefix, &enabled, &lastUsed, &created); err != nil { + return nil, err + } + item.Enabled = enabled == 1 + if lastUsed.Valid { + if t, err := time.Parse("2006-01-02 15:04:05", lastUsed.String); err == nil { + item.LastUsedAt = &t + } + } + if created.Valid { + if t, err := time.Parse("2006-01-02 15:04:05", created.String); err == nil { + item.CreatedAt = t + } + } + return &item, nil +} diff --git a/internal/store/country_repo.go b/internal/store/country_repo.go new file mode 100644 index 0000000..fce1d5a --- /dev/null +++ b/internal/store/country_repo.go @@ -0,0 +1,80 @@ +package store + +import ( + "context" + + "github.com/prism/proxy/internal/country" +) + +type CountryStat struct { + Code string `json:"code"` + Name string `json:"name"` + Count int `json:"count"` +} + +func (s *Store) ListCountryStats(ctx context.Context) ([]CountryStat, error) { + rows, err := s.db.QueryContext(ctx, ` + SELECT country, COUNT(*) FROM proxy_nodes + WHERE enabled=1 AND country != '' + GROUP BY country ORDER BY COUNT(*) DESC, country`) + if err != nil { + return nil, err + } + defer rows.Close() + var out []CountryStat + for rows.Next() { + var st CountryStat + if err := rows.Scan(&st.Code, &st.Count); err != nil { + return nil, err + } + st.Name = country.Name(st.Code) + out = append(out, st) + } + return out, rows.Err() +} + +func (s *Store) BackfillNodeCountries(ctx context.Context) (int, error) { + nodes, err := s.ListProxyNodes(ctx, "", nil) + if err != nil { + return 0, err + } + updated := 0 + for _, n := range nodes { + code := n.Country + if code == "" { + code = country.Detect(n.Name) + } + if code == "" || code == n.Country { + continue + } + if err := s.UpdateProxyNodeCountry(ctx, n.ID, code); err != nil { + return updated, err + } + updated++ + } + return updated, nil +} + +func (s *Store) UpdateProxyNodeCountry(ctx context.Context, id int64, code string) error { + _, err := s.db.ExecContext(ctx, `UPDATE proxy_nodes SET country=?, updated_at=datetime('now') WHERE id=?`, code, id) + return err +} + +func (s *Store) RebuildAllNodeCountries(ctx context.Context) (int, error) { + nodes, err := s.ListProxyNodes(ctx, "", nil) + if err != nil { + return 0, err + } + updated := 0 + for _, n := range nodes { + code := country.Detect(n.Name) + if code == n.Country { + continue + } + if err := s.UpdateProxyNodeCountry(ctx, n.ID, code); err != nil { + return updated, err + } + updated++ + } + return updated, nil +} diff --git a/internal/store/login_attempts.go b/internal/store/login_attempts.go new file mode 100644 index 0000000..00fbbac --- /dev/null +++ b/internal/store/login_attempts.go @@ -0,0 +1,65 @@ +package store + +import ( + "context" + "database/sql" + "time" +) + +type LoginAttempt struct { + FailCount int + WindowStart time.Time + LockedUntil *time.Time +} + +func (s *Store) GetLoginAttempt(ctx context.Context, ip string) (*LoginAttempt, error) { + var failCount int + var windowStart string + var lockedUntil sql.NullString + err := s.db.QueryRowContext(ctx, + `SELECT fail_count, window_start, locked_until FROM login_attempts WHERE ip = ?`, ip, + ).Scan(&failCount, &windowStart, &lockedUntil) + if err == sql.ErrNoRows { + return nil, nil + } + if err != nil { + return nil, err + } + out := &LoginAttempt{ + FailCount: failCount, + WindowStart: parseTime(windowStart), + } + if lockedUntil.Valid && lockedUntil.String != "" { + t := parseTime(lockedUntil.String) + out.LockedUntil = &t + } + return out, nil +} + +func (s *Store) SetLoginAttempt(ctx context.Context, ip string, attempt LoginAttempt) error { + var locked string + if attempt.LockedUntil != nil { + locked = attempt.LockedUntil.Format("2006-01-02 15:04:05") + } + _, err := s.db.ExecContext(ctx, ` + INSERT INTO login_attempts(ip, fail_count, window_start, locked_until) + VALUES(?,?,?,?) + ON CONFLICT(ip) DO UPDATE SET + fail_count = excluded.fail_count, + window_start = excluded.window_start, + locked_until = excluded.locked_until + `, ip, attempt.FailCount, attempt.WindowStart.Format("2006-01-02 15:04:05"), nullIfEmpty(locked)) + return err +} + +func (s *Store) ClearLoginAttempt(ctx context.Context, ip string) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM login_attempts WHERE ip = ?`, ip) + return err +} + +func nullIfEmpty(s string) any { + if s == "" { + return nil + } + return s +} diff --git a/internal/store/migrations/001_init.sql b/internal/store/migrations/001_init.sql new file mode 100644 index 0000000..6ea42e0 --- /dev/null +++ b/internal/store/migrations/001_init.sql @@ -0,0 +1,112 @@ +-- +goose Up +CREATE TABLE IF NOT EXISTS subscriptions ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + url TEXT NOT NULL, + type TEXT NOT NULL DEFAULT 'clash', + interval_sec INTEGER NOT NULL DEFAULT 3600, + enabled INTEGER NOT NULL DEFAULT 1, + last_fetch_at TEXT, + last_error TEXT, + node_count INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +CREATE TABLE IF NOT EXISTS proxy_nodes ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + subscription_id INTEGER, + name TEXT NOT NULL, + runtime_name TEXT NOT NULL UNIQUE, + type TEXT NOT NULL, + raw_config TEXT NOT NULL DEFAULT '{}', + source TEXT NOT NULL DEFAULT 'subscription', + enabled INTEGER NOT NULL DEFAULT 1, + latency_ms INTEGER NOT NULL DEFAULT -1, + alive INTEGER NOT NULL DEFAULT 0, + checked_at TEXT, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')), + FOREIGN KEY (subscription_id) REFERENCES subscriptions(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS rules ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + priority INTEGER NOT NULL DEFAULT 100, + rule_type TEXT NOT NULL, + payload TEXT NOT NULL DEFAULT '', + target TEXT NOT NULL, + source TEXT NOT NULL DEFAULT 'manual', + subscription_id INTEGER, + enabled INTEGER NOT NULL DEFAULT 1, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')), + FOREIGN KEY (subscription_id) REFERENCES subscriptions(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS proxy_groups ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + runtime_name TEXT NOT NULL UNIQUE, + type TEXT NOT NULL DEFAULT 'select', + proxies TEXT NOT NULL DEFAULT '[]', + source TEXT NOT NULL DEFAULT 'subscription', + subscription_id INTEGER, + enabled INTEGER NOT NULL DEFAULT 1, + created_at TEXT NOT NULL DEFAULT (datetime('now')), + updated_at TEXT NOT NULL DEFAULT (datetime('now')), + FOREIGN KEY (subscription_id) REFERENCES subscriptions(id) ON DELETE CASCADE +); + +CREATE TABLE IF NOT EXISTS settings ( + key TEXT PRIMARY KEY, + value TEXT NOT NULL +); + +CREATE TABLE IF NOT EXISTS audit_logs ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + action TEXT NOT NULL, + resource TEXT NOT NULL, + detail TEXT NOT NULL DEFAULT '', + created_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +CREATE TABLE IF NOT EXISTS request_logs ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + level TEXT NOT NULL DEFAULT 'info', + source TEXT NOT NULL DEFAULT 'prism', + message TEXT NOT NULL, + created_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +CREATE TABLE IF NOT EXISTS traffic_snapshots ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + upload_rate INTEGER NOT NULL DEFAULT 0, + download_rate INTEGER NOT NULL DEFAULT 0, + connections INTEGER NOT NULL DEFAULT 0, + created_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +INSERT OR IGNORE INTO settings (key, value) VALUES + ('http_port', '7890'), + ('socks_port', '7891'), + ('api_port', '8080'), + ('mihomo_api_port', '9090'), + ('api_secret', ''), + ('admin_password', 'admin'), + ('auth_enabled', 'true'), + ('log_level', 'info'), + ('health_interval_sec', '300'), + ('sub_sync_enabled', 'true'), + ('default_policy', 'DIRECT'), + ('geo_auto_download', 'true'); + +-- +goose Down +DROP TABLE IF EXISTS traffic_snapshots; +DROP TABLE IF EXISTS request_logs; +DROP TABLE IF EXISTS audit_logs; +DROP TABLE IF EXISTS settings; +DROP TABLE IF EXISTS proxy_groups; +DROP TABLE IF EXISTS rules; +DROP TABLE IF EXISTS proxy_nodes; +DROP TABLE IF EXISTS subscriptions; diff --git a/internal/store/migrations/002_country.sql b/internal/store/migrations/002_country.sql new file mode 100644 index 0000000..280cb64 --- /dev/null +++ b/internal/store/migrations/002_country.sql @@ -0,0 +1,5 @@ +-- +goose Up +ALTER TABLE proxy_nodes ADD COLUMN country TEXT NOT NULL DEFAULT ''; + +-- +goose Down +ALTER TABLE proxy_nodes DROP COLUMN country; diff --git a/internal/store/migrations/003_traffic_logs.sql b/internal/store/migrations/003_traffic_logs.sql new file mode 100644 index 0000000..0c1a554 --- /dev/null +++ b/internal/store/migrations/003_traffic_logs.sql @@ -0,0 +1,23 @@ +-- +goose Up +CREATE TABLE IF NOT EXISTS proxy_request_logs ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + host TEXT NOT NULL DEFAULT '', + network TEXT NOT NULL DEFAULT '', + rule_type TEXT NOT NULL DEFAULT '', + rule_payload TEXT NOT NULL DEFAULT '', + rule_line TEXT NOT NULL DEFAULT '', + outbound_node TEXT NOT NULL DEFAULT '', + outbound_chain TEXT NOT NULL DEFAULT '', + upload INTEGER NOT NULL DEFAULT 0, + download INTEGER NOT NULL DEFAULT 0, + success INTEGER NOT NULL DEFAULT 0, + started_at TEXT NOT NULL, + ended_at TEXT NOT NULL, + created_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +CREATE INDEX IF NOT EXISTS idx_proxy_request_logs_created ON proxy_request_logs(created_at DESC); +CREATE INDEX IF NOT EXISTS idx_proxy_request_logs_host ON proxy_request_logs(host); + +-- +goose Down +DROP TABLE IF EXISTS proxy_request_logs; diff --git a/internal/store/migrations/004_traffic_agg_index.sql b/internal/store/migrations/004_traffic_agg_index.sql new file mode 100644 index 0000000..ea6f402 --- /dev/null +++ b/internal/store/migrations/004_traffic_agg_index.sql @@ -0,0 +1,5 @@ +-- +goose Up +CREATE INDEX IF NOT EXISTS idx_proxy_request_logs_node ON proxy_request_logs(outbound_node); + +-- +goose Down +DROP INDEX IF EXISTS idx_proxy_request_logs_node; diff --git a/internal/store/migrations/005_login_attempts.sql b/internal/store/migrations/005_login_attempts.sql new file mode 100644 index 0000000..54ecf95 --- /dev/null +++ b/internal/store/migrations/005_login_attempts.sql @@ -0,0 +1,15 @@ +-- +goose Up +CREATE TABLE IF NOT EXISTS login_attempts ( + ip TEXT PRIMARY KEY, + fail_count INTEGER NOT NULL DEFAULT 0, + window_start TEXT NOT NULL, + locked_until TEXT +); + +INSERT OR IGNORE INTO settings (key, value) VALUES + ('login_max_attempts', '5'), + ('login_lock_minutes', '15'); + +-- +goose Down +DROP TABLE IF EXISTS login_attempts; +DELETE FROM settings WHERE key IN ('login_max_attempts', 'login_lock_minutes'); diff --git a/internal/store/migrations/006_proxy_auth.sql b/internal/store/migrations/006_proxy_auth.sql new file mode 100644 index 0000000..3be8d12 --- /dev/null +++ b/internal/store/migrations/006_proxy_auth.sql @@ -0,0 +1,7 @@ +-- +goose Up +INSERT OR IGNORE INTO settings (key, value) VALUES + ('proxy_auth_user', ''), + ('proxy_auth_pass', ''); + +-- +goose Down +DELETE FROM settings WHERE key IN ('proxy_auth_user', 'proxy_auth_pass'); diff --git a/internal/store/migrations/007_geo_urls.sql b/internal/store/migrations/007_geo_urls.sql new file mode 100644 index 0000000..43d85d8 --- /dev/null +++ b/internal/store/migrations/007_geo_urls.sql @@ -0,0 +1,8 @@ +-- +goose Up +INSERT OR IGNORE INTO settings (key, value) VALUES + ('geo_country_mmdb_url', ''), + ('geo_geoip_url', ''), + ('geo_geosite_url', ''); + +-- +goose Down +DELETE FROM settings WHERE key IN ('geo_country_mmdb_url', 'geo_geoip_url', 'geo_geosite_url'); diff --git a/internal/store/migrations/008_api_keys.sql b/internal/store/migrations/008_api_keys.sql new file mode 100644 index 0000000..c379415 --- /dev/null +++ b/internal/store/migrations/008_api_keys.sql @@ -0,0 +1,13 @@ +-- +goose Up +CREATE TABLE IF NOT EXISTS api_keys ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + name TEXT NOT NULL, + key_prefix TEXT NOT NULL, + key_hash TEXT NOT NULL UNIQUE, + enabled INTEGER NOT NULL DEFAULT 1, + last_used_at TEXT, + created_at TEXT NOT NULL DEFAULT (datetime('now')) +); + +-- +goose Down +DROP TABLE IF EXISTS api_keys; diff --git a/internal/store/migrations/009_ui_locale.sql b/internal/store/migrations/009_ui_locale.sql new file mode 100644 index 0000000..2eb6fe1 --- /dev/null +++ b/internal/store/migrations/009_ui_locale.sql @@ -0,0 +1,5 @@ +-- +goose Up +INSERT OR IGNORE INTO settings(key, value) VALUES('ui_locale', 'zh-CN'); + +-- +goose Down +DELETE FROM settings WHERE key = 'ui_locale'; diff --git a/internal/store/models.go b/internal/store/models.go new file mode 100644 index 0000000..754403c --- /dev/null +++ b/internal/store/models.go @@ -0,0 +1,108 @@ +package store + +import "time" + +type Subscription struct { + ID int64 `json:"id"` + Name string `json:"name"` + URL string `json:"url"` + Type string `json:"type"` + IntervalSec int `json:"interval_sec"` + Enabled bool `json:"enabled"` + LastFetchAt *time.Time `json:"last_fetch_at,omitempty"` + LastError string `json:"last_error,omitempty"` + NodeCount int `json:"node_count"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +type APIKey struct { + ID int64 `json:"id"` + Name string `json:"name"` + KeyPrefix string `json:"key_prefix"` + Enabled bool `json:"enabled"` + LastUsedAt *time.Time `json:"last_used_at,omitempty"` + CreatedAt time.Time `json:"created_at"` +} + +type ProxyNode struct { + ID int64 `json:"id"` + SubscriptionID *int64 `json:"subscription_id,omitempty"` + Name string `json:"name"` + RuntimeName string `json:"runtime_name"` + Type string `json:"type"` + RawConfig string `json:"raw_config"` + Source string `json:"source"` + Enabled bool `json:"enabled"` + Country string `json:"country"` + LatencyMs int `json:"latency_ms"` + Alive bool `json:"alive"` + CheckedAt *time.Time `json:"checked_at,omitempty"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +type Rule struct { + ID int64 `json:"id"` + Priority int `json:"priority"` + RuleType string `json:"rule_type"` + Payload string `json:"payload"` + Target string `json:"target"` + Source string `json:"source"` + SubscriptionID *int64 `json:"subscription_id,omitempty"` + Enabled bool `json:"enabled"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +type ProxyGroup struct { + ID int64 `json:"id"` + Name string `json:"name"` + RuntimeName string `json:"runtime_name"` + Type string `json:"type"` + Proxies string `json:"proxies"` + Source string `json:"source"` + SubscriptionID *int64 `json:"subscription_id,omitempty"` + Enabled bool `json:"enabled"` + CreatedAt time.Time `json:"created_at"` + UpdatedAt time.Time `json:"updated_at"` +} + +type AuditLog struct { + ID int64 `json:"id"` + Action string `json:"action"` + Resource string `json:"resource"` + Detail string `json:"detail"` + CreatedAt time.Time `json:"created_at"` +} + +type RequestLog struct { + ID int64 `json:"id"` + Level string `json:"level"` + Source string `json:"source"` + Message string `json:"message"` + CreatedAt time.Time `json:"created_at"` +} + +type MergedRule struct { + Priority int `json:"priority"` + Rule string `json:"rule"` + Source string `json:"source"` +} + +type ProxyRequestLog struct { + ID int64 `json:"id"` + Host string `json:"host"` + Network string `json:"network"` + RuleType string `json:"rule_type"` + RulePayload string `json:"rule_payload"` + RuleLine string `json:"rule_line"` + OutboundNode string `json:"outbound_node"` + OutboundChain string `json:"outbound_chain"` + Upload int64 `json:"upload"` + Download int64 `json:"download"` + Success bool `json:"success"` + StartedAt time.Time `json:"started_at"` + EndedAt time.Time `json:"ended_at"` + CreatedAt time.Time `json:"created_at"` +} diff --git a/internal/store/repo.go b/internal/store/repo.go new file mode 100644 index 0000000..bacfb7f --- /dev/null +++ b/internal/store/repo.go @@ -0,0 +1,508 @@ +package store + +import ( + "context" + "database/sql" + "fmt" +) + +func (s *Store) ListSubscriptions(ctx context.Context) ([]Subscription, error) { + rows, err := s.db.QueryContext(ctx, `SELECT id,name,url,type,interval_sec,enabled,last_fetch_at,last_error,node_count,created_at,updated_at FROM subscriptions ORDER BY id`) + if err != nil { + return nil, err + } + defer rows.Close() + var out []Subscription + for rows.Next() { + var sub Subscription + var enabled, nodeCount int + var lastFetch, lastErr sql.NullString + var created, updated string + if err := rows.Scan(&sub.ID, &sub.Name, &sub.URL, &sub.Type, &sub.IntervalSec, &enabled, &lastFetch, &lastErr, &nodeCount, &created, &updated); err != nil { + return nil, err + } + sub.Enabled = boolFromInt(enabled) + sub.NodeCount = nodeCount + sub.LastFetchAt = parseTimePtr(lastFetch) + sub.LastError = lastErr.String + sub.CreatedAt = parseTime(created) + sub.UpdatedAt = parseTime(updated) + out = append(out, sub) + } + return out, rows.Err() +} + +func (s *Store) GetSubscription(ctx context.Context, id int64) (*Subscription, error) { + var sub Subscription + var enabled, nodeCount int + var lastFetch, lastErr sql.NullString + var created, updated string + err := s.db.QueryRowContext(ctx, `SELECT id,name,url,type,interval_sec,enabled,last_fetch_at,last_error,node_count,created_at,updated_at FROM subscriptions WHERE id=?`, id). + Scan(&sub.ID, &sub.Name, &sub.URL, &sub.Type, &sub.IntervalSec, &enabled, &lastFetch, &lastErr, &nodeCount, &created, &updated) + if err != nil { + return nil, err + } + sub.Enabled = boolFromInt(enabled) + sub.NodeCount = nodeCount + sub.LastFetchAt = parseTimePtr(lastFetch) + sub.LastError = lastErr.String + sub.CreatedAt = parseTime(created) + sub.UpdatedAt = parseTime(updated) + return &sub, nil +} + +func (s *Store) CreateSubscription(ctx context.Context, sub *Subscription) error { + res, err := s.db.ExecContext(ctx, `INSERT INTO subscriptions(name,url,type,interval_sec,enabled) VALUES(?,?,?,?,?)`, + sub.Name, sub.URL, sub.Type, sub.IntervalSec, intFromBool(sub.Enabled)) + if err != nil { + return err + } + id, _ := res.LastInsertId() + sub.ID = id + return nil +} + +func (s *Store) UpdateSubscription(ctx context.Context, sub *Subscription) error { + _, err := s.db.ExecContext(ctx, `UPDATE subscriptions SET name=?,url=?,type=?,interval_sec=?,enabled=?,updated_at=datetime('now') WHERE id=?`, + sub.Name, sub.URL, sub.Type, sub.IntervalSec, intFromBool(sub.Enabled), sub.ID) + return err +} + +func (s *Store) DeleteSubscription(ctx context.Context, id int64) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM subscriptions WHERE id=?`, id) + return err +} + +func (s *Store) UpdateSubscriptionFetch(ctx context.Context, id int64, nodeCount int, lastError string) error { + _, err := s.db.ExecContext(ctx, `UPDATE subscriptions SET last_fetch_at=datetime('now'), last_error=?, node_count=?, updated_at=datetime('now') WHERE id=?`, + lastError, nodeCount, id) + return err +} + +func (s *Store) proxyNodesWhere(source string, subscriptionID *int64, country string) (string, []any) { + query := ` FROM proxy_nodes WHERE 1=1` + args := []any{} + if source != "" { + query += ` AND source = ?` + args = append(args, source) + } + if subscriptionID != nil { + query += ` AND subscription_id = ?` + args = append(args, *subscriptionID) + } + if country != "" { + query += ` AND country = ?` + args = append(args, country) + } + return query, args +} + +func (s *Store) CountProxyNodes(ctx context.Context, source string, subscriptionID *int64, country string) (int, error) { + where, args := s.proxyNodesWhere(source, subscriptionID, country) + var n int + err := s.db.QueryRowContext(ctx, `SELECT COUNT(*)`+where, args...).Scan(&n) + return n, err +} + +func (s *Store) ListProxyNodes(ctx context.Context, source string, subscriptionID *int64) ([]ProxyNode, error) { + return s.ListProxyNodesPage(ctx, source, subscriptionID, "", 0, 0) +} + +func (s *Store) ListProxyNodesPage(ctx context.Context, source string, subscriptionID *int64, country string, limit, offset int) ([]ProxyNode, error) { + where, args := s.proxyNodesWhere(source, subscriptionID, country) + query := `SELECT id,subscription_id,name,runtime_name,type,raw_config,source,enabled,country,latency_ms,alive,checked_at,created_at,updated_at` + where + ` ORDER BY id` + if limit > 0 { + query += ` LIMIT ? OFFSET ?` + args = append(args, limit, offset) + } + rows, err := s.db.QueryContext(ctx, query, args...) + if err != nil { + return nil, err + } + defer rows.Close() + return scanProxyNodes(rows) +} + +func (s *Store) GetProxyNode(ctx context.Context, id int64) (*ProxyNode, error) { + row := s.db.QueryRowContext(ctx, `SELECT id,subscription_id,name,runtime_name,type,raw_config,source,enabled,country,latency_ms,alive,checked_at,created_at,updated_at FROM proxy_nodes WHERE id=?`, id) + return scanProxyNode(row) +} + +func (s *Store) CreateProxyNode(ctx context.Context, n *ProxyNode) error { + res, err := s.db.ExecContext(ctx, `INSERT INTO proxy_nodes(subscription_id,name,runtime_name,type,raw_config,source,enabled,country) VALUES(?,?,?,?,?,?,?,?)`, + n.SubscriptionID, n.Name, n.RuntimeName, n.Type, n.RawConfig, n.Source, intFromBool(n.Enabled), n.Country) + if err != nil { + return err + } + id, _ := res.LastInsertId() + n.ID = id + return nil +} + +func (s *Store) UpdateProxyNode(ctx context.Context, n *ProxyNode) error { + _, err := s.db.ExecContext(ctx, `UPDATE proxy_nodes SET name=?,runtime_name=?,type=?,raw_config=?,enabled=?,country=?,updated_at=datetime('now') WHERE id=?`, + n.Name, n.RuntimeName, n.Type, n.RawConfig, intFromBool(n.Enabled), n.Country, n.ID) + return err +} + +func (s *Store) DeleteProxyNode(ctx context.Context, id int64) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM proxy_nodes WHERE id=?`, id) + return err +} + +func (s *Store) ReplaceManualProxies(ctx context.Context, nodes []ProxyNode) error { + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return err + } + defer tx.Rollback() + if _, err := tx.ExecContext(ctx, `DELETE FROM proxy_nodes WHERE source='manual'`); err != nil { + return err + } + for _, n := range nodes { + n.Source = "manual" + if _, err := tx.ExecContext(ctx, + `INSERT INTO proxy_nodes(subscription_id,name,runtime_name,type,raw_config,source,enabled,country) VALUES(?,?,?,?,?,?,?,?)`, + n.SubscriptionID, n.Name, n.RuntimeName, n.Type, n.RawConfig, "manual", intFromBool(n.Enabled), n.Country); err != nil { + return err + } + } + return tx.Commit() +} + +func (s *Store) AppendManualProxies(ctx context.Context, nodes []ProxyNode) error { + for i := range nodes { + nodes[i].Source = "manual" + if err := s.CreateProxyNode(ctx, &nodes[i]); err != nil { + return err + } + } + return nil +} + +func (s *Store) UpdateProxyNodeHealth(ctx context.Context, id int64, latency int, alive bool) error { + _, err := s.db.ExecContext(ctx, `UPDATE proxy_nodes SET latency_ms=?, alive=?, checked_at=datetime('now'), updated_at=datetime('now') WHERE id=?`, + latency, intFromBool(alive), id) + return err +} + +func (s *Store) ReplaceSubscriptionData(ctx context.Context, subID int64, nodes []ProxyNode, groups []ProxyGroup, rules []Rule) error { + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return err + } + defer tx.Rollback() + + if _, err := tx.ExecContext(ctx, `DELETE FROM proxy_nodes WHERE subscription_id=?`, subID); err != nil { + return err + } + if _, err := tx.ExecContext(ctx, `DELETE FROM proxy_groups WHERE subscription_id=?`, subID); err != nil { + return err + } + if _, err := tx.ExecContext(ctx, `DELETE FROM rules WHERE subscription_id=?`, subID); err != nil { + return err + } + + for _, n := range nodes { + n.SubscriptionID = &subID + if _, err := tx.ExecContext(ctx, `INSERT INTO proxy_nodes(subscription_id,name,runtime_name,type,raw_config,source,enabled,country) VALUES(?,?,?,?,?,?,?,?)`, + subID, n.Name, n.RuntimeName, n.Type, n.RawConfig, "subscription", intFromBool(n.Enabled), n.Country); err != nil { + return err + } + } + for _, g := range groups { + if _, err := tx.ExecContext(ctx, `INSERT INTO proxy_groups(name,runtime_name,type,proxies,source,subscription_id,enabled) VALUES(?,?,?,?,?,?,?)`, + g.Name, g.RuntimeName, g.Type, g.Proxies, "subscription", subID, intFromBool(g.Enabled)); err != nil { + return err + } + } + basePriority := 10000 + for i, r := range rules { + r.Priority = basePriority + i + r.SubscriptionID = &subID + if _, err := tx.ExecContext(ctx, `INSERT INTO rules(priority,rule_type,payload,target,source,subscription_id,enabled) VALUES(?,?,?,?,?,?,?)`, + r.Priority, r.RuleType, r.Payload, r.Target, "subscription", subID, intFromBool(r.Enabled)); err != nil { + return err + } + } + return tx.Commit() +} + +func scanProxyNodes(rows *sql.Rows) ([]ProxyNode, error) { + var out []ProxyNode + for rows.Next() { + n, err := scanProxyNodeFromRows(rows) + if err != nil { + return nil, err + } + out = append(out, *n) + } + return out, rows.Err() +} + +func scanProxyNode(row *sql.Row) (*ProxyNode, error) { + // reuse via a mini adapter - sql.Row doesn't share with Rows + var n ProxyNode + var subID sql.NullInt64 + var enabled, alive int + var checked sql.NullString + var created, updated string + err := row.Scan(&n.ID, &subID, &n.Name, &n.RuntimeName, &n.Type, &n.RawConfig, &n.Source, &enabled, &n.Country, &n.LatencyMs, &alive, &checked, &created, &updated) + if err != nil { + return nil, err + } + if subID.Valid { + n.SubscriptionID = &subID.Int64 + } + n.Enabled = boolFromInt(enabled) + n.Alive = boolFromInt(alive) + n.CheckedAt = parseTimePtr(checked) + n.CreatedAt = parseTime(created) + n.UpdatedAt = parseTime(updated) + return &n, nil +} + +func scanProxyNodeFromRows(rows *sql.Rows) (*ProxyNode, error) { + var n ProxyNode + var subID sql.NullInt64 + var enabled, alive int + var checked sql.NullString + var created, updated string + if err := rows.Scan(&n.ID, &subID, &n.Name, &n.RuntimeName, &n.Type, &n.RawConfig, &n.Source, &enabled, &n.Country, &n.LatencyMs, &alive, &checked, &created, &updated); err != nil { + return nil, err + } + if subID.Valid { + n.SubscriptionID = &subID.Int64 + } + n.Enabled = boolFromInt(enabled) + n.Alive = boolFromInt(alive) + n.CheckedAt = parseTimePtr(checked) + n.CreatedAt = parseTime(created) + n.UpdatedAt = parseTime(updated) + return &n, nil +} + +func (s *Store) ListRules(ctx context.Context, source string) ([]Rule, error) { + query := `SELECT id,priority,rule_type,payload,target,source,subscription_id,enabled,created_at,updated_at FROM rules WHERE 1=1` + args := []any{} + if source != "" { + query += ` AND source = ?` + args = append(args, source) + } + query += ` ORDER BY priority ASC, id ASC` + rows, err := s.db.QueryContext(ctx, query, args...) + if err != nil { + return nil, err + } + defer rows.Close() + var out []Rule + for rows.Next() { + var r Rule + var subID sql.NullInt64 + var enabled int + var created, updated string + if err := rows.Scan(&r.ID, &r.Priority, &r.RuleType, &r.Payload, &r.Target, &r.Source, &subID, &enabled, &created, &updated); err != nil { + return nil, err + } + if subID.Valid { + r.SubscriptionID = &subID.Int64 + } + r.Enabled = boolFromInt(enabled) + r.CreatedAt = parseTime(created) + r.UpdatedAt = parseTime(updated) + out = append(out, r) + } + return out, rows.Err() +} + +func (s *Store) GetRule(ctx context.Context, id int64) (*Rule, error) { + var r Rule + var subID sql.NullInt64 + var enabled int + var created, updated string + err := s.db.QueryRowContext(ctx, `SELECT id,priority,rule_type,payload,target,source,subscription_id,enabled,created_at,updated_at FROM rules WHERE id=?`, id). + Scan(&r.ID, &r.Priority, &r.RuleType, &r.Payload, &r.Target, &r.Source, &subID, &enabled, &created, &updated) + if err != nil { + return nil, err + } + if subID.Valid { + r.SubscriptionID = &subID.Int64 + } + r.Enabled = boolFromInt(enabled) + r.CreatedAt = parseTime(created) + r.UpdatedAt = parseTime(updated) + return &r, nil +} + +func (s *Store) CreateRule(ctx context.Context, r *Rule) error { + res, err := s.db.ExecContext(ctx, `INSERT INTO rules(priority,rule_type,payload,target,source,subscription_id,enabled) VALUES(?,?,?,?,?,?,?)`, + r.Priority, r.RuleType, r.Payload, r.Target, r.Source, r.SubscriptionID, intFromBool(r.Enabled)) + if err != nil { + return err + } + id, _ := res.LastInsertId() + r.ID = id + return nil +} + +func (s *Store) UpdateRule(ctx context.Context, r *Rule) error { + _, err := s.db.ExecContext(ctx, `UPDATE rules SET priority=?,rule_type=?,payload=?,target=?,enabled=?,updated_at=datetime('now') WHERE id=?`, + r.Priority, r.RuleType, r.Payload, r.Target, intFromBool(r.Enabled), r.ID) + return err +} + +func (s *Store) DeleteRule(ctx context.Context, id int64) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM rules WHERE id=? AND source='manual'`, id) + return err +} + +func (s *Store) ReplaceManualRules(ctx context.Context, rules []Rule) error { + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return err + } + defer tx.Rollback() + if _, err := tx.ExecContext(ctx, `DELETE FROM rules WHERE source='manual'`); err != nil { + return err + } + for _, r := range rules { + r.Source = "manual" + if _, err := tx.ExecContext(ctx, + `INSERT INTO rules(priority,rule_type,payload,target,source,subscription_id,enabled) VALUES(?,?,?,?,?,?,?)`, + r.Priority, r.RuleType, r.Payload, r.Target, "manual", nil, intFromBool(r.Enabled)); err != nil { + return err + } + } + return tx.Commit() +} + +func (s *Store) AppendManualRules(ctx context.Context, rules []Rule) error { + for i := range rules { + rules[i].Source = "manual" + if err := s.CreateRule(ctx, &rules[i]); err != nil { + return err + } + } + return nil +} + +func (s *Store) ListProxyGroups(ctx context.Context) ([]ProxyGroup, error) { + rows, err := s.db.QueryContext(ctx, `SELECT id,name,runtime_name,type,proxies,source,subscription_id,enabled,created_at,updated_at FROM proxy_groups ORDER BY id`) + if err != nil { + return nil, err + } + defer rows.Close() + var out []ProxyGroup + for rows.Next() { + var g ProxyGroup + var subID sql.NullInt64 + var enabled int + var created, updated string + if err := rows.Scan(&g.ID, &g.Name, &g.RuntimeName, &g.Type, &g.Proxies, &g.Source, &subID, &enabled, &created, &updated); err != nil { + return nil, err + } + if subID.Valid { + g.SubscriptionID = &subID.Int64 + } + g.Enabled = boolFromInt(enabled) + g.CreatedAt = parseTime(created) + g.UpdatedAt = parseTime(updated) + out = append(out, g) + } + return out, rows.Err() +} + +func (s *Store) CountEnabledProxies(ctx context.Context) (total, alive int, err error) { + err = s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM proxy_nodes WHERE enabled=1`).Scan(&total) + if err != nil { + return + } + err = s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM proxy_nodes WHERE enabled=1 AND alive=1`).Scan(&alive) + return +} + +func (s *Store) NextManualRulePriority(ctx context.Context) (int, error) { + var max sql.NullInt64 + err := s.db.QueryRowContext(ctx, `SELECT MAX(priority) FROM rules WHERE source='manual'`).Scan(&max) + if err != nil { + return 100, err + } + if !max.Valid || max.Int64 >= 9999 { + return 100, nil + } + return int(max.Int64) + 10, nil +} + +func (s *Store) ListMergedRules(ctx context.Context, defaultPolicy string) ([]MergedRule, error) { + rules, err := s.ListRules(ctx, "") + if err != nil { + return nil, err + } + return buildMergedRules(rules, defaultPolicy), nil +} + +func (s *Store) CountMergedRules(ctx context.Context) (int, error) { + var n int + err := s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM rules WHERE enabled=1`).Scan(&n) + return n, err +} + +func (s *Store) ListMergedRulesPage(ctx context.Context, limit, offset int) ([]MergedRule, error) { + if limit <= 0 { + limit = 50 + } + if limit > 500 { + limit = 500 + } + if offset < 0 { + offset = 0 + } + rows, err := s.db.QueryContext(ctx, ` + SELECT priority,rule_type,payload,target,source FROM rules + WHERE enabled=1 + ORDER BY priority ASC, id ASC + LIMIT ? OFFSET ?`, limit, offset) + if err != nil { + return nil, err + } + defer rows.Close() + var out []MergedRule + for rows.Next() { + var r Rule + if err := rows.Scan(&r.Priority, &r.RuleType, &r.Payload, &r.Target, &r.Source); err != nil { + return nil, err + } + out = append(out, MergedRule{ + Priority: r.Priority, + Rule: formatRuleLine(r), + Source: r.Source, + }) + } + return out, rows.Err() +} + +func buildMergedRules(rules []Rule, defaultPolicy string) []MergedRule { + var out []MergedRule + for _, r := range rules { + if !r.Enabled { + continue + } + out = append(out, MergedRule{ + Priority: r.Priority, + Rule: formatRuleLine(r), + Source: r.Source, + }) + } + if defaultPolicy == "" { + defaultPolicy = "DIRECT" + } + out = append(out, MergedRule{Priority: 999999, Rule: "MATCH," + defaultPolicy, Source: "system"}) + return out +} + +func formatRuleLine(r Rule) string { + if r.Payload == "" { + return fmt.Sprintf("%s,%s", r.RuleType, r.Target) + } + return fmt.Sprintf("%s,%s,%s", r.RuleType, r.Payload, r.Target) +} diff --git a/internal/store/store.go b/internal/store/store.go new file mode 100644 index 0000000..9a2bb0f --- /dev/null +++ b/internal/store/store.go @@ -0,0 +1,238 @@ +package store + +import ( + "context" + "database/sql" + "embed" + "fmt" + "os" + "path/filepath" + "time" + + "github.com/pressly/goose/v3" + _ "modernc.org/sqlite" +) + +//go:embed migrations/*.sql +var migrationsFS embed.FS + +type Store struct { + db *sql.DB +} + +func Open(dataDir string) (*Store, error) { + if err := os.MkdirAll(dataDir, 0o755); err != nil { + return nil, err + } + dbPath := filepath.Join(dataDir, "prism.db") + db, err := sql.Open("sqlite", dbPath+"?_pragma=foreign_keys(1)&_pragma=journal_mode(WAL)") + if err != nil { + return nil, err + } + db.SetMaxOpenConns(1) + s := &Store{db: db} + if err := s.migrate(); err != nil { + db.Close() + return nil, err + } + return s, nil +} + +func (s *Store) DB() *sql.DB { return s.db } + +func (s *Store) Close() error { return s.db.Close() } + +func (s *Store) migrate() error { + goose.SetBaseFS(migrationsFS) + if err := goose.SetDialect("sqlite3"); err != nil { + return err + } + return goose.Up(s.db, "migrations") +} + +func (s *Store) GetSetting(ctx context.Context, key string) (string, error) { + var value string + err := s.db.QueryRowContext(ctx, `SELECT value FROM settings WHERE key = ?`, key).Scan(&value) + return value, err +} + +func (s *Store) GetSettings(ctx context.Context) (map[string]string, error) { + rows, err := s.db.QueryContext(ctx, `SELECT key, value FROM settings`) + if err != nil { + return nil, err + } + defer rows.Close() + out := make(map[string]string) + for rows.Next() { + var k, v string + if err := rows.Scan(&k, &v); err != nil { + return nil, err + } + out[k] = v + } + return out, rows.Err() +} + +func (s *Store) SetSettings(ctx context.Context, settings map[string]string) error { + tx, err := s.db.BeginTx(ctx, nil) + if err != nil { + return err + } + defer tx.Rollback() + for k, v := range settings { + if _, err := tx.ExecContext(ctx, `INSERT INTO settings(key,value) VALUES(?,?) ON CONFLICT(key) DO UPDATE SET value=excluded.value`, k, v); err != nil { + return err + } + } + return tx.Commit() +} + +func (s *Store) AddAuditLog(ctx context.Context, action, resource, detail string) error { + _, err := s.db.ExecContext(ctx, `INSERT INTO audit_logs(action,resource,detail) VALUES(?,?,?)`, action, resource, detail) + return err +} + +func (s *Store) CountAuditLogs(ctx context.Context) (int, error) { + var n int + err := s.db.QueryRowContext(ctx, `SELECT COUNT(*) FROM audit_logs`).Scan(&n) + return n, err +} + +func (s *Store) ListAuditLogs(ctx context.Context, limit, offset int) ([]AuditLog, error) { + rows, err := s.db.QueryContext(ctx, `SELECT id,action,resource,detail,created_at FROM audit_logs ORDER BY id DESC LIMIT ? OFFSET ?`, limit, offset) + if err != nil { + return nil, err + } + defer rows.Close() + var out []AuditLog + for rows.Next() { + var l AuditLog + var created string + if err := rows.Scan(&l.ID, &l.Action, &l.Resource, &l.Detail, &created); err != nil { + return nil, err + } + l.CreatedAt, _ = time.Parse("2006-01-02 15:04:05", created) + out = append(out, l) + } + return out, rows.Err() +} + +func (s *Store) AddRequestLog(ctx context.Context, level, source, message string) error { + _, err := s.db.ExecContext(ctx, `INSERT INTO request_logs(level,source,message) VALUES(?,?,?)`, level, source, message) + return err +} + +func (s *Store) ListRequestLogs(ctx context.Context, level, keyword string, limit, offset int) ([]RequestLog, int, error) { + query := `SELECT id,level,source,message,created_at FROM request_logs WHERE 1=1` + countQuery := `SELECT COUNT(*) FROM request_logs WHERE 1=1` + args := []any{} + if level != "" { + query += ` AND level = ?` + countQuery += ` AND level = ?` + args = append(args, level) + } + if keyword != "" { + query += ` AND message LIKE ?` + countQuery += ` AND message LIKE ?` + args = append(args, "%"+keyword+"%") + } + var total int + if err := s.db.QueryRowContext(ctx, countQuery, args...).Scan(&total); err != nil { + return nil, 0, err + } + query += ` ORDER BY id DESC LIMIT ? OFFSET ?` + args = append(args, limit, offset) + rows, err := s.db.QueryContext(ctx, query, args...) + if err != nil { + return nil, 0, err + } + defer rows.Close() + var out []RequestLog + for rows.Next() { + var l RequestLog + var created string + if err := rows.Scan(&l.ID, &l.Level, &l.Source, &l.Message, &created); err != nil { + return nil, 0, err + } + l.CreatedAt, _ = time.Parse("2006-01-02 15:04:05", created) + out = append(out, l) + } + return out, total, rows.Err() +} + +func (s *Store) PruneRequestLogs(ctx context.Context, keep int) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM request_logs WHERE id NOT IN (SELECT id FROM request_logs ORDER BY id DESC LIMIT ?)`, keep) + return err +} + +func (s *Store) AddTrafficSnapshot(ctx context.Context, up, down, conns int64) error { + _, err := s.db.ExecContext(ctx, `INSERT INTO traffic_snapshots(upload_rate,download_rate,connections) VALUES(?,?,?)`, up, down, conns) + return err +} + +func (s *Store) ListTrafficSnapshots(ctx context.Context, limit int) ([]map[string]any, error) { + rows, err := s.db.QueryContext(ctx, `SELECT upload_rate,download_rate,connections,created_at FROM traffic_snapshots ORDER BY id DESC LIMIT ?`, limit) + if err != nil { + return nil, err + } + defer rows.Close() + var out []map[string]any + for rows.Next() { + var up, down, conns int64 + var created string + if err := rows.Scan(&up, &down, &conns, &created); err != nil { + return nil, err + } + out = append(out, map[string]any{ + "upload_rate": up, + "download_rate": down, + "connections": conns, + "created_at": created, + }) + } + return out, rows.Err() +} + +func parseTimePtr(s sql.NullString) *time.Time { + if !s.Valid || s.String == "" { + return nil + } + t, err := time.Parse("2006-01-02 15:04:05", s.String) + if err != nil { + return nil + } + return &t +} + +func parseTime(s string) time.Time { + t, _ := time.Parse("2006-01-02 15:04:05", s) + return t +} + +func boolFromInt(v int) bool { return v != 0 } +func intFromBool(v bool) int { + if v { + return 1 + } + return 0 +} + +func RuntimeName(prefix string, id int64, name string) string { + return fmt.Sprintf("%s%d_%s", prefix, id, sanitizeName(name)) +} + +func sanitizeName(name string) string { + out := make([]rune, 0, len(name)) + for _, r := range name { + switch { + case r >= 'a' && r <= 'z', r >= 'A' && r <= 'Z', r >= '0' && r <= '9', r == '_', r == '-': + out = append(out, r) + default: + out = append(out, '_') + } + } + if len(out) == 0 { + return "node" + } + return string(out) +} diff --git a/internal/store/traffic_repo.go b/internal/store/traffic_repo.go new file mode 100644 index 0000000..1eb471f --- /dev/null +++ b/internal/store/traffic_repo.go @@ -0,0 +1,197 @@ +package store + +import ( + "context" + "database/sql" + "fmt" +) + +func (s *Store) InsertProxyRequestLog(ctx context.Context, l *ProxyRequestLog) error { + res, err := s.db.ExecContext(ctx, ` + INSERT INTO proxy_request_logs(host,network,rule_type,rule_payload,rule_line,outbound_node,outbound_chain,upload,download,success,started_at,ended_at) + VALUES(?,?,?,?,?,?,?,?,?,?,?,?)`, + l.Host, l.Network, l.RuleType, l.RulePayload, l.RuleLine, l.OutboundNode, l.OutboundChain, + l.Upload, l.Download, intFromBool(l.Success), l.StartedAt.Format("2006-01-02 15:04:05"), l.EndedAt.Format("2006-01-02 15:04:05")) + if err != nil { + return err + } + id, _ := res.LastInsertId() + l.ID = id + return nil +} + +func (s *Store) ListProxyRequestLogs(ctx context.Context, keyword string, limit, offset int) ([]ProxyRequestLog, int, error) { + query := `SELECT id,host,network,rule_type,rule_payload,rule_line,outbound_node,outbound_chain,upload,download,success,started_at,ended_at,created_at FROM proxy_request_logs WHERE 1=1` + countQuery := `SELECT COUNT(*) FROM proxy_request_logs WHERE 1=1` + args := []any{} + if keyword != "" { + query += ` AND (host LIKE ? OR rule_line LIKE ? OR outbound_node LIKE ? OR outbound_chain LIKE ?)` + countQuery += ` AND (host LIKE ? OR rule_line LIKE ? OR outbound_node LIKE ? OR outbound_chain LIKE ?)` + kw := "%" + keyword + "%" + args = append(args, kw, kw, kw, kw) + } + var total int + if err := s.db.QueryRowContext(ctx, countQuery, args...).Scan(&total); err != nil { + return nil, 0, err + } + query += ` ORDER BY id DESC LIMIT ? OFFSET ?` + args = append(args, limit, offset) + rows, err := s.db.QueryContext(ctx, query, args...) + if err != nil { + return nil, 0, err + } + defer rows.Close() + var out []ProxyRequestLog + for rows.Next() { + var l ProxyRequestLog + var success int + var started, ended, created string + if err := rows.Scan(&l.ID, &l.Host, &l.Network, &l.RuleType, &l.RulePayload, &l.RuleLine, &l.OutboundNode, &l.OutboundChain, + &l.Upload, &l.Download, &success, &started, &ended, &created); err != nil { + return nil, 0, err + } + l.Success = boolFromInt(success) + l.StartedAt = parseTime(started) + l.EndedAt = parseTime(ended) + l.CreatedAt = parseTime(created) + out = append(out, l) + } + return out, total, rows.Err() +} + +func (s *Store) PruneProxyRequestLogs(ctx context.Context, keep int) error { + _, err := s.db.ExecContext(ctx, `DELETE FROM proxy_request_logs WHERE id NOT IN (SELECT id FROM proxy_request_logs ORDER BY id DESC LIMIT ?)`, keep) + return err +} + +type TrafficAgg struct { + Key string `json:"key"` + Upload int64 `json:"upload"` + Download int64 `json:"download"` + Connections int `json:"connections"` +} + +type TrafficHostNodeAgg struct { + Host string `json:"host"` + NodeKey string `json:"node_key"` + Upload int64 `json:"upload"` + Download int64 `json:"download"` + Connections int `json:"connections"` +} + +func (s *Store) AggregateTrafficByHost(ctx context.Context, hours, limit int) ([]TrafficAgg, error) { + if hours <= 0 { + hours = 24 + } + if limit <= 0 { + limit = 30 + } + rows, err := s.db.QueryContext(ctx, ` + SELECT host, COALESCE(SUM(upload),0), COALESCE(SUM(download),0), COUNT(*) + FROM proxy_request_logs + WHERE host != '' AND created_at >= datetime('now', ?) + GROUP BY host + ORDER BY (SUM(upload)+SUM(download)) DESC + LIMIT ?`, fmt.Sprintf("-%d hours", hours), limit) + if err != nil { + return nil, err + } + defer rows.Close() + return scanTrafficAgg(rows) +} + +func (s *Store) CountAggregateTrafficByNode(ctx context.Context, hours int) (int, error) { + if hours <= 0 { + hours = 24 + } + var n int + err := s.db.QueryRowContext(ctx, ` + SELECT COUNT(*) FROM ( + SELECT 1 FROM proxy_request_logs + WHERE outbound_node != '' AND created_at >= datetime('now', ?) + GROUP BY outbound_node + )`, fmt.Sprintf("-%d hours", hours)).Scan(&n) + return n, err +} + +func (s *Store) AggregateTrafficByNode(ctx context.Context, hours, limit, offset int) ([]TrafficAgg, error) { + if hours <= 0 { + hours = 24 + } + if limit <= 0 { + limit = 50 + } + if offset < 0 { + offset = 0 + } + rows, err := s.db.QueryContext(ctx, ` + SELECT outbound_node, COALESCE(SUM(upload),0), COALESCE(SUM(download),0), COUNT(*) + FROM proxy_request_logs + WHERE outbound_node != '' AND created_at >= datetime('now', ?) + GROUP BY outbound_node + ORDER BY (SUM(upload)+SUM(download)) DESC + LIMIT ? OFFSET ?`, fmt.Sprintf("-%d hours", hours), limit, offset) + if err != nil { + return nil, err + } + defer rows.Close() + return scanTrafficAgg(rows) +} + +func (s *Store) CountAggregateTrafficByHostNode(ctx context.Context, hours int) (int, error) { + if hours <= 0 { + hours = 24 + } + var n int + err := s.db.QueryRowContext(ctx, ` + SELECT COUNT(*) FROM ( + SELECT 1 FROM proxy_request_logs + WHERE host != '' AND outbound_node != '' AND created_at >= datetime('now', ?) + GROUP BY host, outbound_node + )`, fmt.Sprintf("-%d hours", hours)).Scan(&n) + return n, err +} + +func (s *Store) AggregateTrafficByHostNode(ctx context.Context, hours, limit, offset int) ([]TrafficHostNodeAgg, error) { + if hours <= 0 { + hours = 24 + } + if limit <= 0 { + limit = 50 + } + if offset < 0 { + offset = 0 + } + rows, err := s.db.QueryContext(ctx, ` + SELECT host, outbound_node, COALESCE(SUM(upload),0), COALESCE(SUM(download),0), COUNT(*) + FROM proxy_request_logs + WHERE host != '' AND outbound_node != '' AND created_at >= datetime('now', ?) + GROUP BY host, outbound_node + ORDER BY (SUM(upload)+SUM(download)) DESC + LIMIT ? OFFSET ?`, fmt.Sprintf("-%d hours", hours), limit, offset) + if err != nil { + return nil, err + } + defer rows.Close() + var out []TrafficHostNodeAgg + for rows.Next() { + var item TrafficHostNodeAgg + if err := rows.Scan(&item.Host, &item.NodeKey, &item.Upload, &item.Download, &item.Connections); err != nil { + return nil, err + } + out = append(out, item) + } + return out, rows.Err() +} + +func scanTrafficAgg(rows *sql.Rows) ([]TrafficAgg, error) { + var out []TrafficAgg + for rows.Next() { + var item TrafficAgg + if err := rows.Scan(&item.Key, &item.Upload, &item.Download, &item.Connections); err != nil { + return nil, err + } + out = append(out, item) + } + return out, rows.Err() +} diff --git a/internal/subscription/links.go b/internal/subscription/links.go new file mode 100644 index 0000000..9aa1bde --- /dev/null +++ b/internal/subscription/links.go @@ -0,0 +1,32 @@ +package subscription + +import ( + "fmt" + "strings" + + "github.com/prism/proxy/internal/store" +) + +// ParseLinkLines parses share links (ss/socks5/http/trojan) into manual proxy nodes. +func ParseLinkLines(text string) ([]store.ProxyNode, []string) { + lines := strings.Split(text, "\n") + var out []store.ProxyNode + var errs []string + idx := 0 + for i, line := range lines { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "#") { + continue + } + n, err := parseLink(line, 0, idx) + if err != nil { + errs = append(errs, fmt.Sprintf("第 %d 行: %v", i+1, err)) + continue + } + n.Source = "manual" + n.RuntimeName = store.RuntimeName("manual", 0, n.Name) + out = append(out, n) + idx++ + } + return out, errs +} diff --git a/internal/subscription/links_test.go b/internal/subscription/links_test.go new file mode 100644 index 0000000..dfd9a97 --- /dev/null +++ b/internal/subscription/links_test.go @@ -0,0 +1,13 @@ +package subscription + +import "testing" + +func TestParseLinkLines(t *testing.T) { + nodes, errs := ParseLinkLines("socks5://1.2.3.4:1080#test-node\n") + if len(errs) != 0 { + t.Fatal(errs) + } + if len(nodes) != 1 || nodes[0].Name != "test-node" || nodes[0].Source != "manual" { + t.Fatalf("unexpected %+v", nodes[0]) + } +} diff --git a/internal/subscription/service.go b/internal/subscription/service.go new file mode 100644 index 0000000..4cbb7a6 --- /dev/null +++ b/internal/subscription/service.go @@ -0,0 +1,464 @@ +package subscription + +import ( + "context" + "encoding/base64" + "encoding/json" + "fmt" + "io" + "net/http" + "net/url" + "strings" + "time" + + "gopkg.in/yaml.v3" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/store" +) + +const subscriptionUserAgent = "clash.meta/1.19.0" + +type Service struct { + store *store.Store + client *http.Client +} + +func NewService(s *store.Store) *Service { + return &Service{ + store: s, + client: &http.Client{ + Timeout: 30 * time.Second, + CheckRedirect: func(req *http.Request, via []*http.Request) error { + if len(via) >= 10 { + return fmt.Errorf("too many redirects") + } + req.Header.Set("User-Agent", subscriptionUserAgent) + return nil + }, + }, + } +} + +type ParsedData struct { + Nodes []store.ProxyNode + Groups []store.ProxyGroup + Rules []store.Rule +} + +func (s *Service) FetchAndStore(ctx context.Context, subID int64) error { + sub, err := s.store.GetSubscription(ctx, subID) + if err != nil { + return err + } + + body, err := s.fetchURL(sub.URL) + if err != nil { + _ = s.store.UpdateSubscriptionFetch(ctx, subID, 0, err.Error()) + return err + } + + parsed, err := s.parseSubscription(body, subID, sub.Type) + if err != nil { + _ = s.store.UpdateSubscriptionFetch(ctx, subID, 0, err.Error()) + return err + } + + if err := s.store.ReplaceSubscriptionData(ctx, subID, parsed.Nodes, parsed.Groups, parsed.Rules); err != nil { + _ = s.store.UpdateSubscriptionFetch(ctx, subID, 0, err.Error()) + return err + } + return s.store.UpdateSubscriptionFetch(ctx, subID, len(parsed.Nodes), "") +} + +func (s *Service) ParseSubscription(body []byte, subID int64, subType string) (ParsedData, error) { + return s.parseSubscription(body, subID, subType) +} + +func (s *Service) parseSubscription(body []byte, subID int64, subType string) (ParsedData, error) { + content := decodeMaybeBase64(body) + text := strings.TrimSpace(string(content)) + + format := subType + if format == "" || format == "auto" { + format = detectFormat(text) + } + + switch format { + case "links": + return s.parseLinks(body, subID) + default: + parsed, err := s.parseClash(body, subID) + if err != nil && looksLikeLinks(text) { + return s.parseLinks(body, subID) + } + return parsed, err + } +} + +func detectFormat(text string) string { + if strings.HasPrefix(text, "port:") || strings.HasPrefix(text, "mixed-port:") || + strings.HasPrefix(text, "proxies:") || strings.Contains(text, "\nproxies:") { + return "clash" + } + if looksLikeLinks(text) { + return "links" + } + return "clash" +} + +func looksLikeLinks(text string) bool { + lower := strings.ToLower(text) + for _, prefix := range []string{"ss://", "vmess://", "trojan://", "socks5://", "http://", "https://"} { + if strings.Contains(lower, prefix) { + return true + } + } + return false +} + +func (s *Service) fetchURL(rawURL string) ([]byte, error) { + req, err := http.NewRequest(http.MethodGet, rawURL, nil) + if err != nil { + return nil, err + } + req.Header.Set("User-Agent", subscriptionUserAgent) + req.Header.Set("Accept", "*/*") + resp, err := s.client.Do(req) + if err != nil { + return nil, err + } + defer resp.Body.Close() + if resp.StatusCode >= 400 { + return nil, fmt.Errorf("fetch failed: HTTP %d", resp.StatusCode) + } + return io.ReadAll(resp.Body) +} + +func (s *Service) parseClash(body []byte, subID int64) (ParsedData, error) { + content := decodeMaybeBase64(body) + + var raw map[string]any + if err := yaml.Unmarshal(content, &raw); err != nil { + return ParsedData{}, fmt.Errorf("invalid clash yaml: %w", err) + } + if _, ok := raw["proxies"]; !ok { + return ParsedData{}, fmt.Errorf("clash config missing proxies") + } + + var out ParsedData + + if proxies, ok := raw["proxies"].([]any); ok { + for i, p := range proxies { + pm, ok := p.(map[string]any) + if !ok { + continue + } + name, _ := pm["name"].(string) + if name == "" { + name = fmt.Sprintf("node%d", i+1) + } + rawJSON, _ := json.Marshal(pm) + out.Nodes = append(out.Nodes, store.ProxyNode{ + Name: name, + RuntimeName: store.RuntimeName("sub", subID, fmt.Sprintf("%d_%s", i, name)), + Type: fmt.Sprint(pm["type"]), + RawConfig: string(rawJSON), + Country: country.Detect(name), + Enabled: true, + }) + } + } + + if groups, ok := raw["proxy-groups"].([]any); ok { + for i, g := range groups { + gm, ok := g.(map[string]any) + if !ok { + continue + } + name, _ := gm["name"].(string) + if name == "" { + continue + } + gtype, _ := gm["type"].(string) + var members []string + if arr, ok := gm["proxies"].([]any); ok { + for _, m := range arr { + members = append(members, fmt.Sprint(m)) + } + } + membersJSON, _ := json.Marshal(members) + out.Groups = append(out.Groups, store.ProxyGroup{ + Name: name, + RuntimeName: store.RuntimeName("grp", subID, fmt.Sprintf("%d_%s", i, name)), + Type: gtype, + Proxies: string(membersJSON), + Enabled: true, + }) + } + } + + if rules, ok := raw["rules"].([]any); ok { + for _, r := range rules { + line := fmt.Sprint(r) + parts := strings.Split(line, ",") + if len(parts) < 2 { + continue + } + rule := store.Rule{ + RuleType: parts[0], + Target: parts[len(parts)-1], + Enabled: true, + } + if len(parts) > 2 { + rule.Payload = strings.Join(parts[1:len(parts)-1], ",") + } + out.Rules = append(out.Rules, rule) + } + } + + return out, nil +} + +func (s *Service) parseLinks(body []byte, subID int64) (ParsedData, error) { + text := string(decodeMaybeBase64(body)) + lines := strings.Split(text, "\n") + var out ParsedData + idx := 0 + for _, line := range lines { + line = strings.TrimSpace(line) + if line == "" || strings.HasPrefix(line, "#") { + continue + } + node, err := parseLink(line, subID, idx) + if err != nil { + continue + } + out.Nodes = append(out.Nodes, node) + idx++ + } + if len(out.Nodes) == 0 { + return ParsedData{}, fmt.Errorf("no valid proxy links found") + } + names := make([]string, 0, len(out.Nodes)) + for _, n := range out.Nodes { + names = append(names, n.RuntimeName) + } + namesJSON, _ := json.Marshal(names) + out.Groups = append(out.Groups, store.ProxyGroup{ + Name: fmt.Sprintf("sub%d", subID), + RuntimeName: store.RuntimeName("grp", subID, "auto"), + Type: "url-test", + Proxies: string(namesJSON), + Enabled: true, + }) + return out, nil +} + +func parseLink(link string, subID int64, idx int) (store.ProxyNode, error) { + lower := strings.ToLower(link) + var proxy map[string]any + var name string + var ptype string + + switch { + case strings.HasPrefix(lower, "ss://"): + proxy, name, ptype = parseSS(link) + case strings.HasPrefix(lower, "socks5://"): + proxy, name, ptype = parseSocks5(link) + case strings.HasPrefix(lower, "http://"), strings.HasPrefix(lower, "https://"): + proxy, name, ptype = parseHTTP(link) + case strings.HasPrefix(lower, "trojan://"): + proxy, name, ptype = parseTrojan(link) + default: + return store.ProxyNode{}, fmt.Errorf("unsupported link") + } + if proxy == nil { + return store.ProxyNode{}, fmt.Errorf("failed to parse link") + } + if name == "" { + name = fmt.Sprintf("node%d", idx+1) + } + raw, _ := json.Marshal(proxy) + return store.ProxyNode{ + Name: name, + RuntimeName: store.RuntimeName("sub", subID, name), + Type: ptype, + RawConfig: string(raw), + Country: country.Detect(name), + Enabled: true, + }, nil +} + +func parseSS(link string) (map[string]any, string, string) { + name, payload := splitLinkFragment(link, "ss://") + if payload == "" { + return nil, name, "ss" + } + + // SIP002: ss://BASE64(method:password@host:port)#name + if proxy, ok := parseSIP002(payload); ok { + return proxy, name, "ss" + } + + // 传统格式: ss://BASE64(method:password)@host:port#name + // 或 ss://BASE64(method:password)@BASE64(host:port)#name(部分机场订阅) + parts := strings.SplitN(payload, "@", 2) + if len(parts) != 2 { + return nil, name, "ss" + } + userinfo := string(decodeBase64Flexible(parts[0])) + if userinfo == "" { + userinfo = parts[0] + } + hostport := string(decodeBase64Flexible(parts[1])) + if hostport == "" { + hostport = parts[1] + } + server, portStr, ok := strings.Cut(hostport, ":") + if !ok { + return nil, name, "ss" + } + var port int + fmt.Sscanf(portStr, "%d", &port) + cipher, password, _ := strings.Cut(userinfo, ":") + if cipher == "" { + cipher = "aes-256-gcm" + } + return map[string]any{ + "type": "ss", + "server": server, + "port": port, + "cipher": cipher, + "password": password, + }, name, "ss" +} + +func parseSIP002(payload string) (map[string]any, bool) { + decoded := string(decodeBase64Flexible(payload)) + at := strings.LastIndex(decoded, "@") + if at <= 0 || !strings.Contains(decoded[:at], ":") { + return nil, false + } + userinfo := decoded[:at] + hostport := decoded[at+1:] + server, portStr, ok := strings.Cut(hostport, ":") + if !ok || server == "" { + return nil, false + } + var port int + if _, err := fmt.Sscanf(portStr, "%d", &port); err != nil || port <= 0 { + return nil, false + } + cipher, password, ok := strings.Cut(userinfo, ":") + if !ok || cipher == "" { + return nil, false + } + return map[string]any{ + "type": "ss", + "server": server, + "port": port, + "cipher": cipher, + "password": password, + }, true +} + +func splitLinkFragment(link, scheme string) (name, payload string) { + rest := strings.TrimPrefix(link, scheme) + if i := strings.Index(rest, "#"); i >= 0 { + name, _ = url.QueryUnescape(rest[i+1:]) + rest = rest[:i] + } + return name, rest +} + +func decodeBase64Flexible(s string) []byte { + decoders := []func(string) ([]byte, error){ + base64.StdEncoding.DecodeString, + base64.RawStdEncoding.DecodeString, + base64.URLEncoding.DecodeString, + base64.RawURLEncoding.DecodeString, + } + for _, dec := range decoders { + if b, err := dec(s); err == nil && len(b) > 0 { + return b + } + } + return nil +} + +func parseSocks5(link string) (map[string]any, string, string) { + name, payload := splitLinkFragment(link, "socks5://") + user, pass := "", "" + if at := strings.LastIndex(payload, "@"); at >= 0 { + auth := payload[:at] + payload = payload[at+1:] + if c := strings.Index(auth, ":"); c >= 0 { + user, pass = auth[:c], auth[c+1:] + } + } + server, portStr, _ := strings.Cut(payload, ":") + var port int + fmt.Sscanf(portStr, "%d", &port) + m := map[string]any{"type": "socks5", "server": server, "port": port} + if user != "" { + m["username"] = user + m["password"] = pass + } + return m, name, "socks5" +} + +func parseHTTP(link string) (map[string]any, string, string) { + isTLS := strings.HasPrefix(strings.ToLower(link), "https://") + scheme := "http://" + if isTLS { + scheme = "https://" + } + name, payload := splitLinkFragment(link, scheme) + user, pass := "", "" + if at := strings.LastIndex(payload, "@"); at >= 0 { + auth := payload[:at] + payload = payload[at+1:] + if c := strings.Index(auth, ":"); c >= 0 { + user, pass = auth[:c], auth[c+1:] + } + } + server, portStr, _ := strings.Cut(payload, ":") + var port int + fmt.Sscanf(portStr, "%d", &port) + m := map[string]any{"type": "http", "server": server, "port": port, "tls": isTLS} + if user != "" { + m["username"] = user + m["password"] = pass + } + return m, name, "http" +} + +func parseTrojan(link string) (map[string]any, string, string) { + name, payload := splitLinkFragment(link, "trojan://") + pass, rest, _ := strings.Cut(payload, "@") + server, portStr, _ := strings.Cut(rest, ":") + var port int + fmt.Sscanf(portStr, "%d", &port) + if q := strings.Index(server, "?"); q >= 0 { + server = server[:q] + } + return map[string]any{ + "type": "trojan", + "server": server, + "port": port, + "password": pass, + "sni": server, + }, name, "trojan" +} + +func decodeMaybeBase64(body []byte) []byte { + trim := strings.TrimSpace(string(body)) + if strings.HasPrefix(trim, "proxies:") || strings.HasPrefix(trim, "{") || strings.HasPrefix(trim, "ss://") { + return body + } + if decoded := decodeBase64Flexible(trim); len(decoded) > 0 { + return decoded + } + return body +} diff --git a/internal/subscription/service_test.go b/internal/subscription/service_test.go new file mode 100644 index 0000000..ae248d5 --- /dev/null +++ b/internal/subscription/service_test.go @@ -0,0 +1,63 @@ +package subscription + +import ( + "encoding/json" + "io" + "net/http" + "net/http/httptest" + "testing" +) + +const sampleBase64Sub = `c3M6Ly9ZV1Z6TFRFeU9DMW5ZMjA2Wm1Fd1lqZ3laamN0Tm1VelppMWhZakZoTFdJMk5qZ3RZamhqTlRjeU5ERTJNakpqUUdWNGNHbHlaUzEwYVcxbExtTjVZbVZ5Ym05a1pTNTBiM0E2TVRrNE5ERT0jJUU1JThCJUJGJUU5JTgwJTg5LSVFNSU4OCVCMCVFNiU5QyU5RiVFNiU5NyVCNiVFOSU5NyVCNCVFRiVCQyU5QTIwMjYtMDktMDMKc3M6Ly9ZV1Z6TFRFeU9DMW5ZMjA2Wm1Fd1lqZ3laamN0Tm1VelppMWhZakZoTFdJMk5qZ3RZamhqTlRjeU5ERTJNakpqUUhKbGJXRnBiaTEwY21GbVptbGpMbU41WW1WeWJtOWtaUzUwYjNBNk1UazROREk9IyVFNSU4QiVCRiVFOSU4MCU4OS0lRTUlQkQlOTMlRTYlOUMlODglRTUlODklQTklRTQlQkQlOTklRTYlQjUlODElRTklODclOEYlRUYlQkMlOUEyNi4wOUdCCnNzOi8vWVdWekxURXlPQzFuWTIwNlptRXdZamd5WmpjdE5tVXpaaTFoWWpGaExXSTJOamd0WWpoak5UY3lOREUyTWpKalFERXVNUzR4TGpFNk5UazFNREk9IyVFMyU4MCU5MCVFOSU4MCU5QSVFNyU5RiVBNSVFMyU4MCU5MSVFNSVBNiU4MiVFOSU5QyU4MCVFNiU5QiVCNCVFNSVBNCU5QSVFOCU4QSU4MiVFNyU4MiVCOSVFOCVBRiVCNyVFOSU4NyU4RCVFOCVBMyU4NUFwcApzczovL1lXVnpMVEV5T0MxblkyMDZabUV3WWpneVpqY3RObVV6WmkxaFlqRmhMV0kyTmpndFlqaGpOVGN5TkRFMk1qSmpRREV1TVM0eExqRTZOVGsxTURNPSMlRTglODElOTQlRTclQjMlQkIlRTklODIlQUUlRTclQUUlQjElM0FsaWJjeWJlcjd4MjQlNDBnbWFpbC5jb20Kc3M6Ly9ZV1Z6TFRFeU9DMW5ZMjA2Wm1Fd1lqZ3laamN0Tm1VelppMWhZakZoTFdJMk5qZ3RZamhqTlRjeU5ERTJNakpqUURFd015NHhPREV1TVRZMExqRXdORG8yTVRFd01RPT0jJUU5JUFCJTk4JUU5JTgwJTlGJUU4JUFGJTk1JUU3JTk0JUE4LSVFNiVCMyU5NSVFNSU5QiVCRDEKc3M6Ly9ZV1Z6TFRFeU9DMW5ZMjA2Wm1Fd1lqZ3laamN0Tm1VelppMWhZakZoTFdJMk5qZ3RZamhqTlRjeU5ERTJNakpqUURFd015NHhPREV1TVRZMExqRXdORG8yTURBNE9BPT0jJUU5JUFCJTk4JUU5JTgwJTlGJUU1JUE0JTg3JUU3JTk0JUE4LSVFNCVCQiU4NSVFOSU5OSU5MCVFNCVCOCVCNCVFNiU5NyVCNiVFNCVCRCVCRiVFNyU5NCVBOAo=` + +func TestParseXHSCacheBase64Subscription(t *testing.T) { + svc := NewService(nil) + parsed, err := svc.parseSubscription([]byte(sampleBase64Sub), 1, "auto") + if err != nil { + t.Fatalf("parse failed: %v", err) + } + if len(parsed.Nodes) != 6 { + t.Fatalf("expected 6 nodes, got %d", len(parsed.Nodes)) + } + if parsed.Nodes[0].Type != "ss" { + t.Fatalf("expected ss type, got %s", parsed.Nodes[0].Type) + } + var cfg map[string]any + if err := json.Unmarshal([]byte(parsed.Nodes[0].RawConfig), &cfg); err != nil { + t.Fatal(err) + } + if cfg["server"] != "expire-time.cybernode.top" { + t.Fatalf("unexpected server: %v", cfg["server"]) + } + if cfg["cipher"] != "aes-128-gcm" { + t.Fatalf("unexpected cipher: %v", cfg["cipher"]) + } + if parsed.Nodes[0].Name == "" { + t.Fatal("expected decoded node name") + } +} + +func TestDetectFormatBase64Links(t *testing.T) { + if got := detectFormat(string(decodeMaybeBase64([]byte(sampleBase64Sub)))); got != "links" { + t.Fatalf("expected links, got %s", got) + } +} + +func TestFetchURLFollowsRequest(t *testing.T) { + srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.Header.Get("User-Agent") == "" { + t.Fatal("missing user agent") + } + _, _ = io.WriteString(w, sampleBase64Sub) + })) + defer srv.Close() + + svc := NewService(nil) + body, err := svc.fetchURL(srv.URL) + if err != nil { + t.Fatal(err) + } + if len(body) == 0 { + t.Fatal("empty body") + } +} diff --git a/internal/trafficlog/collector.go b/internal/trafficlog/collector.go new file mode 100644 index 0000000..b19fa13 --- /dev/null +++ b/internal/trafficlog/collector.go @@ -0,0 +1,227 @@ +package trafficlog + +import ( + "context" + "log" + "strings" + "sync" + "time" + + "github.com/prism/proxy/internal/country" + "github.com/prism/proxy/internal/mihomoapi" + "github.com/prism/proxy/internal/store" +) + +type Collector struct { + store *store.Store + mu sync.Mutex + client *mihomoapi.Client + active map[string]mihomoapi.Connection + names map[string]string + groups map[string]bool + keep int + + lastPollErr string + lastPollErrAt time.Time +} + +func NewCollector(s *store.Store, keep int) *Collector { + if keep <= 0 { + keep = 5000 + } + return &Collector{ + store: s, + active: make(map[string]mihomoapi.Connection), + names: make(map[string]string), + keep: keep, + } +} + +func (c *Collector) UpdateClient(client *mihomoapi.Client) { + c.mu.Lock() + c.client = client + c.mu.Unlock() +} + +func (c *Collector) Run(ctx context.Context) { + ticker := time.NewTicker(5 * time.Second) + defer ticker.Stop() + for { + select { + case <-ctx.Done(): + return + case <-ticker.C: + c.poll(ctx) + } + } +} + +func (c *Collector) poll(ctx context.Context) { + c.mu.Lock() + client := c.client + c.mu.Unlock() + if client == nil { + return + } + snap, err := client.ConnectionSnapshot() + if err != nil { + c.logPollError(err) + return + } + if snap == nil { + return + } + current := make(map[string]mihomoapi.Connection, len(snap.Connections)) + for _, conn := range snap.Connections { + if conn.ID == "" { + continue + } + current[conn.ID] = conn + } + + c.mu.Lock() + groups := c.groups + names := c.names + for id, conn := range current { + c.active[id] = conn + } + var ended []mihomoapi.Connection + for id, conn := range c.active { + if _, ok := current[id]; ok { + continue + } + ended = append(ended, conn) + delete(c.active, id) + } + c.mu.Unlock() + + for _, conn := range ended { + c.save(ctx, conn, groups, names) + } +} + +func (c *Collector) save(ctx context.Context, conn mihomoapi.Connection, groups map[string]bool, names map[string]string) { + nodeKey := conn.LeafOutbound(groups) + node := c.resolveName(nodeKey, names) + chain := conn.ChainString() + resolvedChain := c.resolveChainJSON(chain) + if err := c.store.InsertProxyRequestLog(ctx, &store.ProxyRequestLog{ + Host: conn.RequestHost(), + Network: conn.Metadata.Network, + RuleType: conn.Rule, + RulePayload: conn.RulePayload, + RuleLine: conn.RuleLine(), + OutboundNode: node, + OutboundChain: resolvedChain, + Upload: conn.Upload, + Download: conn.Download, + Success: conn.IsSuccess(), + StartedAt: conn.Start, + EndedAt: time.Now(), + }); err != nil { + log.Printf("trafficlog: save request log: %v", err) + return + } + _ = c.store.PruneProxyRequestLogs(ctx, c.keep) +} + +func (c *Collector) logPollError(err error) { + msg := err.Error() + now := time.Now() + c.mu.Lock() + defer c.mu.Unlock() + if msg == c.lastPollErr && now.Sub(c.lastPollErrAt) < time.Minute { + return + } + c.lastPollErr = msg + c.lastPollErrAt = now + log.Printf("trafficlog: poll connections: %v", err) +} + +func (c *Collector) refreshNames(ctx context.Context) { + nodes, err := c.store.ListProxyNodes(ctx, "", nil) + if err != nil { + return + } + groups, _ := c.store.ListProxyGroups(ctx) + m := map[string]string{ + "DIRECT": "DIRECT", + "REJECT": "REJECT", + } + g := map[string]bool{ + "GLOBAL": true, + "PROXY": true, + } + for _, n := range nodes { + m[n.RuntimeName] = n.Name + } + for _, grp := range groups { + if grp.Enabled { + g[grp.RuntimeName] = true + } + m[grp.RuntimeName] = grp.Name + } + seen := map[string]bool{} + for _, n := range nodes { + if n.Country == "" || seen[n.Country] { + continue + } + seen[n.Country] = true + rn := country.GroupRuntime(n.Country) + m[rn] = country.Name(n.Country) + "(国家池)" + } + c.mu.Lock() + c.names = m + c.groups = g + c.mu.Unlock() +} + +func (c *Collector) resolveName(runtime string, names map[string]string) string { + if runtime == "" { + return "" + } + if name, ok := names[runtime]; ok && name != "" { + return name + } + if strings.HasPrefix(runtime, "country_") { + code := strings.TrimPrefix(runtime, "country_") + return code + "(国家池)" + } + return runtime +} + +func (c *Collector) resolveChainJSON(chain string) string { + // chain stored as JSON array string; map runtime names to display names + if chain == "" || chain == "[]" { + return chain + } + // lightweight replace for display + out := chain + c.mu.Lock() + names := c.names + c.mu.Unlock() + for rt, name := range names { + if rt != "" && name != "" { + out = strings.ReplaceAll(out, rt, name) + } + } + return out +} + +func (c *Collector) Start(ctx context.Context, client *mihomoapi.Client) { + c.UpdateClient(client) + c.refreshNames(ctx) + go func() { + t := time.NewTicker(30 * time.Second) + defer t.Stop() + for { + select { + case <-ctx.Done(): + return + case <-t.C: + c.refreshNames(ctx) + } + } + }() + go c.Run(ctx) +} diff --git a/scripts/docker-build-push-multiarch.sh b/scripts/docker-build-push-multiarch.sh new file mode 100755 index 0000000..c4b717f --- /dev/null +++ b/scripts/docker-build-push-multiarch.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# 构建并推送 Prism 多架构镜像 (amd64 + arm64) 到 Gitea Container Registry +set -euo pipefail + +REGISTRY="${REGISTRY:-git.rc707blog.top}" +OWNER="${OWNER:-rose_cat707}" +PLATFORM="${PLATFORM:-linux/amd64,linux/arm64}" +TAG="${TAG:-latest}" +IMAGE="${IMAGE:-prism}" + +ROOT="$(cd "$(dirname "$0")/.." && pwd)" +cd "$ROOT" + +if ! docker info >/dev/null 2>&1; then + echo "error: Docker 未运行" >&2 + exit 1 +fi + +if ! docker buildx inspect prism-builder >/dev/null 2>&1; then + docker buildx create --name prism-builder --use +else + docker buildx use prism-builder +fi +docker buildx inspect --bootstrap >/dev/null + +FULL_IMAGE="${REGISTRY}/${OWNER}/${IMAGE}" + +docker buildx build \ + --platform "$PLATFORM" \ + -f Dockerfile \ + -t "${FULL_IMAGE}:${TAG}" \ + --push \ + . + +echo "pushed ${FULL_IMAGE}:${TAG} (${PLATFORM})" diff --git a/web/.gitignore b/web/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/web/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/web/.npmrc b/web/.npmrc new file mode 100644 index 0000000..7549542 --- /dev/null +++ b/web/.npmrc @@ -0,0 +1 @@ +registry=https://registry.npmmirror.com diff --git a/web/.vscode/extensions.json b/web/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/web/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/web/README.md b/web/README.md new file mode 100644 index 0000000..33895ab --- /dev/null +++ b/web/README.md @@ -0,0 +1,5 @@ +# Vue 3 + TypeScript + Vite + +This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` + + diff --git a/web/package-lock.json b/web/package-lock.json new file mode 100644 index 0000000..1bbf5fa --- /dev/null +++ b/web/package-lock.json @@ -0,0 +1,2502 @@ +{ + "name": "web", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "web", + "version": "0.0.0", + "dependencies": { + "@element-plus/icons-vue": "^2.3.2", + "axios": "^1.18.0", + "echarts": "^6.1.0", + "element-plus": "^2.14.2", + "pinia": "^3.0.4", + "vue": "^3.5.34", + "vue-i18n": "^10.0.7", + "vue-router": "^5.1.0" + }, + "devDependencies": { + "@types/node": "^24.12.3", + "@vitejs/plugin-vue": "^6.0.6", + "@vue/tsconfig": "^0.9.1", + "typescript": "~6.0.2", + "vite": "^8.0.12", + "vue-tsc": "^3.2.8" + } + }, + "node_modules/@babel/generator": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmmirror.com/@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/@babel/generator/node_modules/@babel/helper-string-parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmmirror.com/@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/@babel/generator/node_modules/@babel/helper-validator-identifier": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmmirror.com/@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/@babel/generator/node_modules/@babel/parser": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmmirror.com/@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/@babel/generator/node_modules/@babel/types": { + "version": "8.0.0-rc.4", + "resolved": "https://registry.npmmirror.com/@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/@babel/helper-string-parser": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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/types": { + "version": "7.29.7", + "resolved": "https://registry.npmmirror.com/@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/@ctrl/tinycolor": { + "version": "4.2.0", + "resolved": "https://registry.npmmirror.com/@ctrl/tinycolor/-/tinycolor-4.2.0.tgz", + "integrity": "sha512-kzyuwOAQnXJNLS9PSyrk0CWk35nWJW/zl/6KvnTBMFK65gm7U1/Z5BqjxeapjZCIhQcM/DsrEmcbRwDyXyXK4A==", + "license": "MIT", + "engines": { + "node": ">=14" + } + }, + "node_modules/@element-plus/icons-vue": { + "version": "2.3.2", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.2.tgz", + "integrity": "sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/@emnapi/core": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@emnapi/core/-/core-1.10.0.tgz", + "integrity": "sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.2.1", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/core/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@emnapi/runtime": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@emnapi/runtime/-/runtime-1.10.0.tgz", + "integrity": "sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/@emnapi/wasi-threads/-/wasi-threads-1.2.1.tgz", + "integrity": "sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@floating-ui/core": { + "version": "1.7.5", + "resolved": "https://registry.npmmirror.com/@floating-ui/core/-/core-1.7.5.tgz", + "integrity": "sha512-1Ih4WTWyw0+lKyFMcBHGbb5U5FtuHJuujoyyr5zTaWS5EYMeT6Jb2AuDeftsCsEuchO+mM2ij5+q9crhydzLhQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.7.6", + "resolved": "https://registry.npmmirror.com/@floating-ui/dom/-/dom-1.7.6.tgz", + "integrity": "sha512-9gZSAI5XM36880PPMm//9dfiEngYoC6Am2izES1FF406YFsjvyBMmeJ2g4SAju3xWwtuynNRFL2s9hgxpLI5SQ==", + "license": "MIT", + "dependencies": { + "@floating-ui/core": "^1.7.5", + "@floating-ui/utils": "^0.2.11" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/@floating-ui/utils/-/utils-0.2.11.tgz", + "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", + "license": "MIT" + }, + "node_modules/@intlify/core-base": { + "version": "10.0.7", + "resolved": "https://registry.npmmirror.com/@intlify/core-base/-/core-base-10.0.7.tgz", + "integrity": "sha512-mE71aUH5baH0me8duB4FY5qevUJizypHsYw3eCvmOx07QvmKppgOONx3dYINxuA89Z2qkAGb/K6Nrpi7aAMwew==", + "license": "MIT", + "dependencies": { + "@intlify/message-compiler": "10.0.7", + "@intlify/shared": "10.0.7" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "10.0.7", + "resolved": "https://registry.npmmirror.com/@intlify/message-compiler/-/message-compiler-10.0.7.tgz", + "integrity": "sha512-nrC4cDL/UHZSUqd8sRbVz+DPukzZ8NnG5OK+EB/nlxsH35deyzyVkXP/QuR8mFZrISJ+4hCd6VtCQCcT+RO+5g==", + "license": "MIT", + "dependencies": { + "@intlify/shared": "10.0.7", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@intlify/shared": { + "version": "10.0.7", + "resolved": "https://registry.npmmirror.com/@intlify/shared/-/shared-10.0.7.tgz", + "integrity": "sha512-oeoq0L5+5P4ShXa6jBQcx+BT+USe3MjX0xJexZO1y7rfDJdwZ9+QP3jO4tcS1nxhBYYdjvFTqe4bmnLijV0GxQ==", + "license": "MIT", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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/@napi-rs/wasm-runtime": { + "version": "1.1.5", + "resolved": "https://registry.npmmirror.com/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.5.tgz", + "integrity": "sha512-AWPoBRJ9tsnVhor4sjO7rkni+7p+2IAEFj6cx06UgP10jkQHqay/36uRV/bFkgrh18D9vb4cr8Q0Pthskgzy+Q==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@tybys/wasm-util": "^0.10.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Brooooooklyn" + }, + "peerDependencies": { + "@emnapi/core": "^1.7.1", + "@emnapi/runtime": "^1.7.1" + } + }, + "node_modules/@oxc-project/types": { + "version": "0.133.0", + "resolved": "https://registry.npmmirror.com/@oxc-project/types/-/types-0.133.0.tgz", + "integrity": "sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==", + "devOptional": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/Boshen" + } + }, + "node_modules/@popperjs/core": { + "name": "@sxzz/popperjs-es", + "version": "2.11.8", + "resolved": "https://registry.npmmirror.com/@sxzz/popperjs-es/-/popperjs-es-2.11.8.tgz", + "integrity": "sha512-wOwESXvvED3S8xBmcPWHs2dUuzrE4XiZeFu7e1hROIJkm02a49N120pmOXxY33sBb6hArItm5W5tcg1cBtV+HQ==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@rolldown/binding-android-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.3.tgz", + "integrity": "sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-PcAhP+ynjURNyy8SKGl5DQP94aGuB/7JrXJb/t7P+hanXvQVMWzUvRRhBAcg/lNRadBhoUPqSoP4xw5tR/KBEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-darwin-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.3.tgz", + "integrity": "sha512-9YpfeUvSE2RS7wysJ81uOZkXJz7f7Q55H2Gvp3VEw/EsahqDtrphrZ0EwDLK5vvKOzaCrBsjF8JmnMLcUt78Gg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-freebsd-x64": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.3.tgz", + "integrity": "sha512-yB1IlAsSNHncV6SCTL27/MVGR5htvQsoGxIv5KMGXALp+Ll1wYsn+x98M9MW7qa+NdSbvrrY7ANI4wLJ0n1e6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm-gnueabihf": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.3.tgz", + "integrity": "sha512-Yi30IVAAfLUCy2MseFjbB1jAMDl1VMCAas5StnYp8da9+CKvMd2H2cbEjWcw5NPaPqzvYkVIaF1nNUG+b7u/sw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.3.tgz", + "integrity": "sha512-jsO7R8To+AdlYgUmN5sHSCZbfhtMBkO0WUx8iORQnPcMMdgr7qM2DQmMwgabs3GhNztdmoKkMKQFHD6DTMCIQw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-arm64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.3.tgz", + "integrity": "sha512-VWkUHwWriDciit80wleYwKILoR/KMvxh/IdwS/paX+ZgpuRpCrKLUdadJbc0NpBEiyhpYawsJ73j9aCvOH+f7Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-ppc64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.3.tgz", + "integrity": "sha512-5f1laC0SlIR0yDbFCd8acUhvJIag6N3zC5P7oUPN6wX0aOma+uKJ0wBDH5aq7I1PVI2ttTlhJwzwRIBnLiSGEg==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-s390x-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.3.tgz", + "integrity": "sha512-Iq4ko0r4XsgbrF/LunNgHtAGLRRVE2kXonAXQ/MV0mC6jQpMOhW1SvtZja2EhC/kd05++bP78dsqBeIQyYJ6Yg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-gnu": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.3.tgz", + "integrity": "sha512-B8m6tD5+/N5FeNQFbKlLA/2yVq9ycQP1SeedyEYYKWBNR3ZQbkvIUcNnDNM03lO1l5F2roiiFJGgvoLLyZXtSg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-linux-x64-musl": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.3.tgz", + "integrity": "sha512-pSdpdUJHkuCxun9LE7jvgUB9qsRgaiyNNCX7m/AvHTcq67AiT/Yhoxvw5zPfhrM8k/BfP8ce/hMOpthKDpEUow==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-openharmony-arm64": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.3.tgz", + "integrity": "sha512-OXXS3RKJgX2uLwM+gYyuH5omcH8fL1LJs96pZGgtetVCahON57+d4SJHzTgZiOjxgGkSnpXpOsWuPDGAKAigEg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-wasm32-wasi": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.3.tgz", + "integrity": "sha512-JTtb8BWFynicNSoPrehsCzBtOKjZ6jhMiPFEmOiuXg1Fl8dn2KHQob+GuPSGR0dryQa1PQJbzjF3dqO/whhjLg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "1.10.0", + "@emnapi/runtime": "1.10.0", + "@napi-rs/wasm-runtime": "^1.1.4" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-arm64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.3.tgz", + "integrity": "sha512-gEdFFEN70A/jxb2svrWsN3aDL7OUtmvlOy+6fa2jxG8K0wQ1ZbdeLGnidov6Yu5/733dI5ySfzFlQ/cb0bSz1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^20.19.0 || >=22.12.0" + } + }, + "node_modules/@rolldown/binding-win32-x64-msvc": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.3.tgz", + "integrity": "sha512-eXB7CHuaQdqmJcc3koCNtNPmT/bj2gc999kUFgBxG8Ac0NdgXc4rkCHhqrgrhN3zddvvvrgzj1e90SuSfmyIXA==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/@rolldown/pluginutils/-/pluginutils-1.0.1.tgz", + "integrity": "sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.2", + "resolved": "https://registry.npmmirror.com/@tybys/wasm-util/-/wasm-util-0.10.2.tgz", + "integrity": "sha512-RoBvJ2X0wuKlWFIjrwffGw1IqZHKQqzIchKaadZZfnNpsAYp2mM0h36JtPCjNDAHGgYez/15uMBpfGwchhiMgg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tybys/wasm-util/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, + "node_modules/@types/jsesc": { + "version": "2.5.1", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@types/lodash/-/lodash-4.17.24.tgz", + "integrity": "sha512-gIW7lQLZbue7lRSWEFql49QJJWThrTFFeIMJdp3eH4tKoxm1OvEPg02rm4wCCSHS0cL3/Fizimb35b7k8atwsQ==", + "license": "MIT" + }, + "node_modules/@types/lodash-es": { + "version": "4.17.12", + "resolved": "https://registry.npmmirror.com/@types/lodash-es/-/lodash-es-4.17.12.tgz", + "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", + "license": "MIT", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/node": { + "version": "24.13.2", + "resolved": "https://registry.npmmirror.com/@types/node/-/node-24.13.2.tgz", + "integrity": "sha512-fRa09kZTgu8o71KFcDjUFuc7F+dEbZYZmkI0mg5YBTRs0yMKjYHsq/c0urDKeDb+D5qVgXOdFcuu+DZPKOITwA==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~7.18.0" + } + }, + "node_modules/@types/web-bluetooth": { + "version": "0.0.21", + "resolved": "https://registry.npmmirror.com/@types/web-bluetooth/-/web-bluetooth-0.0.21.tgz", + "integrity": "sha512-oIQLCGWtcFZy2JW77j9k8nHzAOpqMHLQejDA48XXMWH6tjCQHz5RCFz1bzsmROyL6PUm+LLnUiI4BCn221inxA==", + "license": "MIT" + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.7", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.npmmirror.com/@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.38", + "resolved": "https://registry.npmmirror.com/@vue/compiler-core/-/compiler-core-3.5.38.tgz", + "integrity": "sha512-s99aGxWYig9ErHbct27KXEGhrBYlRI6c4MwAgXErOAbX9xiW37/uMa+XUDO69zLz83dng8UUZ70CTOJrLrYrEQ==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/shared": "3.5.38", + "entities": "^7.0.1", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/compiler-dom/-/compiler-dom-3.5.38.tgz", + "integrity": "sha512-JTqp25l8aFfJYF7/KmsXZjAxJz7T+SjmTJLoXVjHtc2BrSgSiW2n9Aem/cWq1OPe68A8JL06B3eVdhlP0H4TVw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/compiler-sfc/-/compiler-sfc-3.5.38.tgz", + "integrity": "sha512-DuA2GiZawSEW442iw/9+Fkol8hTgb4Ke5KkhmSry65QA7YuyMbIdy8p0XZRMvNwJdgRz307W8g1CSzdvS4nuNg==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.7", + "@vue/compiler-core": "3.5.38", + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38", + "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.38", + "resolved": "https://registry.npmmirror.com/@vue/compiler-ssr/-/compiler-ssr-3.5.38.tgz", + "integrity": "sha512-7s+W5Gc42FGxZMcuwl8H5B29T8BJPMdBT7KHFE+BbAuZ/iTEdTtv7z2XiMjiaUUw4w3ZcCEdHs36RuYJ2VA7bA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/devtools-api": { + "version": "7.7.9", + "resolved": "https://registry.npmmirror.com/@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/@vue/devtools-kit": { + "version": "7.7.9", + "resolved": "https://registry.npmmirror.com/@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.npmmirror.com/@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.5", + "resolved": "https://registry.npmmirror.com/@vue/language-core/-/language-core-3.3.5.tgz", + "integrity": "sha512-UkKu5nhX89fg4VhlG/FOeI10G3cj/7radKT/cy9BT4Q9qJmJlSTAc/dP63Xqs29aypN4f39xUV6PsLNk/dcD6g==", + "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.38", + "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.38.tgz", + "integrity": "sha512-pG6LV/NDNRbKizcUjFFLAfjaL8mcv4DmR9avNcUw2gDHBzZneuS2TWCmp633ynzxz9YYKNeEPK2I8Wraqy2HUQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/runtime-core/-/runtime-core-3.5.38.tgz", + "integrity": "sha512-iyW8WVfF1CpCXxncZY5Ei6rSd6oZr5DgEom//fUjRBRl56AXPD+s9ATvukRt77ZFTuYlnVA1bxY+dJB94tWVYw==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.38", + "@vue/shared": "3.5.38" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/runtime-dom/-/runtime-dom-3.5.38.tgz", + "integrity": "sha512-apX2wt9sdfDshS+a2xueFZLVpt0GkRJZSoPmrW/SA4yzXTznhfcMVW59gr7h4YQeY0vJhdJkk2rsIDwgfFgC5A==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.38", + "@vue/runtime-core": "3.5.38", + "@vue/shared": "3.5.38", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/server-renderer/-/server-renderer-3.5.38.tgz", + "integrity": "sha512-vue8vbf2QlV4quHqzwmJy6dWfmRhP1J8l4wtZg60CL6VoKqcPY2oe7may3+1d9qfpedjK5PRLFqd5k3Isj9mUw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.38", + "@vue/shared": "3.5.38" + }, + "peerDependencies": { + "vue": "3.5.38" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.38", + "resolved": "https://registry.npmmirror.com/@vue/shared/-/shared-3.5.38.tgz", + "integrity": "sha512-FTW0AFZNaK5/mOqvGBwVfUlNLU38TiQn4+DQgIFUnrBBJQ1crMJ82yeGQLV5jyKFsO8yRukpbuP7x+nRbH6aug==", + "license": "MIT" + }, + "node_modules/@vue/tsconfig": { + "version": "0.9.1", + "resolved": "https://registry.npmmirror.com/@vue/tsconfig/-/tsconfig-0.9.1.tgz", + "integrity": "sha512-buvjm+9NzLCJL29KY1j1991YYJ5e6275OiK+G4jtmfIb+z4POywbdm0wXusT9adVWqe0xqg70TbI7+mRx4uU9w==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "typescript": ">= 5.8", + "vue": "^3.4.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vue": { + "optional": true + } + } + }, + "node_modules/@vueuse/core": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/core/-/core-14.3.0.tgz", + "integrity": "sha512-aHfz47g0ZhMtTVHmIzMVpJy8ePhhOy68GY5bv110+5DVtZ+W7BsOx+m61UNQqfrWyPztIHIanWa3E2tib3NFIw==", + "license": "MIT", + "dependencies": { + "@types/web-bluetooth": "^0.0.21", + "@vueuse/metadata": "14.3.0", + "@vueuse/shared": "14.3.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/@vueuse/metadata": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/metadata/-/metadata-14.3.0.tgz", + "integrity": "sha512-BwxmbAzwAVF50+MW57GXOUEV61nFBGnlBvrTqj49PqWJu3uw7hdu72ztXeZ33RdZtDY6kO+bfCAE1PCn88Tktw==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, + "node_modules/@vueuse/shared": { + "version": "14.3.0", + "resolved": "https://registry.npmmirror.com/@vueuse/shared/-/shared-14.3.0.tgz", + "integrity": "sha512-bZpge9eSXwa4ToSiqJ7j6KRwhAsneMFoSz3LMWKQDkqimm3D/tbFlrklrs/IOqC8tEcYmXQZJ6N0UrjhBirVCg==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + }, + "node_modules/acorn": { + "version": "8.17.0", + "resolved": "https://registry.npmmirror.com/acorn/-/acorn-8.17.0.tgz", + "integrity": "sha512-xRQbDb9BnwDafYNn6Vwl839DYVjqXYb1XVGtWAZ1kcDc6iwAL4hg3B1dZlRiuENFeO2H53gFG3in621AdERVAg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/alien-signals": { + "version": "3.2.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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/async-validator": { + "version": "4.2.5", + "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz", + "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.18.0", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.18.0.tgz", + "integrity": "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.16.0", + "form-data": "^4.0.5", + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" + } + }, + "node_modules/birpc": { + "version": "2.9.0", + "resolved": "https://registry.npmmirror.com/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/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/chokidar": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/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/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/confbox": { + "version": "0.2.4", + "resolved": "https://registry.npmmirror.com/confbox/-/confbox-0.2.4.tgz", + "integrity": "sha512-ysOGlgTFbN2/Y6Cg3Iye8YKulHw+R2fNXHrgSmXISQdMnomY6eNDprVdW9R5xBguEqI954+S6709UyiO7B+6OQ==", + "license": "MIT" + }, + "node_modules/copy-anything": { + "version": "4.0.5", + "resolved": "https://registry.npmmirror.com/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/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/dayjs/-/dayjs-1.11.21.tgz", + "integrity": "sha512-98IT+HOahAisibz/yjKbzuOBwYcjJ7BCLPzARyHiyEBmRz4fatF+KPJszEHXsGYjUG234aH/cOjW1wwTbKUZlA==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "devOptional": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/echarts": { + "version": "6.1.0", + "resolved": "https://registry.npmmirror.com/echarts/-/echarts-6.1.0.tgz", + "integrity": "sha512-q0yaFPggC9FUdsWH4blavRWFmxdrIodbkoKNAjJudAI6CA9gNPxHtV2RcZNEepZVlk4yvBYkOkbk6HIVpIyHZA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "2.3.0", + "zrender": "6.1.0" + } + }, + "node_modules/element-plus": { + "version": "2.14.2", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.14.2.tgz", + "integrity": "sha512-eNH9uP3wQoNqieEIHXiNvIVv+zO5sZDU0CAZq5b0zqSN06DD0/V9xIq1R/qm3rw5k3nBTM1JvpxhCfRbaFLzDQ==", + "license": "MIT", + "dependencies": { + "@ctrl/tinycolor": "^4.2.0", + "@element-plus/icons-vue": "^2.3.2", + "@floating-ui/dom": "^1.7.6", + "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.8", + "@types/lodash": "^4.17.24", + "@types/lodash-es": "^4.17.12", + "@vueuse/core": "14.3.0", + "async-validator": "^4.2.5", + "dayjs": "^1.11.20", + "lodash": "^4.18.1", + "lodash-es": "^4.18.1", + "lodash-unified": "^1.0.3", + "memoize-one": "^6.0.0", + "normalize-wheel-es": "^1.2.0", + "vue-component-type-helpers": "^3.3.3" + }, + "peerDependencies": { + "vue": "^3.3.7" + } + }, + "node_modules/entities": { + "version": "7.0.1", + "resolved": "https://registry.npmmirror.com/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/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.2.tgz", + "integrity": "sha512-HWcBoN6NileqtSydK2FqHbS/LoDd2pqrnQHLyJzBj4kOp/ky2MWMN694xOfkK8/SnUsW2DH7EfyVlydKCsm1Zw==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/exsolve": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/exsolve/-/exsolve-1.0.8.tgz", + "integrity": "sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmmirror.com/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/follow-redirects": { + "version": "1.16.0", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.6", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.6.tgz", + "integrity": "sha512-vKatAh4SlVfgbv+YtmhiRjhEMJsYpsG1Y2rMQtR+SVSbytsSD1YGzDIcrAJmdFec88u/+VoGmxnl+80gL1tRCQ==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.4", + "mime-types": "^2.1.35" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.4", + "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.4.tgz", + "integrity": "sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hookable": { + "version": "5.5.3", + "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz", + "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==", + "license": "MIT" + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/is-what": { + "version": "5.5.0", + "resolved": "https://registry.npmmirror.com/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/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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.npmmirror.com/lightningcss-android-arm64/-/lightningcss-android-arm64-1.32.0.tgz", + "integrity": "sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-darwin-arm64/-/lightningcss-darwin-arm64-1.32.0.tgz", + "integrity": "sha512-RzeG9Ju5bag2Bv1/lwlVJvBE3q6TtXskdZLLCyfg5pt+HLz9BqlICO7LZM7VHNTTn/5PRhHFBSjk5lc4cmscPQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-darwin-x64/-/lightningcss-darwin-x64-1.32.0.tgz", + "integrity": "sha512-U+QsBp2m/s2wqpUYT/6wnlagdZbtZdndSmut/NJqlCcMLTWp5muCrID+K5UJ6jqD2BFshejCYXniPDbNh73V8w==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-freebsd-x64/-/lightningcss-freebsd-x64-1.32.0.tgz", + "integrity": "sha512-JCTigedEksZk3tHTTthnMdVfGf61Fky8Ji2E4YjUTEQX14xiy/lTzXnu1vwiZe3bYe0q+SpsSH/CTeDXK6WHig==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-linux-arm-gnueabihf/-/lightningcss-linux-arm-gnueabihf-1.32.0.tgz", + "integrity": "sha512-x6rnnpRa2GL0zQOkt6rts3YDPzduLpWvwAF6EMhXFVZXD4tPrBkEFqzGowzCsIWsPjqSK+tyNEODUBXeeVHSkw==", + "cpu": [ + "arm" + ], + "dev": true, + "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.npmmirror.com/lightningcss-linux-arm64-gnu/-/lightningcss-linux-arm64-gnu-1.32.0.tgz", + "integrity": "sha512-0nnMyoyOLRJXfbMOilaSRcLH3Jw5z9HDNGfT/gwCPgaDjnx0i8w7vBzFLFR1f6CMLKF8gVbebmkUN3fa/kQJpQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-linux-arm64-musl/-/lightningcss-linux-arm64-musl-1.32.0.tgz", + "integrity": "sha512-UpQkoenr4UJEzgVIYpI80lDFvRmPVg6oqboNHfoH4CQIfNA+HOrZ7Mo7KZP02dC6LjghPQJeBsvXhJod/wnIBg==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-linux-x64-gnu/-/lightningcss-linux-x64-gnu-1.32.0.tgz", + "integrity": "sha512-V7Qr52IhZmdKPVr+Vtw8o+WLsQJYCTd8loIfpDaMRWGUZfBOYEJeyJIkqGIDMZPwPx24pUMfwSxxI8phr/MbOA==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-linux-x64-musl/-/lightningcss-linux-x64-musl-1.32.0.tgz", + "integrity": "sha512-bYcLp+Vb0awsiXg/80uCRezCYHNg1/l3mt0gzHnWV9XP1W5sKa5/TCdGWaR/zBM2PeF/HbsQv/j2URNOiVuxWg==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-win32-arm64-msvc/-/lightningcss-win32-arm64-msvc-1.32.0.tgz", + "integrity": "sha512-8SbC8BR40pS6baCM8sbtYDSwEVQd4JlFTOlaD3gWGHfThTcABnNDBda6eTZeqbofalIJhFx0qKzgHJmcPTnGdw==", + "cpu": [ + "arm64" + ], + "dev": true, + "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.npmmirror.com/lightningcss-win32-x64-msvc/-/lightningcss-win32-x64-msvc-1.32.0.tgz", + "integrity": "sha512-Amq9B/SoZYdDi1kFrojnoqPLxYhQ4Wo5XiL8EVJrVsB8ARoC1PWW6VGtT0WKCemjy8aC+louJnjS7U18x3b06Q==", + "cpu": [ + "x64" + ], + "dev": true, + "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.npmmirror.com/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": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "license": "MIT" + }, + "node_modules/lodash-es": { + "version": "4.18.1", + "resolved": "https://registry.npmmirror.com/lodash-es/-/lodash-es-4.18.1.tgz", + "integrity": "sha512-J8xewKD/Gk22OZbhpOVSwcs60zhd95ESDwezOFuA3/099925PdHJ7OFHNTGtajL3AlZkykD32HykiMo+BIBI8A==", + "license": "MIT" + }, + "node_modules/lodash-unified": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/lodash-unified/-/lodash-unified-1.0.3.tgz", + "integrity": "sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==", + "license": "MIT", + "peerDependencies": { + "@types/lodash-es": "*", + "lodash": "*", + "lodash-es": "*" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/memoize-one": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz", + "integrity": "sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==", + "license": "MIT" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mitt": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", + "license": "MIT" + }, + "node_modules/mlly": { + "version": "1.8.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/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/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmmirror.com/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.12", + "resolved": "https://registry.npmmirror.com/nanoid/-/nanoid-3.3.12.tgz", + "integrity": "sha512-ZB9RH/39qpq5Vu6Y+NmUaFhQR6pp+M2Xt76XBnEwDaGcVAqhlvxrl3B2bKS5D3NH3QR76v3aSrKaF/Kiy7lEtQ==", + "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/normalize-wheel-es": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/normalize-wheel-es/-/normalize-wheel-es-1.2.0.tgz", + "integrity": "sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==", + "license": "BSD-3-Clause" + }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz", + "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.4", + "resolved": "https://registry.npmmirror.com/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmmirror.com/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/pkg-types": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/pkg-types/-/pkg-types-2.3.1.tgz", + "integrity": "sha512-y+ichcgc2LrADuhLNAx8DFjVfgz91pRxfZdI3UDhxHvcVEZsenLO+7XaU5vOp0u/7V/wZ+plyuQxtrDlZJ+yeg==", + "license": "MIT", + "dependencies": { + "confbox": "^0.2.4", + "exsolve": "^1.0.8", + "pathe": "^2.0.3" + } + }, + "node_modules/postcss": { + "version": "8.5.15", + "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.15.tgz", + "integrity": "sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==", + "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.12", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/quansync": { + "version": "0.2.11", + "resolved": "https://registry.npmmirror.com/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/readdirp": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/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/rfdc": { + "version": "1.4.1", + "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "license": "MIT" + }, + "node_modules/rolldown": { + "version": "1.0.3", + "resolved": "https://registry.npmmirror.com/rolldown/-/rolldown-1.0.3.tgz", + "integrity": "sha512-i00lAJ2ks1BYr7rjNjKC7BcqAS7nVfiT3QX1SI5aY+AFHblCmaUf9OE9dbdzDvW6dJxbi2ZCZiy9v3CcwOiX3g==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "@oxc-project/types": "=0.133.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.0.3", + "@rolldown/binding-darwin-arm64": "1.0.3", + "@rolldown/binding-darwin-x64": "1.0.3", + "@rolldown/binding-freebsd-x64": "1.0.3", + "@rolldown/binding-linux-arm-gnueabihf": "1.0.3", + "@rolldown/binding-linux-arm64-gnu": "1.0.3", + "@rolldown/binding-linux-arm64-musl": "1.0.3", + "@rolldown/binding-linux-ppc64-gnu": "1.0.3", + "@rolldown/binding-linux-s390x-gnu": "1.0.3", + "@rolldown/binding-linux-x64-gnu": "1.0.3", + "@rolldown/binding-linux-x64-musl": "1.0.3", + "@rolldown/binding-openharmony-arm64": "1.0.3", + "@rolldown/binding-wasm32-wasi": "1.0.3", + "@rolldown/binding-win32-arm64-msvc": "1.0.3", + "@rolldown/binding-win32-x64-msvc": "1.0.3" + } + }, + "node_modules/scule": { + "version": "1.3.0", + "resolved": "https://registry.npmmirror.com/scule/-/scule-1.3.0.tgz", + "integrity": "sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==", + "license": "MIT" + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/speakingurl": { + "version": "14.0.1", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/superjson/-/superjson-2.2.6.tgz", + "integrity": "sha512-H+ue8Zo4vJmV2nRjpx86P35lzwDT3nItnIsocgumgr0hHMQ+ZGq5vrERg9kJBo5AWGmxZDhzDo+WVIJqkB0cGA==", + "license": "MIT", + "dependencies": { + "copy-anything": "^4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmmirror.com/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.3.0", + "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", + "license": "0BSD" + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmmirror.com/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.4", + "resolved": "https://registry.npmmirror.com/ufo/-/ufo-1.6.4.tgz", + "integrity": "sha512-JFNbkD1Svwe0KvGi8GOeLcP4kAWQ609twvCdcHxq1oSL8svv39ZuSvajcD8B+5D0eL4+s1Is2D/O6KN3qcTeRA==", + "license": "MIT" + }, + "node_modules/undici-types": { + "version": "7.18.2", + "resolved": "https://registry.npmmirror.com/undici-types/-/undici-types-7.18.2.tgz", + "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==", + "dev": true, + "license": "MIT" + }, + "node_modules/unplugin": { + "version": "3.0.0", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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/vite": { + "version": "8.0.16", + "resolved": "https://registry.npmmirror.com/vite/-/vite-8.0.16.tgz", + "integrity": "sha512-h9bXPmJichP5fLmVQo3PyaGSDE2n3aPuomeAlVRm0JLmt4rY6zmPKd59HYI4LNW8oTK7tlTsuC7l/m7awx9Jcw==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "lightningcss": "^1.32.0", + "picomatch": "^4.0.4", + "postcss": "^8.5.15", + "rolldown": "1.0.3", + "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.1.18", + "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.npmmirror.com/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.38", + "resolved": "https://registry.npmmirror.com/vue/-/vue-3.5.38.tgz", + "integrity": "sha512-vAMKHfImQlYSy0C+PBue4s3ERZ2xGKfgZg5GXAsLInq1dyh2H78ILVP5sK0KPFPVW4kv+OGCIvBEondcjpZp7A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.38", + "@vue/compiler-sfc": "3.5.38", + "@vue/runtime-dom": "3.5.38", + "@vue/server-renderer": "3.5.38", + "@vue/shared": "3.5.38" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-component-type-helpers": { + "version": "3.3.5", + "resolved": "https://registry.npmmirror.com/vue-component-type-helpers/-/vue-component-type-helpers-3.3.5.tgz", + "integrity": "sha512-Fe1jyPJoUGpJOYKOri44jduR7My4yYINOMJISuMAbmrs+L5LbIDUc8NTWZYY3EJLK0yPLuCmcd5zoCsE4k2/KA==", + "license": "MIT" + }, + "node_modules/vue-i18n": { + "version": "10.0.7", + "resolved": "https://registry.npmmirror.com/vue-i18n/-/vue-i18n-10.0.7.tgz", + "integrity": "sha512-bKsk0PYwP9gdYF4nqSAT0kDpnLu1gZzlxFl885VH4mHVhEnqP16+/mAU05r1U6NIrc0fGDWP89tZ8GzeJZpe+w==", + "license": "MIT", + "dependencies": { + "@intlify/core-base": "10.0.7", + "@intlify/shared": "10.0.7", + "@vue/devtools-api": "^6.5.0" + }, + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://github.com/sponsors/kazupon" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-i18n/node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/vue-router": { + "version": "5.1.0", + "resolved": "https://registry.npmmirror.com/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/@vue/devtools-api": { + "version": "8.1.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-8.1.3.tgz", + "integrity": "sha512-73NMCvxXh8Hyozc/jiwqTFWVcCMyi11U1zmrq4DoukQJnuo8JHt6FsNu4HdeUDa8SpIp5vb7Q22GWgIq0efsXg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-kit": "^8.1.3" + } + }, + "node_modules/vue-router/node_modules/@vue/devtools-kit": { + "version": "8.1.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-8.1.3.tgz", + "integrity": "sha512-cRn7GXiCQkMYU2Z3h3pM4YO/ndbx9FY1yLDAqIqPLcmIq4H6zAOJHein6tvZU3AfPwgrodqLiPBEF+YQaS8AxA==", + "license": "MIT", + "dependencies": { + "@vue/devtools-shared": "^8.1.3", + "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.3", + "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-8.1.3.tgz", + "integrity": "sha512-CM3uIPL+v+lrJUk33+pxspYo0MhuMWlCvf7zC9fybifvCPyM2jUbYRPwoYEJgYbwRqPikm5HozbUhp60MF2QuA==", + "license": "MIT" + }, + "node_modules/vue-router/node_modules/perfect-debounce": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-2.1.0.tgz", + "integrity": "sha512-LjgdTytVFXeUgtHZr9WYViYSM/g8MkcTPYDlPa3cDqMirHjKiSZPYd6DoL7pK8AJQr+uWkQvCjHNdiMqsrJs+g==", + "license": "MIT" + }, + "node_modules/vue-tsc": { + "version": "3.3.5", + "resolved": "https://registry.npmmirror.com/vue-tsc/-/vue-tsc-3.3.5.tgz", + "integrity": "sha512-Rzh/G2MmNlMSAMTiQEjDrsb4dgB/jbtEM47rVN2NtidF1dfb/q4w4QvpQBtW5+y3y5H27Hjh7deVwk+YB02fNg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@volar/typescript": "2.4.28", + "@vue/language-core": "3.3.5" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/webpack-virtual-modules": { + "version": "0.6.2", + "resolved": "https://registry.npmmirror.com/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.npmmirror.com/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.npmmirror.com/zrender/-/zrender-6.1.0.tgz", + "integrity": "sha512-oEGMDB6pOP2S6OwRR4PdVv610zrjnA3Bh+JnSG12fYJlBKjtNAoEb5fSUoCOOINlH96I2fU38/A2UpRKs67xYQ==", + "license": "BSD-3-Clause", + "dependencies": { + "tslib": "2.3.0" + } + } + } +} diff --git a/web/package.json b/web/package.json new file mode 100644 index 0000000..75a1550 --- /dev/null +++ b/web/package.json @@ -0,0 +1,29 @@ +{ + "name": "web", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vue-tsc -b && vite build", + "preview": "vite preview" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.3.2", + "axios": "^1.18.0", + "echarts": "^6.1.0", + "element-plus": "^2.14.2", + "pinia": "^3.0.4", + "vue": "^3.5.34", + "vue-i18n": "^10.0.7", + "vue-router": "^5.1.0" + }, + "devDependencies": { + "@types/node": "^24.12.3", + "@vitejs/plugin-vue": "^6.0.6", + "@vue/tsconfig": "^0.9.1", + "typescript": "~6.0.2", + "vite": "^8.0.12", + "vue-tsc": "^3.2.8" + } +} diff --git a/web/public/favicon.svg b/web/public/favicon.svg new file mode 100644 index 0000000..28b4fdb --- /dev/null +++ b/web/public/favicon.svg @@ -0,0 +1,29 @@ + + + + + + + diff --git a/web/public/icons.svg b/web/public/icons.svg new file mode 100644 index 0000000..e952219 --- /dev/null +++ b/web/public/icons.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/src/App.vue b/web/src/App.vue new file mode 100644 index 0000000..7a0f2b6 --- /dev/null +++ b/web/src/App.vue @@ -0,0 +1,14 @@ + + + diff --git a/web/src/api/client.ts b/web/src/api/client.ts new file mode 100644 index 0000000..107d6eb --- /dev/null +++ b/web/src/api/client.ts @@ -0,0 +1,30 @@ +import axios from 'axios' +import router from '@/router' + +const api = axios.create({ + baseURL: '/api/v1', + timeout: 30000, +}) + +api.interceptors.request.use((config) => { + const token = localStorage.getItem('prism_token') + if (token && token !== 'disabled') { + config.headers.Authorization = `Bearer ${token}` + } + return config +}) + +api.interceptors.response.use( + (res) => res, + (err) => { + if (err.response?.status === 401 && err.config?.url !== '/auth/login') { + localStorage.removeItem('prism_token') + if (router.currentRoute.value.name !== 'login') { + router.push('/login') + } + } + return Promise.reject(err) + }, +) + +export default api diff --git a/web/src/assets/hero.png b/web/src/assets/hero.png new file mode 100644 index 0000000..02251f4 Binary files /dev/null and b/web/src/assets/hero.png differ diff --git a/web/src/assets/prism-icon.svg b/web/src/assets/prism-icon.svg new file mode 100644 index 0000000..c2f0d1d --- /dev/null +++ b/web/src/assets/prism-icon.svg @@ -0,0 +1,28 @@ + diff --git a/web/src/assets/vite.svg b/web/src/assets/vite.svg new file mode 100644 index 0000000..5101b67 --- /dev/null +++ b/web/src/assets/vite.svg @@ -0,0 +1 @@ +Vite diff --git a/web/src/assets/vue.svg b/web/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/web/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web/src/components/AppCard.vue b/web/src/components/AppCard.vue new file mode 100644 index 0000000..63f26d4 --- /dev/null +++ b/web/src/components/AppCard.vue @@ -0,0 +1,19 @@ + + + diff --git a/web/src/components/PageHeader.vue b/web/src/components/PageHeader.vue new file mode 100644 index 0000000..1d91bf7 --- /dev/null +++ b/web/src/components/PageHeader.vue @@ -0,0 +1,18 @@ + + + diff --git a/web/src/components/PrismIcon.vue b/web/src/components/PrismIcon.vue new file mode 100644 index 0000000..b5a9910 --- /dev/null +++ b/web/src/components/PrismIcon.vue @@ -0,0 +1,45 @@ + + + diff --git a/web/src/components/StatCard.vue b/web/src/components/StatCard.vue new file mode 100644 index 0000000..cbdbea5 --- /dev/null +++ b/web/src/components/StatCard.vue @@ -0,0 +1,13 @@ + + + diff --git a/web/src/i18n/index.ts b/web/src/i18n/index.ts new file mode 100644 index 0000000..d9f1618 --- /dev/null +++ b/web/src/i18n/index.ts @@ -0,0 +1,45 @@ +import { createI18n } from 'vue-i18n' +import zhCn from 'element-plus/es/locale/lang/zh-cn' +import zhTw from 'element-plus/es/locale/lang/zh-tw' +import en from 'element-plus/es/locale/lang/en' + +import zhCN from './locales/zh-CN' +import zhTW from './locales/zh-TW' +import enUS from './locales/en' +import { isLocaleCode, type LocaleCode } from './types' + +export const LOCALE_STORAGE_KEY = 'prism_locale' +export const DEFAULT_LOCALE: LocaleCode = 'zh-CN' + +export const elementLocales = { + 'zh-CN': zhCn, + 'zh-TW': zhTw, + en, +} as const + +function readStoredLocale(): LocaleCode { + const stored = localStorage.getItem(LOCALE_STORAGE_KEY) + return stored && isLocaleCode(stored) ? stored : DEFAULT_LOCALE +} + +const i18n = createI18n({ + legacy: false, + locale: readStoredLocale(), + fallbackLocale: DEFAULT_LOCALE, + messages: { + 'zh-CN': zhCN, + 'zh-TW': zhTW, + en: enUS, + }, +}) + +export function applyDocumentLocale(locale: LocaleCode) { + document.documentElement.lang = locale +} + +export function setI18nLocale(locale: LocaleCode) { + i18n.global.locale.value = locale + applyDocumentLocale(locale) +} + +export default i18n diff --git a/web/src/i18n/locales/en.ts b/web/src/i18n/locales/en.ts new file mode 100644 index 0000000..ca9685f --- /dev/null +++ b/web/src/i18n/locales/en.ts @@ -0,0 +1,344 @@ +export default { + common: { + prism: 'Prism', + refresh: 'Refresh', + save: 'Save', + cancel: 'Cancel', + confirm: 'Confirm', + search: 'Search', + delete: 'Delete', + import: 'Import', + export: 'Export', + add: 'Add', + create: 'Create', + revoke: 'Revoke', + copy: 'Copy', + loading: 'Loading', + unknown: 'Unknown', + none: '—', + success: 'Success', + failed: 'Failed', + all: 'All', + manual: 'Manual', + subscription: 'Subscription', + source: 'Source', + name: 'Name', + type: 'Type', + status: 'Status', + actions: 'Actions', + upload: 'Upload', + download: 'Download', + connections: 'Connections', + time: 'Time', + level: 'Level', + message: 'Message', + testing: 'Testing', + saved: 'Saved', + empty: 'No data', + management: 'Management', + logout: 'Sign out', + minutes: '{n} min', + seconds: '{n} sec', + periodHours: 'Last {n} hours', + }, + nav: { + dashboard: 'Dashboard', + subscriptions: 'Subscriptions', + proxies: 'Proxies', + outbound: 'Outbound', + rules: 'Rules', + trafficLogs: 'Request Logs', + logs: 'Runtime Logs', + settings: 'Settings', + }, + login: { + subtitle: 'HTTP / SOCKS5 proxy gateway console', + title: 'Sign in', + password: 'Password', + passwordPlaceholder: 'default: admin', + submit: 'Sign in', + hint: 'Default password is admin on first use. Change it in Settings.', + failed: 'Sign in failed', + wrongPassword: 'Incorrect password', + wrongPasswordRemaining: 'Incorrect password. {n} attempts left', + tooManyAttempts: 'Too many attempts. Try again in {wait}', + }, + dashboard: { + title: 'Dashboard', + desc: 'Live traffic, domain/node breakdown, and connection overview', + checking: 'Checking', + engineRunning: 'Engine running', + engineStopped: 'Engine stopped', + totalNodes: 'Total nodes', + aliveNodes: 'Alive nodes', + activeConnections: 'Active connections', + downloadRate: 'Download rate', + domainTraffic: 'Domain traffic', + nodeTraffic: 'Node traffic', + trafficTrend: 'Traffic trend', + tabLive: 'Active connections', + domain: 'Domain', + outboundNode: 'Outbound node', + hintLiveDomain: 'Active connection traffic grouped by domain and outbound node', + hintPeriodDomain: 'Aggregated from request logs by domain and outbound node', + hintLiveNode: 'Active traffic by leaf proxy node (policy groups skipped)', + hintPeriodNode: 'Completed request traffic per leaf node in the last 24 hours', + seriesDownload: 'Download', + seriesUpload: 'Upload', + }, + subscriptions: { + title: 'Subscriptions', + desc: 'Add and schedule Clash or link-based subscriptions', + add: 'Add subscription', + url: 'URL', + nodeCount: 'Nodes', + lastFetch: 'Last updated', + normal: 'OK', + error: 'Error', + refresh: 'Refresh', + dialogTitle: 'Add subscription', + interval: 'Update interval', + intervalHint: 'Seconds, minimum 300', + typeAuto: 'Auto detect', + typeClash: 'Clash YAML', + typeLinks: 'Node links', + typeHint: 'Use Auto detect for short links and Base64 node lists', + added: 'Subscription added', + refreshed: 'Refreshed', + deleted: 'Deleted', + confirmDelete: 'Delete subscription "{name}"?', + }, + proxies: { + title: 'Proxies', + desc: 'Node status, latency, country tags, and filters', + rebuildCountries: 'Rebuild countries', + addNode: 'Add node', + testAll: 'Test all', + testingProgress: 'Testing {progress}', + cancelTest: 'Cancel test', + testOne: 'Test', + country: 'Country', + latency: 'Latency', + notTested: 'N/A', + alive: 'Alive', + filterCountry: 'Filter by country', + allCountries: 'All countries', + testingHint: 'Testing nodes one by one. Do not close this page.', + tabAll: 'All', + countriesRebuilt: 'Updated country tags for {n} nodes', + noTestable: 'No nodes to test', + testCancelled: 'Test cancelled', + testDone: 'Test completed', + testDoneFailed: 'Test completed with {n} failures', + nodeAdded: 'Node added', + exported: 'Nodes exported', + exportJson: 'JSON', + exportLinks: 'Share links (one per line)', + importTitle: 'Import manual nodes', + importMode: 'Import mode', + append: 'Append to existing nodes', + replace: 'Replace all manual nodes', + importFile: 'Node file', + importContent: 'Node content', + importFileHint: 'JSON or share links (ss/socks5/http/trojan)', + importPlaceholder: 'One link per line, or paste JSON; lines starting with # are comments', + importConfirmReplace: 'This will delete all manual nodes and replace them. Continue?', + importConfirmTitle: 'Confirm import', + pasteRequired: 'Paste nodes or choose a file', + imported: 'Imported {n} nodes', + importedPartial: 'Imported {n}, skipped {s}', + importFailed: 'Import failed', + addDialogTitle: 'Add manual node', + server: 'Server', + port: 'Port', + username: 'Username', + password: 'Password', + chooseFile: 'Choose file', + }, + outbound: { + title: 'Outbound', + desc: 'Manage policy groups and default outbound; route rules are on the Rules page', + defaultTitle: 'Default outbound', + defaultHint: 'Policy group or DIRECT when no rule matches', + save: 'Save', + countryPools: 'Country pools (url-test)', + countryPoolsHint: 'Per-country url-test groups that pick the fastest node', + policyGroups: 'Policy groups', + countryPool: 'Country pool', + currentNode: 'Current node', + memberCount: 'Members', + policyGroup: 'Policy group', + switchNode: 'Switch node', + auto: '(auto)', + fallbackHint: 'Ordered fallback without latency test', + skipDirect: 'Auto latency test (excludes DIRECT)', + emptyCountry: 'No country pools (tag nodes and reload)', + emptyPolicy: 'No policy groups', + saved: 'Default outbound saved', + groupSwitched: 'Policy group switched', + policyGroupsHint: 'Only Selector groups allow manual node switch; URLTest / Fallback are chosen by the core', + typeSelector: 'Manual select', + typeURLTest: 'URL test', + typeFallback: 'Fallback', + typeLoadBalance: 'Load balance', + typeRelay: 'Relay', + countryPoolName: '{name} (country pool)', + policyGroupName: '{name} ({type})', + }, + rules: { + title: 'Routing rules', + desc: 'Manual rules override subscription rules; route domains to country pools', + testCard: 'Rule match test', + testPlaceholder: 'Enter URL or domain, e.g. https://www.google.com', + test: 'Test', + testHint: 'Simulates merged rule priority; GEOIP/GEOSITE needs local Geo data', + parsedHost: 'Host', + matchedRule: 'Matched rule', + outboundTarget: 'Outbound', + manualRules: 'Manual rules (high priority)', + mergedPreview: 'Merged rules preview', + mergedSummary: '{total} rules, fallback {policy}', + priority: 'Priority', + match: 'Match', + target: 'Target', + rule: 'Rule', + seq: '#', + ruleAdded: 'Rule added', + ruleDeleted: 'Deleted', + confirmDelete: 'Delete this rule?', + urlRequired: 'Enter a URL or domain', + exported: 'Rules exported', + exportJson: 'JSON', + exportText: 'Mihomo text (one per line)', + importTitle: 'Import manual rules', + importConfirmReplace: 'This will delete all manual rules and replace them. Continue?', + pasteRequired: 'Paste rules or choose a file', + imported: 'Imported {n} rules', + importedPartial: 'Imported {n}, skipped {s}', + importFailed: 'Import failed', + addDialogTitle: 'Add rule', + matchValue: 'Match value', + matchPlaceholder: 'e.g. google.com', + outboundType: 'Outbound type', + byCountry: 'By country', + byPolicy: 'Policy / direct', + outboundTargetLabel: 'Outbound target', + selectCountryPool: 'Select country pool', + selectPolicy: 'Select policy or DIRECT', + countryPoolHint: 'Country pools use url-test to pick the fastest node', + importFile: 'Rule file', + importContent: 'Rule content', + importFileHint: 'JSON or Mihomo rule text (DOMAIN-SUFFIX,example.com,PROXY)', + importPlaceholder: 'One rule per line or JSON; # for comments', + chooseFile: 'Choose file', + importMode: 'Import mode', + append: 'Append to existing rules', + replace: 'Replace all manual rules', + targetDirect: 'DIRECT', + targetReject: 'REJECT', + targetProxy: 'PROXY (default group)', + targetGlobal: 'GLOBAL (subscription group)', + countryFastest: '{name} (fastest)', + }, + trafficLogs: { + title: 'Request logs', + desc: 'Matched rules, outbound nodes, and results after connections close', + searchPlaceholder: 'Search domain, rule, or node', + target: 'Target', + matchedRule: 'Matched rule', + outboundNode: 'Outbound node', + chain: 'Chain', + traffic: 'Traffic', + result: 'Result', + pageSuccess: '{ok}/{total} succeeded on this page', + }, + logs: { + title: 'Runtime logs', + desc: 'Prism and proxy engine logs', + runtime: 'Runtime', + audit: 'Audit', + searchPlaceholder: 'Search keyword', + action: 'Action', + resource: 'Resource', + detail: 'Detail', + }, + settings: { + title: 'Settings', + desc: 'Proxy ports, scheduler, and security', + reloadEngine: 'Reload engine', + saved: 'Settings saved', + engineReloaded: 'Engine reloaded', + inboundApi: 'Inbound & API', + proxyInbound: 'Proxy inbound', + httpPort: 'HTTP port', + socksPort: 'SOCKS5 port', + proxyUser: 'Proxy username', + proxyUserPlaceholder: 'Leave empty to disable auth', + proxyPass: 'Proxy password', + proxyPassPlaceholder: 'Leave empty to keep unchanged; clear username to disable auth', + proxyAuthHint: 'HTTP/SOCKS5 will require these credentials; 127.0.0.1 is exempt', + adminApi: 'Admin API', + apiPort: 'API port', + apiPortHint: 'Restart required after changing', + mihomoApi: 'Mihomo API', + apiSecret: 'API Secret', + apiSecretPlaceholder: 'Clash API secret', + scheduler: 'Scheduler', + healthInterval: 'Health check interval', + seconds: 'seconds', + logLevel: 'Log level', + security: 'Security', + authEnabled: 'Enable login', + loginMaxAttempts: 'Max login attempts', + loginMaxAttemptsHint: 'Lock IP after this many failures within the lock window', + loginLockMinutes: 'Login lock duration', + loginLockMinutesHint: 'Minutes; blocked IP cannot retry during lock', + newPassword: 'New password', + newPasswordPlaceholder: 'Leave empty to keep unchanged', + appearance: 'Appearance', + uiLocale: 'Language', + localeZhCN: '简体中文', + localeZhTW: '繁體中文', + localeEn: 'English', + apiKeys: 'API Keys', + apiKeysHint: 'Use keys to call the admin API without signing in. Header:', + applyKey: 'Create API Key', + }, + apiKey: { + empty: 'No API keys', + prefix: 'Key prefix', + lastUsed: 'Last used', + createdAt: 'Created', + neverUsed: 'Never used', + created: 'API Key created. Copy it now.', + copied: 'Copied to clipboard', + confirmRevoke: 'Revoke key "{name}" ({prefix})?', + revoked: 'Revoked', + dialogCreate: 'Create API Key', + dialogSave: 'Save your API Key', + name: 'Name', + namePlaceholder: 'e.g. automation, ci', + onceHint: 'Shown only once. You cannot view the full key again.', + }, + geo: { + title: 'Geo data', + autoDownload: 'Auto download on start', + autoDownloadHint: 'Download missing Geo files on startup using URLs below', + countryMmdb: 'Country.mmdb', + countryMmdbHint: 'GEOIP country database; clear and save to restore default URL', + geoip: 'GEOIP', + geoipHint: 'geoip.dat URL; clear and save to restore default', + geosite: 'GEOSITE', + geositeHint: 'geosite.dat URL; clear and save to restore default', + localStatus: 'Local status', + ready: 'Ready', + notReady: 'Not ready', + missing: 'Missing', + downloadMissing: 'Download missing', + forceUpdate: 'Force update all', + updateHint: 'Save URL changes first, then update; GEOIP/GEOSITE rules need all three files', + updated: 'Updated: {files}', + upToDate: 'Geo data is up to date', + updateFailed: 'Update failed', + }, +} diff --git a/web/src/i18n/locales/zh-CN.ts b/web/src/i18n/locales/zh-CN.ts new file mode 100644 index 0000000..5ba989b --- /dev/null +++ b/web/src/i18n/locales/zh-CN.ts @@ -0,0 +1,344 @@ +export default { + common: { + prism: 'Prism', + refresh: '刷新', + save: '保存', + cancel: '取消', + confirm: '确认', + search: '搜索', + delete: '删除', + import: '导入', + export: '导出', + add: '添加', + create: '创建', + revoke: '吊销', + copy: '复制', + loading: '加载中', + unknown: '未知', + none: '—', + success: '成功', + failed: '失败', + all: '全部', + manual: '手动', + subscription: '订阅', + source: '来源', + name: '名称', + type: '类型', + status: '状态', + actions: '操作', + upload: '上行', + download: '下行', + connections: '连接数', + time: '时间', + level: '级别', + message: '消息', + testing: '测试中', + saved: '已保存', + empty: '暂无数据', + management: '管理', + logout: '退出登录', + minutes: '{n} 分钟', + seconds: '{n} 秒', + periodHours: '近 {n} 小时累计', + }, + nav: { + dashboard: '监控大盘', + subscriptions: '订阅管理', + proxies: '代理节点', + outbound: '出站管理', + rules: '路由规则', + trafficLogs: '请求日志', + logs: '运行日志', + settings: '系统设置', + }, + login: { + subtitle: 'HTTP / SOCKS5 代理网关管理台', + title: '登录', + password: '密码', + passwordPlaceholder: '默认 admin', + submit: '登录', + hint: '首次使用默认密码为 admin,请在设置中修改', + failed: '登录失败', + wrongPassword: '密码错误', + wrongPasswordRemaining: '密码错误,还可尝试 {n} 次', + tooManyAttempts: '登录尝试过多,请 {wait} 后再试', + }, + dashboard: { + title: '监控大盘', + desc: '实时流量、按域名/节点分布与连接概览', + checking: '检测中', + engineRunning: '内核运行中', + engineStopped: '内核未运行', + totalNodes: '总节点', + aliveNodes: '可用节点', + activeConnections: '活跃连接', + downloadRate: '下行速率', + domainTraffic: '域名流量', + nodeTraffic: '节点流量', + trafficTrend: '流量趋势', + tabLive: '当前活跃连接', + domain: '域名', + outboundNode: '出站节点', + hintLiveDomain: '按域名与出站节点汇总当前活跃连接流量', + hintPeriodDomain: '来自请求日志,按域名与出站节点聚合', + hintLiveNode: '按具体代理节点(跳过策略组)汇总活跃连接流量', + hintPeriodNode: '近24小时各具体代理节点完成的请求流量合计', + seriesDownload: '下行', + seriesUpload: '上行', + }, + subscriptions: { + title: '订阅管理', + desc: '添加并定时更新 Clash 或节点链接订阅', + add: '添加订阅', + url: 'URL', + nodeCount: '节点数', + lastFetch: '上次更新', + normal: '正常', + error: '异常', + refresh: '刷新', + dialogTitle: '添加订阅', + interval: '更新间隔', + intervalHint: '秒,最小 300', + typeAuto: '自动识别', + typeClash: 'Clash YAML', + typeLinks: '节点链接', + typeHint: '短链 / Base64 节点订阅选「自动识别」即可', + added: '已添加订阅', + refreshed: '刷新成功', + deleted: '已删除', + confirmDelete: '确定删除订阅「{name}」?', + }, + proxies: { + title: '代理节点', + desc: '查看节点状态与延迟,支持国家标签与按国家筛选', + rebuildCountries: '重新识别国家', + addNode: '添加节点', + testAll: '全部测速', + testingProgress: '测速中 {progress}', + cancelTest: '取消测速', + testOne: '测速', + country: '国家', + latency: '延迟', + notTested: '未测', + alive: '可用', + filterCountry: '按国家筛选', + allCountries: '全部国家', + testingHint: '按序逐个测速,请勿关闭页面', + tabAll: '全部', + countriesRebuilt: '已重新识别 {n} 个节点国家标签', + noTestable: '没有可测速的节点', + testCancelled: '已取消测速', + testDone: '测速完成', + testDoneFailed: '测速完成,{n} 个失败', + nodeAdded: '节点已添加', + exported: '节点已导出', + exportJson: 'JSON 格式', + exportLinks: '分享链接(每行一条)', + importTitle: '导入手动节点', + importMode: '导入模式', + append: '追加到现有节点', + replace: '替换全部手动节点', + importFile: '节点文件', + importContent: '节点内容', + importFileHint: '支持 JSON 或分享链接文本(ss/socks5/http/trojan)', + importPlaceholder: '每行一条分享链接,或粘贴 JSON;# 开头为注释', + importConfirmReplace: '将删除全部现有手动节点并替换为导入内容,确定继续?', + importConfirmTitle: '确认导入', + pasteRequired: '请粘贴节点或选择文件', + imported: '已导入 {n} 个节点', + importedPartial: '已导入 {n} 个,跳过 {s} 条', + importFailed: '导入失败', + addDialogTitle: '添加手动节点', + server: '服务器', + port: '端口', + username: '用户名', + password: '密码', + chooseFile: '选择文件', + }, + outbound: { + title: '出站管理', + desc: '管理策略组当前节点与默认出站;规则出站请在「路由规则」页配置', + defaultTitle: '默认出站', + defaultHint: '未命中任何规则时使用的策略组或直连', + save: '保存', + countryPools: '国家池(自动测速)', + countryPoolsHint: '按国家聚合的 url-test 组,自动选择该国最快节点', + policyGroups: '策略组', + countryPool: '国家池', + currentNode: '当前节点', + memberCount: '成员数', + policyGroup: '策略组', + switchNode: '切换节点', + auto: '(自动)', + fallbackHint: '按列表顺序主备,不通才切换(不比延迟)', + skipDirect: '按延迟自动测速选最快节点(不含 DIRECT)', + emptyCountry: '暂无国家池(请为节点标注国家后重载)', + emptyPolicy: '暂无策略组', + saved: '默认出站已保存', + groupSwitched: '策略组已切换', + policyGroupsHint: '仅 Selector(手动选择)类型可切换当前节点;URLTest / Fallback 由内核自动决定,无法固定某节点', + typeSelector: '手动选择', + typeURLTest: '自动测速', + typeFallback: '故障转移', + typeLoadBalance: '负载均衡', + typeRelay: '中继', + countryPoolName: '{name}(国家池)', + policyGroupName: '{name}({type})', + }, + rules: { + title: '路由规则', + desc: '手动规则优先级高于订阅规则;可将域名指定到某国家的自动优选节点', + testCard: '规则命中测试', + testPlaceholder: '输入 URL 或域名,如 https://www.google.com', + test: '测试', + testHint: '按合成后规则优先级模拟匹配;GEOIP/GEOSITE 需内核 Geo 数据,本地测试会跳过', + parsedHost: '解析域名', + matchedRule: '命中规则', + outboundTarget: '出站目标', + manualRules: '手动规则(高优先级)', + mergedPreview: '合成后规则预览', + mergedSummary: '共 {total} 条规则,兜底出站 {policy}', + priority: '优先级', + match: '匹配', + target: '目标', + rule: '规则', + seq: '序', + ruleAdded: '规则已添加', + ruleDeleted: '已删除', + confirmDelete: '确定删除该规则?', + urlRequired: '请输入 URL 或域名', + exported: '规则已导出', + exportJson: 'JSON 格式', + exportText: 'Mihomo 文本(每行一条)', + importTitle: '导入手动规则', + importConfirmReplace: '将删除全部现有手动规则并替换为导入内容,确定继续?', + pasteRequired: '请粘贴规则或选择文件', + imported: '已导入 {n} 条规则', + importedPartial: '已导入 {n} 条,跳过 {s} 条', + importFailed: '导入失败', + addDialogTitle: '添加规则', + matchValue: '匹配值', + matchPlaceholder: '如 google.com', + outboundType: '出站类型', + byCountry: '按国家', + byPolicy: '策略/直连', + outboundTargetLabel: '出站目标', + selectCountryPool: '选择国家节点池', + selectPolicy: '选择策略或直连', + countryPoolHint: '国家池使用 url-test 自动选择该国延迟最低的节点', + importFile: '规则文件', + importContent: '规则内容', + importFileHint: '支持 JSON 或 Mihomo 规则文本(DOMAIN-SUFFIX,example.com,PROXY)', + importPlaceholder: '每行一条规则,或以 JSON 格式粘贴;# 开头为注释', + chooseFile: '选择文件', + importMode: '导入模式', + append: '追加到现有规则', + replace: '替换全部手动规则', + targetDirect: 'DIRECT(直连)', + targetReject: 'REJECT(拒绝)', + targetProxy: 'PROXY(默认策略组)', + targetGlobal: 'GLOBAL(订阅总组)', + countryFastest: '{name}(自动选最快)', + }, + trafficLogs: { + title: '请求日志', + desc: '代理请求命中规则、出站节点与连接结果(连接结束后写入)', + searchPlaceholder: '搜索域名、规则或节点', + target: '请求目标', + matchedRule: '命中规则', + outboundNode: '出站节点', + chain: '链路', + traffic: '流量', + result: '结果', + pageSuccess: '本页 {ok}/{total} 成功', + }, + logs: { + title: '运行日志', + desc: 'Prism 与代理内核运行日志', + runtime: '运行日志', + audit: '审计日志', + searchPlaceholder: '搜索关键词', + action: '操作', + resource: '资源', + detail: '详情', + }, + settings: { + title: '系统设置', + desc: '代理端口、调度间隔与安全配置', + reloadEngine: '重载内核', + saved: '设置已保存', + engineReloaded: '内核已重载', + inboundApi: '入站与 API', + proxyInbound: '代理入站', + httpPort: 'HTTP 端口', + socksPort: 'SOCKS5 端口', + proxyUser: '代理用户名', + proxyUserPlaceholder: '留空表示不启用认证', + proxyPass: '代理密码', + proxyPassPlaceholder: '留空则不修改;清空用户名可关闭认证', + proxyAuthHint: '填写后 HTTP / SOCKS5 入站均需该账号密码;本机 127.0.0.1 可免认证', + adminApi: '管理 API', + apiPort: 'API 端口', + apiPortHint: '修改后需重启进程生效', + mihomoApi: 'Mihomo API', + apiSecret: 'API Secret', + apiSecretPlaceholder: 'Clash API 密钥', + scheduler: '调度', + healthInterval: '健康检查间隔', + seconds: '秒', + logLevel: '日志级别', + security: '安全', + authEnabled: '启用登录', + loginMaxAttempts: '登录失败上限', + loginMaxAttemptsHint: '同一 IP 在锁定时长内连续失败达到此次数后将临时锁定', + loginLockMinutes: '登录锁定时长', + loginLockMinutesHint: '分钟;锁定期间该 IP 无法继续尝试登录', + newPassword: '新密码', + newPasswordPlaceholder: '留空则不修改', + appearance: '界面', + uiLocale: '显示语言', + localeZhCN: '简体中文', + localeZhTW: '繁體中文', + localeEn: 'English', + apiKeys: 'API Key', + apiKeysHint: '申请后可用 Key 直接调用管理 API,无需每次登录。请求头任选其一:', + applyKey: '申请 API Key', + }, + apiKey: { + empty: '暂无 API Key', + prefix: 'Key 前缀', + lastUsed: '最近使用', + createdAt: '创建时间', + neverUsed: '从未使用', + created: 'API Key 已创建,请立即复制保存', + copied: '已复制到剪贴板', + confirmRevoke: '确定吊销 Key「{name}」({prefix})?', + revoked: '已吊销', + dialogCreate: '申请 API Key', + dialogSave: '请保存 API Key', + name: '名称', + namePlaceholder: '如 automation、ci', + onceHint: '此 Key 只显示一次,关闭后无法再次查看完整内容。', + }, + geo: { + title: 'Geo 数据', + autoDownload: '启动时自动下载', + autoDownloadHint: '启动时若本地缺少 Geo 文件则按下方地址自动下载', + countryMmdb: 'Country.mmdb', + countryMmdbHint: 'GEOIP 国家匹配数据库;清空并保存可恢复内置默认地址', + geoip: 'GEOIP', + geoipHint: 'geoip.dat 下载地址;清空并保存可恢复内置默认地址', + geosite: 'GEOSITE', + geositeHint: 'geosite.dat 下载地址;清空并保存可恢复内置默认地址', + localStatus: '本地状态', + ready: '已就绪', + notReady: '未就绪', + missing: '缺失', + downloadMissing: '下载缺失文件', + forceUpdate: '强制更新全部', + updateHint: '修改下载地址后请先保存,再点击更新;规则含 GEOIP/GEOSITE 时需保证三项文件齐全', + updated: '已更新:{files}', + upToDate: 'Geo 数据已是最新', + updateFailed: '更新失败', + }, +} diff --git a/web/src/i18n/locales/zh-TW.ts b/web/src/i18n/locales/zh-TW.ts new file mode 100644 index 0000000..ce2baa7 --- /dev/null +++ b/web/src/i18n/locales/zh-TW.ts @@ -0,0 +1,344 @@ +export default { + common: { + prism: 'Prism', + refresh: '重新整理', + save: '儲存', + cancel: '取消', + confirm: '確認', + search: '搜尋', + delete: '刪除', + import: '匯入', + export: '匯出', + add: '新增', + create: '建立', + revoke: '吊销', + copy: '複製', + loading: '載入中', + unknown: '未知', + none: '—', + success: '成功', + failed: '失敗', + all: '全部', + manual: '手動', + subscription: '訂閱', + source: '來源', + name: '名稱', + type: '類型', + status: '狀態', + actions: '操作', + upload: '上行', + download: '下行', + connections: '連線數', + time: '時間', + level: '級別', + message: '訊息', + testing: '測速中', + saved: '已儲存', + empty: '暫無資料', + management: '管理', + logout: '登出', + minutes: '{n} 分鐘', + seconds: '{n} 秒', + periodHours: '近 {n} 小時累計', + }, + nav: { + dashboard: '監控大盤', + subscriptions: '訂閱管理', + proxies: '代理節點', + outbound: '出站管理', + rules: '路由規則', + trafficLogs: '請求日誌', + logs: '執行日誌', + settings: '系統設定', + }, + login: { + subtitle: 'HTTP / SOCKS5 代理閘道管理台', + title: '登入', + password: '密碼', + passwordPlaceholder: '預設 admin', + submit: '登入', + hint: '首次使用預設密碼為 admin,請在設定中修改', + failed: '登入失敗', + wrongPassword: '密碼錯誤', + wrongPasswordRemaining: '密碼錯誤,還可嘗試 {n} 次', + tooManyAttempts: '登入嘗試過多,請 {wait} 後再試', + }, + dashboard: { + title: '監控大盤', + desc: '即時流量、按網域/節點分佈與連線概覽', + checking: '檢測中', + engineRunning: '核心執行中', + engineStopped: '核心未執行', + totalNodes: '總節點', + aliveNodes: '可用節點', + activeConnections: '活躍連線', + downloadRate: '下行速率', + domainTraffic: '網域流量', + nodeTraffic: '節點流量', + trafficTrend: '流量趨勢', + tabLive: '目前活躍連線', + domain: '網域', + outboundNode: '出站節點', + hintLiveDomain: '按網域與出站節點彙總目前活躍連線流量', + hintPeriodDomain: '來自請求日誌,按網域與出站節點聚合', + hintLiveNode: '按具體代理節點(跳過策略組)彙總活躍連線流量', + hintPeriodNode: '近24小時各具體代理節點完成的請求流量合計', + seriesDownload: '下行', + seriesUpload: '上行', + }, + subscriptions: { + title: '訂閱管理', + desc: '新增並定時更新 Clash 或節點連結訂閱', + add: '新增訂閱', + url: 'URL', + nodeCount: '節點數', + lastFetch: '上次更新', + normal: '正常', + error: '異常', + refresh: '重新整理', + dialogTitle: '新增訂閱', + interval: '更新間隔', + intervalHint: '秒,最小 300', + typeAuto: '自動識別', + typeClash: 'Clash YAML', + typeLinks: '節點連結', + typeHint: '短鏈 / Base64 節點訂閱選「自動識別」即可', + added: '已新增訂閱', + refreshed: '重新整理成功', + deleted: '已刪除', + confirmDelete: '確定刪除訂閱「{name}」?', + }, + proxies: { + title: '代理節點', + desc: '查看節點狀態與延遲,支援國家標籤與按國家篩選', + rebuildCountries: '重新識別國家', + addNode: '新增節點', + testAll: '全部測速', + testingProgress: '測速中 {progress}', + cancelTest: '取消測速', + testOne: '測速', + country: '國家', + latency: '延遲', + notTested: '未測', + alive: '可用', + filterCountry: '按國家篩選', + allCountries: '全部國家', + testingHint: '按序逐個測速,請勿關閉頁面', + tabAll: '全部', + countriesRebuilt: '已重新識別 {n} 個節點國家標籤', + noTestable: '沒有可測速的節點', + testCancelled: '已取消測速', + testDone: '測速完成', + testDoneFailed: '測速完成,{n} 個失敗', + nodeAdded: '節點已新增', + exported: '節點已匯出', + exportJson: 'JSON 格式', + exportLinks: '分享連結(每行一條)', + importTitle: '匯入手動節點', + importMode: '匯入模式', + append: '追加到現有節點', + replace: '替換全部手動節點', + importFile: '節點檔案', + importContent: '節點內容', + importFileHint: '支援 JSON 或分享連結文字(ss/socks5/http/trojan)', + importPlaceholder: '每行一條分享連結,或貼上 JSON;# 開頭為註解', + importConfirmReplace: '將刪除全部現有手動節點並替換為匯入內容,確定繼續?', + importConfirmTitle: '確認匯入', + pasteRequired: '請貼上節點或選擇檔案', + imported: '已匯入 {n} 個節點', + importedPartial: '已匯入 {n} 個,跳過 {s} 條', + importFailed: '匯入失敗', + addDialogTitle: '新增手動節點', + server: '伺服器', + port: '埠', + username: '使用者名稱', + password: '密碼', + chooseFile: '選擇檔案', + }, + outbound: { + title: '出站管理', + desc: '管理策略組目前節點與預設出站;規則出站請在「路由規則」頁設定', + defaultTitle: '預設出站', + defaultHint: '未命中任何規則時使用的策略組或直連', + save: '儲存', + countryPools: '國家池(自動測速)', + countryPoolsHint: '按國家聚合的 url-test 組,自動選擇該國最快節點', + policyGroups: '策略組', + countryPool: '國家池', + currentNode: '目前節點', + memberCount: '成員數', + policyGroup: '策略組', + switchNode: '切換節點', + auto: '(自動)', + fallbackHint: '按列表順序主備,不通才切換(不比延遲)', + skipDirect: '按延遲自動測速選最快節點(不含 DIRECT)', + emptyCountry: '暫無國家池(請為節點標註國家後重載)', + emptyPolicy: '暫無策略組', + saved: '預設出站已儲存', + groupSwitched: '策略組已切換', + policyGroupsHint: '僅 Selector(手動選擇)類型可切換目前節點;URLTest / Fallback 由核心自動決定,無法固定某節點', + typeSelector: '手動選擇', + typeURLTest: '自動測速', + typeFallback: '故障轉移', + typeLoadBalance: '負載均衡', + typeRelay: '中繼', + countryPoolName: '{name}(國家池)', + policyGroupName: '{name}({type})', + }, + rules: { + title: '路由規則', + desc: '手動規則優先級高於訂閱規則;可將網域指定到某國家的自動優選節點', + testCard: '規則命中測試', + testPlaceholder: '輸入 URL 或網域,如 https://www.google.com', + test: '測試', + testHint: '按合成後規則優先級模擬匹配;GEOIP/GEOSITE 需核心 Geo 資料,本地測試會跳過', + parsedHost: '解析網域', + matchedRule: '命中規則', + outboundTarget: '出站目標', + manualRules: '手動規則(高優先級)', + mergedPreview: '合成後規則預覽', + mergedSummary: '共 {total} 條規則,兜底出站 {policy}', + priority: '優先級', + match: '匹配', + target: '目標', + rule: '規則', + seq: '序', + ruleAdded: '規則已新增', + ruleDeleted: '已刪除', + confirmDelete: '確定刪除該規則?', + urlRequired: '請輸入 URL 或網域', + exported: '規則已匯出', + exportJson: 'JSON 格式', + exportText: 'Mihomo 文字(每行一條)', + importTitle: '匯入手動規則', + importConfirmReplace: '將刪除全部現有手動規則並替換為匯入內容,確定繼續?', + pasteRequired: '請貼上規則或選擇檔案', + imported: '已匯入 {n} 條規則', + importedPartial: '已匯入 {n} 條,跳過 {s} 條', + importFailed: '匯入失敗', + addDialogTitle: '新增規則', + matchValue: '匹配值', + matchPlaceholder: '如 google.com', + outboundType: '出站類型', + byCountry: '按國家', + byPolicy: '策略/直連', + outboundTargetLabel: '出站目標', + selectCountryPool: '選擇國家節點池', + selectPolicy: '選擇策略或直連', + countryPoolHint: '國家池使用 url-test 自動選擇該國延遲最低的節點', + importFile: '規則檔案', + importContent: '規則內容', + importFileHint: '支援 JSON 或 Mihomo 規則文字(DOMAIN-SUFFIX,example.com,PROXY)', + importPlaceholder: '每行一條規則,或以 JSON 格式貼上;# 開頭為註解', + chooseFile: '選擇檔案', + importMode: '匯入模式', + append: '追加到現有規則', + replace: '替換全部手動規則', + targetDirect: 'DIRECT(直連)', + targetReject: 'REJECT(拒絕)', + targetProxy: 'PROXY(預設策略組)', + targetGlobal: 'GLOBAL(訂閱總組)', + countryFastest: '{name}(自動選最快)', + }, + trafficLogs: { + title: '請求日誌', + desc: '代理請求命中規則、出站節點與連線結果(連線結束後寫入)', + searchPlaceholder: '搜尋網域、規則或節點', + target: '請求目標', + matchedRule: '命中規則', + outboundNode: '出站節點', + chain: '鏈路', + traffic: '流量', + result: '結果', + pageSuccess: '本頁 {ok}/{total} 成功', + }, + logs: { + title: '執行日誌', + desc: 'Prism 與代理核心執行日誌', + runtime: '執行日誌', + audit: '稽核日誌', + searchPlaceholder: '搜尋關鍵詞', + action: '操作', + resource: '資源', + detail: '詳情', + }, + settings: { + title: '系統設定', + desc: '代理埠、排程間隔與安全配置', + reloadEngine: '重載核心', + saved: '設定已儲存', + engineReloaded: '核心已重載', + inboundApi: '入站與 API', + proxyInbound: '代理入站', + httpPort: 'HTTP 埠', + socksPort: 'SOCKS5 埠', + proxyUser: '代理使用者名稱', + proxyUserPlaceholder: '留空表示不啟用認證', + proxyPass: '代理密碼', + proxyPassPlaceholder: '留空則不修改;清空使用者名稱可關閉認證', + proxyAuthHint: '填寫後 HTTP / SOCKS5 入站均需該帳號密碼;本機 127.0.0.1 可免認證', + adminApi: '管理 API', + apiPort: 'API 埠', + apiPortHint: '修改後需重啟程序生效', + mihomoApi: 'Mihomo API', + apiSecret: 'API Secret', + apiSecretPlaceholder: 'Clash API 密鑰', + scheduler: '排程', + healthInterval: '健康檢查間隔', + seconds: '秒', + logLevel: '日誌級別', + security: '安全', + authEnabled: '啟用登入', + loginMaxAttempts: '登入失敗上限', + loginMaxAttemptsHint: '同一 IP 在鎖定時長內連續失敗達到此次數後將暫時鎖定', + loginLockMinutes: '登入鎖定時長', + loginLockMinutesHint: '分鐘;鎖定期間該 IP 無法繼續嘗試登入', + newPassword: '新密碼', + newPasswordPlaceholder: '留空則不修改', + appearance: '介面', + uiLocale: '顯示語言', + localeZhCN: '简体中文', + localeZhTW: '繁體中文', + localeEn: 'English', + apiKeys: 'API Key', + apiKeysHint: '申請後可用 Key 直接呼叫管理 API,無需每次登入。請求標頭任選其一:', + applyKey: '申請 API Key', + }, + apiKey: { + empty: '暫無 API Key', + prefix: 'Key 前綴', + lastUsed: '最近使用', + createdAt: '建立時間', + neverUsed: '從未使用', + created: 'API Key 已建立,請立即複製儲存', + copied: '已複製到剪貼簿', + confirmRevoke: '確定吊销 Key「{name}」({prefix})?', + revoked: '已吊销', + dialogCreate: '申請 API Key', + dialogSave: '請儲存 API Key', + name: '名稱', + namePlaceholder: '如 automation、ci', + onceHint: '此 Key 只顯示一次,關閉後無法再次查看完整內容。', + }, + geo: { + title: 'Geo 資料', + autoDownload: '啟動時自動下載', + autoDownloadHint: '啟動時若本地缺少 Geo 檔案則按下方位址自動下載', + countryMmdb: 'Country.mmdb', + countryMmdbHint: 'GEOIP 國家匹配資料庫;清空並儲存可恢復內建預設位址', + geoip: 'GEOIP', + geoipHint: 'geoip.dat 下載位址;清空並儲存可恢復內建預設位址', + geosite: 'GEOSITE', + geositeHint: 'geosite.dat 下載位址;清空並儲存可恢復內建預設位址', + localStatus: '本地狀態', + ready: '已就緒', + notReady: '未就緒', + missing: '缺失', + downloadMissing: '下載缺失檔案', + forceUpdate: '強制更新全部', + updateHint: '修改下載位址後請先儲存,再點擊更新;規則含 GEOIP/GEOSITE 時需保證三項檔案齊全', + updated: '已更新:{files}', + upToDate: 'Geo 資料已是最新', + updateFailed: '更新失敗', + }, +} diff --git a/web/src/i18n/types.ts b/web/src/i18n/types.ts new file mode 100644 index 0000000..4b45de6 --- /dev/null +++ b/web/src/i18n/types.ts @@ -0,0 +1,11 @@ +export type LocaleCode = 'zh-CN' | 'zh-TW' | 'en' + +export const SUPPORTED_LOCALES: { value: LocaleCode; labelKey: string }[] = [ + { value: 'zh-CN', labelKey: 'settings.localeZhCN' }, + { value: 'zh-TW', labelKey: 'settings.localeZhTW' }, + { value: 'en', labelKey: 'settings.localeEn' }, +] + +export function isLocaleCode(v: string): v is LocaleCode { + return v === 'zh-CN' || v === 'zh-TW' || v === 'en' +} diff --git a/web/src/layouts/MainLayout.vue b/web/src/layouts/MainLayout.vue new file mode 100644 index 0000000..f5b0b3d --- /dev/null +++ b/web/src/layouts/MainLayout.vue @@ -0,0 +1,69 @@ + + + diff --git a/web/src/main.ts b/web/src/main.ts new file mode 100644 index 0000000..1ec78b7 --- /dev/null +++ b/web/src/main.ts @@ -0,0 +1,23 @@ +import { createApp } from 'vue' +import { createPinia } from 'pinia' +import ElementPlus from 'element-plus' +import 'element-plus/dist/index.css' +import '@/styles/theme.css' + +import App from './App.vue' +import router from './router' +import i18n, { applyDocumentLocale } from '@/i18n' +import { useLocaleStore } from '@/stores/locale' + +const app = createApp(App) +const pinia = createPinia() + +app.use(pinia) +app.use(router) +app.use(i18n) +app.use(ElementPlus) + +const localeStore = useLocaleStore(pinia) +applyDocumentLocale(localeStore.locale) + +app.mount('#app') diff --git a/web/src/router/index.ts b/web/src/router/index.ts new file mode 100644 index 0000000..1c5e2a4 --- /dev/null +++ b/web/src/router/index.ts @@ -0,0 +1,46 @@ +import { createRouter, createWebHistory } from 'vue-router' +import { useAuthStore } from '@/stores/auth' +import MainLayout from '@/layouts/MainLayout.vue' + +const router = createRouter({ + history: createWebHistory(), + routes: [ + { + path: '/login', + name: 'login', + component: () => import('@/views/LoginView.vue'), + meta: { public: true }, + }, + { + path: '/', + component: MainLayout, + children: [ + { path: '', name: 'dashboard', component: () => import('@/views/DashboardView.vue') }, + { path: 'subscriptions', name: 'subscriptions', component: () => import('@/views/SubscriptionsView.vue') }, + { path: 'proxies', name: 'proxies', component: () => import('@/views/ProxiesView.vue') }, + { path: 'outbound', name: 'outbound', component: () => import('@/views/OutboundView.vue') }, + { path: 'rules', name: 'rules', component: () => import('@/views/RulesView.vue') }, + { path: 'traffic-logs', name: 'traffic-logs', component: () => import('@/views/TrafficLogsView.vue') }, + { path: 'logs', name: 'logs', component: () => import('@/views/LogsView.vue') }, + { path: 'settings', name: 'settings', component: () => import('@/views/SettingsView.vue') }, + ], + }, + ], +}) + +router.beforeEach(async (to) => { + const auth = useAuthStore() + if (to.meta.public) return true + if (auth.isLoggedIn()) return true + try { + const res = await fetch('/api/v1/auth/status') + const data = await res.json() + if (!data.enabled) { + auth.token = 'disabled' + return true + } + } catch { /* ignore */ } + return '/login' +}) + +export default router diff --git a/web/src/stores/auth.ts b/web/src/stores/auth.ts new file mode 100644 index 0000000..c7a21fb --- /dev/null +++ b/web/src/stores/auth.ts @@ -0,0 +1,22 @@ +import { defineStore } from 'pinia' +import { ref } from 'vue' +import api from '@/api/client' + +export const useAuthStore = defineStore('auth', () => { + const token = ref(localStorage.getItem('prism_token') || '') + + async function login(password: string) { + const { data } = await api.post('/auth/login', { password }) + token.value = data.token + localStorage.setItem('prism_token', data.token) + } + + function logout() { + token.value = '' + localStorage.removeItem('prism_token') + } + + const isLoggedIn = () => !!token.value + + return { token, login, logout, isLoggedIn } +}) diff --git a/web/src/stores/locale.ts b/web/src/stores/locale.ts new file mode 100644 index 0000000..88ddf19 --- /dev/null +++ b/web/src/stores/locale.ts @@ -0,0 +1,28 @@ +import { defineStore } from 'pinia' +import { elementLocales, LOCALE_STORAGE_KEY, setI18nLocale } from '@/i18n' +import { isLocaleCode, SUPPORTED_LOCALES, type LocaleCode } from '@/i18n/types' + +export const useLocaleStore = defineStore('locale', { + state: () => ({ + locale: (localStorage.getItem(LOCALE_STORAGE_KEY) || 'zh-CN') as LocaleCode, + }), + getters: { + elementLocale: (state) => elementLocales[state.locale], + options: () => SUPPORTED_LOCALES, + }, + actions: { + setLocale(locale: LocaleCode, persist = true) { + if (!isLocaleCode(locale)) return + this.locale = locale + setI18nLocale(locale) + if (persist) { + localStorage.setItem(LOCALE_STORAGE_KEY, locale) + } + }, + applyFromSettings(uiLocale?: string) { + if (uiLocale && isLocaleCode(uiLocale)) { + this.setLocale(uiLocale) + } + }, + }, +}) diff --git a/web/src/style.css b/web/src/style.css new file mode 100644 index 0000000..527d4fb --- /dev/null +++ b/web/src/style.css @@ -0,0 +1,296 @@ +:root { + --text: #6b6375; + --text-h: #08060d; + --bg: #fff; + --border: #e5e4e7; + --code-bg: #f4f3ec; + --accent: #aa3bff; + --accent-bg: rgba(170, 59, 255, 0.1); + --accent-border: rgba(170, 59, 255, 0.5); + --social-bg: rgba(244, 243, 236, 0.5); + --shadow: + rgba(0, 0, 0, 0.1) 0 10px 15px -3px, rgba(0, 0, 0, 0.05) 0 4px 6px -2px; + + --sans: system-ui, 'Segoe UI', Roboto, sans-serif; + --heading: system-ui, 'Segoe UI', Roboto, sans-serif; + --mono: ui-monospace, Consolas, monospace; + + font: 18px/145% var(--sans); + letter-spacing: 0.18px; + color-scheme: light dark; + color: var(--text); + background: var(--bg); + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + @media (max-width: 1024px) { + font-size: 16px; + } +} + +@media (prefers-color-scheme: dark) { + :root { + --text: #9ca3af; + --text-h: #f3f4f6; + --bg: #16171d; + --border: #2e303a; + --code-bg: #1f2028; + --accent: #c084fc; + --accent-bg: rgba(192, 132, 252, 0.15); + --accent-border: rgba(192, 132, 252, 0.5); + --social-bg: rgba(47, 48, 58, 0.5); + --shadow: + rgba(0, 0, 0, 0.4) 0 10px 15px -3px, rgba(0, 0, 0, 0.25) 0 4px 6px -2px; + } + + #social .button-icon { + filter: invert(1) brightness(2); + } +} + +body { + margin: 0; +} + +h1, +h2 { + font-family: var(--heading); + font-weight: 500; + color: var(--text-h); +} + +h1 { + font-size: 56px; + letter-spacing: -1.68px; + margin: 32px 0; + @media (max-width: 1024px) { + font-size: 36px; + margin: 20px 0; + } +} +h2 { + font-size: 24px; + line-height: 118%; + letter-spacing: -0.24px; + margin: 0 0 8px; + @media (max-width: 1024px) { + font-size: 20px; + } +} +p { + margin: 0; +} + +code, +.counter { + font-family: var(--mono); + display: inline-flex; + border-radius: 4px; + color: var(--text-h); +} + +code { + font-size: 15px; + line-height: 135%; + padding: 4px 8px; + background: var(--code-bg); +} + +.counter { + font-size: 16px; + padding: 5px 10px; + border-radius: 5px; + color: var(--accent); + background: var(--accent-bg); + border: 2px solid transparent; + transition: border-color 0.3s; + margin-bottom: 24px; + + &:hover { + border-color: var(--accent-border); + } + &:focus-visible { + outline: 2px solid var(--accent); + outline-offset: 2px; + } +} + +.hero { + position: relative; + + .base, + .framework, + .vite { + inset-inline: 0; + margin: 0 auto; + } + + .base { + width: 170px; + position: relative; + z-index: 0; + } + + .framework, + .vite { + position: absolute; + } + + .framework { + z-index: 1; + top: 34px; + height: 28px; + transform: perspective(2000px) rotateZ(300deg) rotateX(44deg) rotateY(39deg) + scale(1.4); + } + + .vite { + z-index: 0; + top: 107px; + height: 26px; + width: auto; + transform: perspective(2000px) rotateZ(300deg) rotateX(40deg) rotateY(39deg) + scale(0.8); + } +} + +#app { + width: 1126px; + max-width: 100%; + margin: 0 auto; + text-align: center; + border-inline: 1px solid var(--border); + min-height: 100svh; + display: flex; + flex-direction: column; + box-sizing: border-box; +} + +#center { + display: flex; + flex-direction: column; + gap: 25px; + place-content: center; + place-items: center; + flex-grow: 1; + + @media (max-width: 1024px) { + padding: 32px 20px 24px; + gap: 18px; + } +} + +#next-steps { + display: flex; + border-top: 1px solid var(--border); + text-align: left; + + & > div { + flex: 1 1 0; + padding: 32px; + @media (max-width: 1024px) { + padding: 24px 20px; + } + } + + .icon { + margin-bottom: 16px; + width: 22px; + height: 22px; + } + + @media (max-width: 1024px) { + flex-direction: column; + text-align: center; + } +} + +#docs { + border-right: 1px solid var(--border); + + @media (max-width: 1024px) { + border-right: none; + border-bottom: 1px solid var(--border); + } +} + +#next-steps ul { + list-style: none; + padding: 0; + display: flex; + gap: 8px; + margin: 32px 0 0; + + .logo { + height: 18px; + } + + a { + color: var(--text-h); + font-size: 16px; + border-radius: 6px; + background: var(--social-bg); + display: flex; + padding: 6px 12px; + align-items: center; + gap: 8px; + text-decoration: none; + transition: box-shadow 0.3s; + + &:hover { + box-shadow: var(--shadow); + } + .button-icon { + height: 18px; + width: 18px; + } + } + + @media (max-width: 1024px) { + margin-top: 20px; + flex-wrap: wrap; + justify-content: center; + + li { + flex: 1 1 calc(50% - 8px); + } + + a { + width: 100%; + justify-content: center; + box-sizing: border-box; + } + } +} + +#spacer { + height: 88px; + border-top: 1px solid var(--border); + @media (max-width: 1024px) { + height: 48px; + } +} + +.ticks { + position: relative; + width: 100%; + + &::before, + &::after { + content: ''; + position: absolute; + top: -4.5px; + border: 5px solid transparent; + } + + &::before { + left: 0; + border-left-color: var(--border); + } + &::after { + right: 0; + border-right-color: var(--border); + } +} diff --git a/web/src/styles/theme.css b/web/src/styles/theme.css new file mode 100644 index 0000000..dc397bf --- /dev/null +++ b/web/src/styles/theme.css @@ -0,0 +1,524 @@ +:root { + --background: #f4f4f5; + --foreground: #18181b; + --card: #ffffff; + --card-foreground: #18181b; + --primary: #0f7a62; + --primary-hover: #0d6b56; + --primary-foreground: #fafafa; + --muted: #f4f4f5; + --muted-foreground: #71717a; + --border: #e4e4e7; + --input: #e4e4e7; + --destructive: #dc2626; + --success: #047857; + --warning: #b45309; + --danger: #dc2626; + --info: #a1a1aa; + --sidebar: rgba(250, 250, 250, 0.85); + --sidebar-foreground: #18181b; + --sidebar-accent: #f4f4f5; + --sidebar-border: #e4e4e7; + --sidebar-width: 15rem; + --radius: 0.5rem; + --space-1: 4px; + --space-2: 8px; + --space-3: 12px; + --space-4: 16px; + --space-5: 20px; + --space-6: 24px; + --space-8: 32px; + + --el-color-primary: #0f7a62; + --el-color-primary-light-3: #4da08c; + --el-color-primary-light-5: #76b8a8; + --el-color-primary-light-7: #a0d0c4; + --el-color-primary-light-8: #b8dcd2; + --el-color-primary-light-9: #d0e8e1; + --el-color-primary-dark-2: #0c624e; + --el-color-success: #047857; + --el-color-warning: #b45309; + --el-color-danger: #dc2626; + --el-color-info: #a1a1aa; + --el-border-radius-base: 0.5rem; + --el-border-color: #e4e4e7; + --el-bg-color-page: #f4f4f5; + --el-text-color-primary: #18181b; + --el-text-color-regular: #3f3f46; + --el-text-color-secondary: #71717a; + --el-font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif; +} + +* { box-sizing: border-box; } + +html, body, #app { + margin: 0; + padding: 0; + height: 100%; + font-size: 14px; + font-family: var(--el-font-family); + background: var(--background); + color: var(--foreground); +} + +.layout { + display: flex; + height: 100vh; +} + +.sidebar { + width: var(--sidebar-width); + flex-shrink: 0; + background: var(--sidebar); + border-right: 1px solid var(--sidebar-border); + backdrop-filter: blur(8px); + display: flex; + flex-direction: column; + overflow-y: auto; +} + +.sidebar-brand { + display: flex; + align-items: center; + gap: var(--space-3); + padding: var(--space-5) var(--space-4); +} + +.brand-icon { + width: 32px; + height: 32px; + border-radius: var(--radius); + background: var(--primary); + color: var(--primary-foreground); + display: flex; + align-items: center; + justify-content: center; +} + +.brand-name { + font-size: 1.125rem; + font-weight: 600; +} + +.nav-group-label { + font-size: 0.75rem; + text-transform: uppercase; + letter-spacing: 0.04em; + color: var(--muted-foreground); + padding: var(--space-4) var(--space-4) var(--space-2); +} + +.nav-item { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-2) var(--space-3); + margin: 0 var(--space-2); + border-radius: var(--radius); + color: var(--muted-foreground); + text-decoration: none; + font-size: 0.875rem; + font-weight: 500; +} + +.nav-item:hover { background: var(--sidebar-accent); } +.nav-item.active { + background: var(--sidebar-accent); + color: var(--primary); + font-weight: 600; +} + +.main-area { + flex: 1; + display: flex; + flex-direction: column; + min-width: 0; +} + +.topbar { + height: 52px; + display: flex; + align-items: center; + justify-content: space-between; + padding: 0 var(--space-6); + background: var(--card); + border-bottom: 1px solid var(--border); +} + +.topbar-title { + font-size: 0.875rem; + color: var(--muted-foreground); +} + +.main-content { + flex: 1; + overflow-y: auto; + padding: var(--space-6); +} + +.page { + max-width: 1400px; +} + +.page-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + margin-bottom: var(--space-6); + gap: var(--space-4); +} + +.page-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-shrink: 0; + flex-wrap: wrap; +} + +.page-title { + font-size: 1.5rem; + font-weight: 600; + letter-spacing: -0.02em; + margin: 0 0 var(--space-1); +} + +.page-desc { + font-size: 0.875rem; + color: var(--muted-foreground); + margin: 0; +} + +.stat-grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.stat-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-5); +} + +.stat-card__label { + font-size: 0.875rem; + color: var(--muted-foreground); + margin-bottom: var(--space-2); +} + +.stat-card__value { + font-size: 1.75rem; + font-weight: 600; +} + +.app-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + margin-bottom: var(--space-4); +} + +.page > .app-card:last-child, +.page > .content-grid:last-child { + margin-bottom: 0; +} + +.app-card__header { + padding: var(--space-4) var(--space-5); + border-bottom: 1px solid var(--border); +} + +.app-card__title { + font-size: 0.9375rem; + font-weight: 600; + margin: 0; +} + +.app-card__body--padded { padding: var(--space-5); } + +.content-grid { + display: grid; + gap: var(--space-4); + margin-bottom: var(--space-6); +} + +.content-grid--2-1 { grid-template-columns: 1.4fr 1fr; } +.content-grid--2 { grid-template-columns: 1fr 1fr; } +.content-grid--3 { grid-template-columns: repeat(3, 1fr); } + +.card-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + padding: var(--space-4) var(--space-5) 0; + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.card-toolbar--desc { + align-items: flex-start; +} + +.card-pager { + padding: var(--space-4) var(--space-5); + display: flex; + justify-content: flex-end; +} + +.card-footer-hint { + padding: 0 var(--space-5) var(--space-3); + margin: 0; +} + +.card-footer-hint + .card-pager { + padding-top: var(--space-3); +} + +.card-inset-block { + margin: 0 var(--space-5) var(--space-4); + padding: var(--space-3); + background: var(--muted); + border-radius: var(--radius); + font-size: 0.875rem; +} + +.tabs-bar { + padding: 0 var(--space-5); + border-bottom: 1px solid var(--border); +} + +.tabs-bar .el-tabs__header { margin-bottom: 0; } + +.page-toolbar { + display: flex; + align-items: center; + gap: var(--space-2); + margin-bottom: var(--space-4); + flex-wrap: wrap; +} + +.inline-actions { + display: flex; + align-items: center; + gap: var(--space-2); + flex-wrap: wrap; +} + +.card-header-row { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--space-4); +} + +.form-hint { + margin-top: 6px; + font-size: 0.75rem; + color: var(--muted-foreground); +} + +.form-hint--flush { margin-top: 0; } + +.u-mt-3 { margin-top: var(--space-3); } +.u-mt-4 { margin-top: var(--space-4); } +.u-mb-3 { margin-bottom: var(--space-3); } +.u-mb-4 { margin-bottom: var(--space-4); } +.u-mb-6 { margin-bottom: var(--space-6); } +.text-center { text-align: center; } +.w-full { width: 100%; } + +code.inline-code { + font-size: 0.75rem; + padding: 0 var(--space-1); + background: var(--muted); + border-radius: var(--radius); +} + +.section-title { + font-size: 0.875rem; + font-weight: 600; + margin-bottom: var(--space-4); +} + +.section-title:not(:first-child) { margin-top: var(--space-6); } + +.login-page { + min-height: 100vh; + display: flex; + align-items: center; + justify-content: center; + background: var(--background); + padding: var(--space-6); +} + +.login-wrap { max-width: 400px; width: 100%; text-align: center; } + +.login-brand-icon { + width: 48px; + height: 48px; + border-radius: 12px; + background: var(--primary); + color: var(--primary-foreground); + display: inline-flex; + align-items: center; + justify-content: center; + margin-bottom: var(--space-4); +} + +.login-card { + background: var(--card); + border: 1px solid var(--border); + border-radius: var(--radius); + padding: var(--space-8); + margin-top: var(--space-6); + text-align: left; +} + +.latency-good { color: #047857; } +.latency-warn { color: #b45309; } +.latency-bad { color: #dc2626; } +.latency-dead { color: var(--muted-foreground); } + +/* Toolbar field widths */ +.toolbar-select { width: 120px; } +.toolbar-select--country { width: 160px; } +.toolbar-select--wide { width: 280px; } +.toolbar-input { width: 200px; } +.toolbar-input--wide { width: 260px; } +.toolbar-input--grow { flex: 1; min-width: 200px; } +.table-cell-select { width: 100%; min-width: 200px; } + +/* Forms */ +.el-form .el-select { width: 100%; } + +/* Tables in cards */ +.app-card .el-table { + --el-table-header-bg-color: var(--muted); + font-size: 0.875rem; +} + +.app-card .el-table--small .el-table__cell { + padding: var(--space-2) var(--space-3); +} + +.app-card .el-table--small th.el-table__cell { + font-size: 0.75rem; + font-weight: 600; + color: var(--muted-foreground); +} + +.app-card .el-table--small td.el-table__cell { + color: var(--el-text-color-regular); +} + +.app-card .el-table--small .el-table__row { + height: 40px; +} + +.app-card .el-table .el-button.is-link { + padding: 0; + height: auto; +} + +.app-card .el-table .cell { + line-height: 1.4; +} + +.table-scroll--sm { max-height: 320px; } +.table-scroll--md { max-height: 360px; } +.table-scroll--lg { max-height: 480px; } + +.card-toolbar .toolbar-input--grow { + flex: 1; + min-width: 200px; +} + +.card-pager .el-pagination { + font-size: 0.875rem; +} + +.test-result p { + margin: 0 0 var(--space-2); +} + +.test-result p:last-child { + margin-bottom: 0; +} + +.test-result .label { + display: inline-block; + width: 5rem; + color: var(--muted-foreground); +} + +.test-result code { + font-size: 0.8125rem; +} + +.geo-status { + display: flex; + flex-direction: column; + gap: var(--space-2); + width: 100%; +} + +.geo-file-list { + margin: 0; + padding: 0; + list-style: none; + font-size: 0.8125rem; + color: var(--muted-foreground); +} + +.geo-file-list li { + display: flex; + justify-content: space-between; + gap: var(--space-3); + padding: var(--space-1) 0; +} + +.geo-file-name { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; +} + +.geo-file-ok { color: var(--el-color-success); } +.geo-file-miss { color: var(--el-color-warning); } + +.chart-box { + height: 280px; +} + +.custom-scrollbar { + scrollbar-width: thin; + scrollbar-color: #e4e4e7 transparent; +} + +.custom-scrollbar::-webkit-scrollbar { + width: 6px; + height: 6px; +} + +.custom-scrollbar::-webkit-scrollbar-thumb { + background: #e4e4e7; + border-radius: 3px; +} + +.custom-scrollbar::-webkit-scrollbar-track { + background: transparent; +} + +@media (max-width: 1024px) { + .stat-grid { grid-template-columns: repeat(2, 1fr); } + .content-grid--2-1, + .content-grid--2, + .content-grid--3 { grid-template-columns: 1fr; } +} + +@media (max-width: 640px) { + .stat-grid { grid-template-columns: 1fr; } + .main-content { padding: var(--space-4); } + .page-header { flex-direction: column; } +} diff --git a/web/src/views/DashboardView.vue b/web/src/views/DashboardView.vue new file mode 100644 index 0000000..64bf9bd --- /dev/null +++ b/web/src/views/DashboardView.vue @@ -0,0 +1,267 @@ + + + diff --git a/web/src/views/LoginView.vue b/web/src/views/LoginView.vue new file mode 100644 index 0000000..2471f27 --- /dev/null +++ b/web/src/views/LoginView.vue @@ -0,0 +1,73 @@ + + + diff --git a/web/src/views/LogsView.vue b/web/src/views/LogsView.vue new file mode 100644 index 0000000..780dcf3 --- /dev/null +++ b/web/src/views/LogsView.vue @@ -0,0 +1,126 @@ + + + diff --git a/web/src/views/OutboundView.vue b/web/src/views/OutboundView.vue new file mode 100644 index 0000000..bbf0729 --- /dev/null +++ b/web/src/views/OutboundView.vue @@ -0,0 +1,194 @@ + + + diff --git a/web/src/views/ProxiesView.vue b/web/src/views/ProxiesView.vue new file mode 100644 index 0000000..1d12916 --- /dev/null +++ b/web/src/views/ProxiesView.vue @@ -0,0 +1,392 @@ + + + diff --git a/web/src/views/RulesView.vue b/web/src/views/RulesView.vue new file mode 100644 index 0000000..fdca67a --- /dev/null +++ b/web/src/views/RulesView.vue @@ -0,0 +1,430 @@ + + + diff --git a/web/src/views/SettingsView.vue b/web/src/views/SettingsView.vue new file mode 100644 index 0000000..aadd260 --- /dev/null +++ b/web/src/views/SettingsView.vue @@ -0,0 +1,383 @@ + + + diff --git a/web/src/views/SubscriptionsView.vue b/web/src/views/SubscriptionsView.vue new file mode 100644 index 0000000..abd362f --- /dev/null +++ b/web/src/views/SubscriptionsView.vue @@ -0,0 +1,126 @@ + + + diff --git a/web/src/views/TrafficLogsView.vue b/web/src/views/TrafficLogsView.vue new file mode 100644 index 0000000..ae72969 --- /dev/null +++ b/web/src/views/TrafficLogsView.vue @@ -0,0 +1,119 @@ + + + diff --git a/web/tsconfig.app.json b/web/tsconfig.app.json new file mode 100644 index 0000000..266d76f --- /dev/null +++ b/web/tsconfig.app.json @@ -0,0 +1,19 @@ +{ + "extends": "@vue/tsconfig/tsconfig.dom.json", + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", + "types": ["vite/client"], + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true, + "ignoreDeprecations": "6.0", + "baseUrl": ".", + "paths": { + "@/*": ["src/*"] + } + }, + "include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"] +} diff --git a/web/tsconfig.json b/web/tsconfig.json new file mode 100644 index 0000000..1ffef60 --- /dev/null +++ b/web/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/web/tsconfig.node.json b/web/tsconfig.node.json new file mode 100644 index 0000000..d3c52ea --- /dev/null +++ b/web/tsconfig.node.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", + "target": "es2023", + "lib": ["ES2023"], + "module": "esnext", + "types": ["node"], + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "verbatimModuleSyntax": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "noUnusedLocals": true, + "noUnusedParameters": true, + "erasableSyntaxOnly": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/web/vite.config.ts b/web/vite.config.ts new file mode 100644 index 0000000..ebeea4f --- /dev/null +++ b/web/vite.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' +import { fileURLToPath, URL } from 'node:url' + +export default defineConfig({ + plugins: [vue()], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + }, + }, + server: { + port: 5173, + proxy: { + '/api': { + target: 'http://127.0.0.1:8080', + changeOrigin: true, + }, + }, + }, + build: { + outDir: 'dist', + emptyOutDir: true, + }, +})